From 8bd9e69e4bb19d674c18cc5b7076b71cafa67c2f Mon Sep 17 00:00:00 2001 From: SHIRAKATA Kentaro Date: Wed, 23 Dec 2015 23:06:45 +0900 Subject: [PATCH] patch src/ --- src/allmain.c | 39 ++ src/apply.c | 1065 +++++++++++++++++++++++++++++++++++++++++ src/artifact.c | 219 +++++++++ src/attrib.c | 146 ++++++ src/ball.c | 81 ++++ src/bones.c | 21 + src/botl.c | 79 ++++ src/cmd.c | 507 ++++++++++++++++++++ src/dbridge.c | 135 ++++++ src/decl.c | 48 ++ src/detect.c | 240 +++++++++- src/dig.c | 429 +++++++++++++++++ src/do.c | 442 +++++++++++++++++ src/do_name.c | 216 +++++++++ src/do_wear.c | 502 ++++++++++++++++++++ src/dog.c | 70 +++ src/dogmove.c | 56 +++ src/dokick.c | 441 +++++++++++++++++ src/dothrow.c | 312 ++++++++++++ src/drawing.c | 23 + src/dungeon.c | 15 + src/eat.c | 631 +++++++++++++++++++++++++ src/end.c | 307 ++++++++++++ src/engrave.c | 411 +++++++++++++++- src/exper.c | 9 + src/explode.c | 135 ++++++ src/files.c | 22 + src/fountain.c | 247 +++++++++- src/hack.c | 480 +++++++++++++++++++ src/hacklib.c | 8 + src/invent.c | 382 +++++++++++++++ src/light.c | 15 + src/lock.c | 377 +++++++++++++++ src/mail.c | 49 ++ src/makemon.c | 12 + src/mcastu.c | 218 +++++++++ src/mhitm.c | 310 ++++++++++++ src/mhitu.c | 899 +++++++++++++++++++++++++++++++++++ src/minion.c | 81 ++++ src/mklev.c | 27 ++ src/mkmaze.c | 26 + src/mon.c | 250 ++++++++++ src/mondata.c | 63 +++ src/monmove.c | 113 +++++ src/mplayer.c | 47 ++ src/mthrowu.c | 156 ++++++ src/muse.c | 365 ++++++++++++++ src/music.c | 164 +++++++ src/o_init.c | 14 + src/objnam.c | 658 +++++++++++++++++++++++++- src/options.c | 455 ++++++++++++++++++ src/pager.c | 218 +++++++++ src/pickup.c | 376 +++++++++++++++ src/pline.c | 253 +++++++++- src/polyself.c | 484 +++++++++++++++++++ src/potion.c | 606 ++++++++++++++++++++++++ src/pray.c | 609 ++++++++++++++++++++++++ src/priest.c | 163 +++++++ src/quest.c | 30 ++ src/questpgr.c | 26 + src/read.c | 543 +++++++++++++++++++++ src/region.c | 19 + src/restore.c | 37 ++ src/rip.c | 31 ++ src/role.c | 156 +++++- src/rumors.c | 55 ++- src/save.c | 15 + src/shk.c | 872 +++++++++++++++++++++++++++++++++- src/shknam.c | 44 ++ src/sit.c | 252 ++++++++++ src/sounds.c | 541 +++++++++++++++++++++ src/spell.c | 293 ++++++++++++ src/steal.c | 77 +++ src/steed.c | 180 ++++++- src/teleport.c | 207 ++++++++ src/timeout.c | 301 ++++++++++++ src/topten.c | 162 +++++++ src/trap.c | 1439 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- src/uhitm.c | 570 +++++++++++++++++++++- src/vault.c | 133 ++++++ src/version.c | 10 + src/weapon.c | 114 +++++ src/were.c | 34 ++ src/wield.c | 192 ++++++++ src/wizard.c | 91 ++++ src/worm.c | 19 + src/worn.c | 121 +++++ src/write.c | 82 ++++ src/zap.c | 679 ++++++++++++++++++++++++++ 89 files changed, 22007 insertions(+), 44 deletions(-) diff --git a/src/allmain.c b/src/allmain.c index 49ec078..68cc103 100644 --- a/src/allmain.c +++ b/src/allmain.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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. */ + /* various code that was replicated in *main.c */ #include "hack.h" @@ -45,14 +50,23 @@ boolean resuming; /* side-effects from the real world */ flags.moonphase = phase_of_the_moon(); if (flags.moonphase == FULL_MOON) { +/*JP You("are lucky! Full moon tonight."); +*/ + pline("ƒ‰ƒbƒL[I¡”Ó‚Í–žŒŽ‚¾D"); change_luck(1); } else if (flags.moonphase == NEW_MOON) { +/*JP pline("Be careful! New moon tonight."); +*/ + pline("’ˆÓ‚µ‚ëI¡”ӂ͐VŒŽ‚¾D"); } flags.friday13 = friday_13th(); if (flags.friday13) { +/*JP pline("Watch out! Bad things can happen on Friday the 13th."); +*/ + pline("—pS‚µ‚ëI‚P‚R“ú‚Ì‹à—j“ú‚É‚Í‚æ‚­‚È‚¢‚±‚Æ‚ª‚ ‚éD") ; change_luck(-1); } @@ -253,7 +267,10 @@ boolean resuming; } else if (!Upolyd && u.uhp > 1) { u.uhp--; } else { +/*JP You("pass out from exertion!"); +*/ + pline("”æ˜J‚ňӎ¯‚ðŽ¸‚Á‚½I"); exercise(A_CON, FALSE); fall_asleep(-10, FALSE); } @@ -486,7 +503,10 @@ stop_occupation() { if (occupation) { if (!maybe_finished_meal(TRUE)) +/*JP You("stop %s.", occtxt); +*/ + You("%s‚Ì‚ð’†’f‚µ‚½D", occtxt); occupation = 0; context.botl = 1; /* in case u.uhs changed */ nomul(0); @@ -617,17 +637,36 @@ boolean new_game; /* false => restoring an old game */ */ *buf = '\0'; if (new_game || u.ualignbase[A_ORIGINAL] != u.ualignbase[A_CURRENT]) +/*JP Sprintf(eos(buf), " %s", align_str(u.ualignbase[A_ORIGINAL])); +*/ + Sprintf(eos(buf), "%s", align_str(u.ualignbase[A_ORIGINAL])); if (!urole.name.f && (new_game ? (urole.allow & ROLE_GENDMASK) == (ROLE_MALE | ROLE_FEMALE) : currentgend != flags.initgend)) +/*JP Sprintf(eos(buf), " %s", genders[currentgend].adj); +*/ + Sprintf(eos(buf), "‚Ì%s", genders[currentgend].adj); +#if 0 /*JP*/ pline(new_game ? "%s %s, welcome to NetHack! You are a%s %s %s." : "%s %s, the%s %s %s, welcome back to NetHack!", Hello((struct monst *) 0), plname, buf, urace.adj, (currentgend && urole.name.f) ? urole.name.f : urole.name.m); +#else + if(new_game){ + pline("%sCNetHack‚̐¢ŠE‚ցI‚±‚̃Q[ƒ€‚Å‚Í‚ ‚È‚½‚Í%s%s(%s)‚¾D", + Hello((struct monst *) 0), urace.adj, + (currentgend && urole.name.f) ? urole.name.f : urole.name.m, + buf); + } else { + pline("%sCNetHack‚̐¢ŠE‚ցI‚ ‚È‚½‚Í%s%s‚¾I", + Hello((struct monst *) 0), urace.adj, + (currentgend && urole.name.f) ? urole.name.f : urole.name.m); + } +#endif } #ifdef POSITIONBAR diff --git a/src/apply.c b/src/apply.c index 22cef7f..fb2d803 100644 --- a/src/apply.c +++ b/src/apply.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" extern boolean notonhead; /* for long worms */ @@ -44,7 +49,10 @@ void FDECL(amii_speaker, (struct obj *, char *, int)); #endif static const char no_elbow_room[] = +/*JP "don't have enough elbow-room to maneuver."; +*/ + "‚»‚ê‚ð‚·‚é‚¾‚¯‚Ì‚ä‚Ƃ肪‚È‚¢D"; STATIC_OVL int use_camera(obj) @@ -53,7 +61,10 @@ struct obj *obj; struct monst *mtmp; if (Underwater) { +/*JP pline("Using your camera underwater would void the warranty."); +*/ + pline("…–ʉº‚ł̃Jƒƒ‰‚ÌŽg—p‚͕ۏ؂̑ΏۊO‚Å‚·D"); return 0; } if (!getdir((char *) 0)) @@ -68,9 +79,17 @@ struct obj *obj; if (obj->cursed && !rn2(2)) { (void) zapyourself(obj, TRUE); } else if (u.uswallow) { +#if 0 /*JP*/ You("take a picture of %s %s.", s_suffix(mon_nam(u.ustuck)), mbodypart(u.ustuck, STOMACH)); +#else + You("%s‚Ì%s‚̎ʐ^‚ðŽB‚Á‚½D", mon_nam(u.ustuck), + mbodypart(u.ustuck, STOMACH)); +#endif } else if (u.dz) { +/*JP + You("take a picture of the %s.", +*/ You("take a picture of the %s.", (u.dz > 0) ? surface(u.ux, u.uy) : ceiling(u.ux, u.uy)); } else if (!u.dx && !u.dy) { @@ -91,10 +110,16 @@ struct obj *obj; boolean drying_feedback = (obj == uwep); if (!freehand()) { +/*JP You("have no free %s!", body_part(HAND)); +*/ + You("%s‚ÌŽ©—R‚ªŒø‚©‚È‚¢I", body_part(HAND)); return 0; } else if (obj == ublindf) { +/*JP You("cannot use it while you're wearing it!"); +*/ + You("‚»‚ê‚ðg‚ɂ‚¯‚Ä‚¢‚é‚Ì‚ÅŽg—p‚Å‚«‚È‚¢I"); return 0; } else if (obj->cursed) { long old; @@ -103,8 +128,13 @@ struct obj *obj; case 2: old = Glib; incr_itimeout(&Glib, rn1(10, 3)); +#if 0 /*JP*/ Your("%s %s!", makeplural(body_part(HAND)), (old ? "are filthier than ever" : "get slimy")); +#else + Your("%s‚Í%sI", makeplural(body_part(HAND)), + (old ? "‚Ü‚·‚Ü‚·‰˜‚È‚­‚È‚Á‚½" : "‚Ê‚é‚Ê‚é‚É‚È‚Á‚½")); +#endif if (is_wet_towel(obj)) dry_a_towel(obj, -1, drying_feedback); return 1; @@ -112,22 +142,42 @@ struct obj *obj; if (!ublindf) { old = u.ucreamed; u.ucreamed += rn1(10, 3); +#if 0 /*JP*/ pline("Yecch! Your %s %s gunk on it!", body_part(FACE), (old ? "has more" : "now has")); +#else + pline("ƒQƒF[I‚ ‚È‚½‚Ì%s‚Í%s‚ׂƂׂƂɂȂÁ‚½I", body_part(FACE), + (old ? "‚à‚Á‚Æ" : "")); +#endif make_blinded(Blinded + (long) u.ucreamed - old, TRUE); } else { const char *what; +#if 0 /*JP*/ what = (ublindf->otyp == LENSES) ? "lenses" : (obj->otyp == ublindf->otyp) ? "other towel" : "blindfold"; +#else + what = (ublindf->otyp == LENSES) + ? "ƒŒƒ“ƒY" + : (obj->otyp == ublindf->otyp) ? "ƒ^ƒIƒ‹" + : "–Ú‰B‚µ"; +#endif if (ublindf->cursed) { +#if 0 /*JP*/ You("push your %s %s.", what, rn2(2) ? "cock-eyed" : "crooked"); +#else + pline("%s‚ª%sD", what, + rn2(2) ? "‚¸‚ꂽ" : "‚䂪‚ñ‚¾"); +#endif } else { struct obj *saved_ublindf = ublindf; +/*JP You("push your %s off.", what); +*/ + pline("%s‚ª‚¸‚è—Ž‚¿‚½D", what); Blindf_off(ublindf); dropx(saved_ublindf); } @@ -142,7 +192,10 @@ struct obj *obj; if (Glib) { Glib = 0; +/*JP You("wipe off your %s.", makeplural(body_part(HAND))); +*/ + You("%s‚ð@‚¢‚½D", makeplural(body_part(HAND))); if (is_wet_towel(obj)) dry_a_towel(obj, -1, drying_feedback); return 1; @@ -150,21 +203,32 @@ struct obj *obj; Blinded -= u.ucreamed; u.ucreamed = 0; if (!Blinded) { +/*JP pline("You've got the glop off."); +*/ + You("‚³‚Á‚ς肵‚½D"); if (!gulp_blnd_check()) { Blinded = 1; make_blinded(0L, TRUE); } } else { +/*JP Your("%s feels clean now.", body_part(FACE)); +*/ + pline("%s‚̉˜‚ê‚ð@‚«‚Æ‚Á‚½D", body_part(FACE)); } if (is_wet_towel(obj)) dry_a_towel(obj, -1, drying_feedback); return 1; } +#if 0 /*JP*/ Your("%s and %s are already clean.", body_part(FACE), makeplural(body_part(HAND))); +#else + Your("%s‚â%s‚͉˜‚ê‚Ä‚¢‚È‚¢D", body_part(FACE), + makeplural(body_part(HAND))); +#endif return 0; } @@ -230,7 +294,10 @@ int rx, ry, *resp; Strcpy(buf, "They're dead"); } /* variations on "He's dead, Jim." (Star Trek's Dr McCoy) */ +/*JP You_hear("a voice say, \"%s, Jim.\"", buf); +*/ + You_hear("u‚»‚¢‚‚͎€‚ñ‚ł邺CƒWƒ€v‚Æ‚¢‚¤º‚ª•·‚±‚¦‚½D"); *resp = 1; return TRUE; @@ -247,9 +314,15 @@ int rx, ry, *resp; corpse = nxtobj(corpse, CORPSE, TRUE); } while (corpse && !reviver); } +#if 0 /*JP*/ You("determine that %s unfortunate being%s %s%s dead.", one ? (here ? "this" : "that") : (here ? "these" : "those"), one ? "" : "s", one ? "is" : "are", reviver ? " mostly" : ""); +#else + You("%s•sK‚Ȑ¶‚«•¨‚Í%sŽ€‚ñ‚Å‚¢‚é‚ÆŒ‹˜_‚µ‚½D", + here ? "‚±‚Ì" : "‚»‚Ì", + reviver ? "‚Ù‚Ú" : ""); +#endif return TRUE; } else { /* statue */ @@ -271,18 +344,30 @@ int rx, ry, *resp; struct trap *ttmp = t_at(rx, ry); if (ttmp && ttmp->ttyp == STATUE_TRAP) +/*JP how = "extraordinary"; +*/ + how = "Œ’N“I‚È"; else if (Has_contents(statue)) +/*JP how = "remarkable"; +*/ + how = "–ô“®“I‚È"; } +/*JP pline("%s is in %s health for a statue.", what, how); +*/ + pline("’¤‘œ‚Æ‚µ‚Ä‚Ì%s‚Í%sì•i‚¾D", what, how); return TRUE; } return FALSE; /* no corpse or statue */ } +/*JP static const char hollow_str[] = "a hollow sound. This must be a secret %s!"; +*/ +static const char hollow_str[] = "‚¤‚‚ë‚ȉ¹‚ð•·‚¢‚½D”é–§‚Ì%s‚ɈႢ‚È‚¢I"; /* Strictly speaking it makes no sense for usage of a stethoscope to not take any time; however, unless it did, the stethoscope would be @@ -299,13 +384,23 @@ register struct obj *obj; && !rn2(Role_if(PM_HEALER) ? 10 : 3)); if (nohands(youmonst.data)) { +#if 0 /*JP*/ You("have no hands!"); /* not `body_part(HAND)' */ +#else + pline("‚ ‚È‚½‚ɂ͎肪‚È‚¢I"); +#endif return 0; } else if (Deaf) { +/*JP You_cant("hear anything!"); +*/ + You("‰½‚à•·‚±‚¦‚È‚¢I"); return 0; } else if (!freehand()) { +/*JP You("have no free %s.", body_part(HAND)); +*/ + You("%s‚ÌŽ©—R‚ªŒø‚©‚È‚¢D", body_part(HAND)); return 0; } if (!getdir((char *) 0)) @@ -318,7 +413,10 @@ register struct obj *obj; if (u.usteed && u.dz > 0) { if (interference) { +/*JP pline("%s interferes.", Monnam(u.ustuck)); +*/ + pline("%s‚ª‚¶‚á‚Ü‚ð‚µ‚½D", Monnam(u.ustuck)); mstatusline(u.ustuck); } else mstatusline(u.usteed); @@ -327,23 +425,38 @@ register struct obj *obj; mstatusline(u.ustuck); return res; } else if (u.uswallow && interference) { +/*JP pline("%s interferes.", Monnam(u.ustuck)); +*/ + pline("%s‚ª‚¶‚á‚Ü‚ð‚µ‚½D", Monnam(u.ustuck)); mstatusline(u.ustuck); return res; } else if (u.dz) { if (Underwater) +/*JP You_hear("faint splashing."); +*/ + You_hear("‚©‚·‚©‚ɃoƒVƒƒƒoƒVƒƒ‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D"); else if (u.dz < 0 || !can_reach_floor(TRUE)) cant_reach_floor(u.ux, u.uy, (u.dz < 0), TRUE); else if (its_dead(u.ux, u.uy, &res)) ; /* message already given */ else if (Is_stronghold(&u.uz)) +/*JP You_hear("the crackling of hellfire."); +*/ + You_hear("’n–‚̉Š‚ªƒpƒ`ƒpƒ`”R‚¦‚Ä‚¢‚鉹‚ð•·‚¢‚½D"); else +/*JP pline_The("%s seems healthy enough.", surface(u.ux, u.uy)); +*/ + pline("%s‚͏[•ªŒ’N‚̂悤‚¾D", surface(u.ux,u.uy)); return res; } else if (obj->cursed && !rn2(2)) { +/*JP You_hear("your heart beat."); +*/ + You_hear("Ž©•ª‚̐S‘Ÿ‚̌ۓ®‚ð•·‚¢‚½D"); return res; } if (Stunned || (Confusion && !rn2(5))) @@ -355,7 +468,10 @@ register struct obj *obj; rx = u.ux + u.dx; ry = u.uy + u.dy; if (!isok(rx, ry)) { +/*JP You_hear("a faint typing noise."); +*/ + You_hear("‚©‚·‚©‚É‚¾‚ê‚©‚ªƒ^ƒCƒsƒ“ƒO‚µ‚Ä‚¢‚鉹‚ð•·‚¢‚½D"); return 0; } if ((mtmp = m_at(rx, ry)) != 0) { @@ -394,17 +510,26 @@ register struct obj *obj; if (glyph_is_invisible(levl[rx][ry].glyph)) { unmap_object(rx, ry); newsym(rx, ry); +/*JP pline_The("invisible monster must have moved."); +*/ + pline_The("Œ©‚¦‚È‚¢‰ö•¨‚͈ړ®‚µ‚Ä‚µ‚Ü‚Á‚½‚悤‚¾D"); } lev = &levl[rx][ry]; switch (lev->typ) { case SDOOR: +/*JP You_hear(hollow_str, "door"); +*/ + You_hear(hollow_str, "”à"); cvt_sdoor_to_door(lev); /* ->typ = DOOR */ feel_newsym(rx, ry); return res; case SCORR: +/*JP You_hear(hollow_str, "passage"); +*/ + You_hear(hollow_str, "’ʘH"); lev->typ = CORR; unblock_point(rx, ry); feel_newsym(rx, ry); @@ -412,22 +537,38 @@ register struct obj *obj; } if (!its_dead(rx, ry, &res)) +#if 0 /*JP*/ You("hear nothing special."); /* not You_hear() */ +#else + pline("“Á‚ɉ½‚à•·‚±‚¦‚È‚¢D"); +#endif return res; } +/*JP static const char whistle_str[] = "produce a %s whistling sound."; +*/ +static const char whistle_str[] = "“J‚𐁂¢‚Ä%s‰¹‚ð‚½‚Ä‚½D"; STATIC_OVL void use_whistle(obj) struct obj *obj; { if (!can_blow(&youmonst)) { +/*JP You("are incapable of using the whistle."); +*/ + You("“J‚ðŽg‚¤”\—Í‚ª‚È‚¢D"); } else if (Underwater) { +/*JP You("blow bubbles through %s.", yname(obj)); +*/ + You("%s‚ð’Ê‚µ‚Ä–A‚ðo‚µ‚½D", yname(obj)); } else { +/*JP You(whistle_str, obj->cursed ? "shrill" : "high"); +*/ + You(whistle_str, obj->cursed ? "•s‹C–¡‚È" : "‚©‚ñ‚‚¢"); wake_nearby(); } } @@ -439,18 +580,32 @@ struct obj *obj; register struct monst *mtmp, *nextmon; if (!can_blow(&youmonst)) { +/*JP You("are incapable of using the whistle."); +*/ + You("“J‚ðŽg‚¤”\—Í‚ª‚È‚¢D"); } else if (obj->cursed && !rn2(2)) { +#if 0 /*JP*/ You("produce a %shigh-pitched humming noise.", Underwater ? "very " : ""); +#else + You("%s‚‚¢’²Žq‚Ì‚¤‚È‚é‚悤‚ȉ¹‚ð‚½‚Ä‚½D", + Underwater ? "‚Æ‚Ä‚à" : ""); +#endif wake_nearby(); } else { int pet_cnt = 0, omx, omy; /* it's magic! it works underwater too (at a higher pitch) */ +#if 0 /*JP*/ You(whistle_str, Hallucination ? "normal" : Underwater ? "strange, high-pitched" : "strange"); +#else + You(whistle_str, + Hallucination ? "“J‚̂悤‚È" : Underwater ? "•sŽv‹c‚ȍ‚‚¢’²Žq‚Ì" + : "•sŽv‹c‚È"); +#endif for (mtmp = fmon; mtmp; mtmp = nextmon) { nextmon = mtmp->nmon; /* trap might kill mon */ if (DEADMONSTER(mtmp)) @@ -527,9 +682,15 @@ boolean feedback; if (feedback) { if (canseemon(mtmp)) +/*JP pline("%s pulls free of %s leash!", Monnam(mtmp), mhis(mtmp)); +*/ + pline("%s‚Í•R‚ðˆø‚Á‚Ï‚Á‚Ä“¦‚ꂽI", Monnam(mtmp)); else +/*JP Your("leash falls slack."); +*/ + Your("•R‚ª‚½‚é‚ñ‚Å—Ž‚¿‚½D"); } for (otmp = invent; otmp; otmp = otmp->nobj) if (otmp->otyp == LEASH && otmp->leashmon == (int) mtmp->m_id) @@ -570,7 +731,10 @@ struct obj *obj; int spotmon; if (!obj->leashmon && number_leashed() >= MAXLEASHED) { +/*JP You("cannot leash any more pets."); +*/ + You("‚±‚êˆÈãƒyƒbƒg‚É•R‚ð‚©‚¯‚ç‚ê‚È‚¢D"); return; } @@ -583,12 +747,18 @@ struct obj *obj; spotmon = 1; goto got_target; } +/*JP pline("Leash yourself? Very funny..."); +*/ + pline("Ž©•ª‚ð”›‚éH•Ï‚Ȃ́DDD"); return; } if (!(mtmp = m_at(cc.x, cc.y))) { +/*JP There("is no creature there."); +*/ + pline("‚»‚±‚ɂ͐¶‚«•¨‚Í‚¢‚È‚¢D"); return; } @@ -597,44 +767,78 @@ got_target: if (!mtmp->mtame) { if (!spotmon) +/*JP There("is no creature there."); +*/ + pline("‚»‚±‚ɂ͐¶‚«•¨‚Í‚¢‚È‚¢D"); else +#if 0 /*JP*/ pline("%s %s leashed!", Monnam(mtmp), (!obj->leashmon) ? "cannot be" : "is not"); +#else + pline("%s‚Í•R‚Å%sI", Monnam(mtmp), + (!obj->leashmon) ? "Œ‹‚ׂȂ¢" : "Œ‹‚΂ê‚Ä‚¢‚È‚¢"); +#endif return; } if (!obj->leashmon) { if (mtmp->mleashed) { +#if 0 /*JP*/ pline("This %s is already leashed.", spotmon ? l_monnam(mtmp) : "monster"); +#else + pline("%s‚Í‚·‚Å‚ÉŒ‹‚т‚¯‚ç‚ê‚Ä‚¢‚éD", + spotmon ? l_monnam(mtmp) : "‰ö•¨"); +#endif return; } if (!leashable(mtmp)) { +#if 0 /*JP*/ pline("The leash won't fit onto %s%s.", spotmon ? "your " : "", l_monnam(mtmp)); +#else + pline("•R‚Í%s‚ɍ‡‚í‚È‚¢D", + l_monnam(mtmp)); +#endif return; } +#if 0 /*JP*/ You("slip the leash around %s%s.", spotmon ? "your " : "", l_monnam(mtmp)); +#else + You("%s‚ð•R‚ÅŒ‹‚т‚¯‚½D", + l_monnam(mtmp)); +#endif mtmp->mleashed = 1; obj->leashmon = (int) mtmp->m_id; mtmp->msleeping = 0; return; } if (obj->leashmon != (int) mtmp->m_id) { +/*JP pline("This leash is not attached to that creature."); +*/ + pline("‚±‚Ì•R‚Í‚»‚ê‚É‚ÍŒ‹‚΂ê‚Ä‚¢‚È‚¢D"); return; } else { if (obj->cursed) { +/*JP pline_The("leash would not come off!"); +*/ + pline("•R‚ª‚Í‚¸‚ê‚È‚¢I"); obj->bknown = TRUE; return; } mtmp->mleashed = 0; obj->leashmon = 0; +#if 0 /*JP*/ You("remove the leash from %s%s.", spotmon ? "your " : "", l_monnam(mtmp)); +#else + You("%s‚©‚ç•R‚ð‚Í‚¸‚µ‚½D", + l_monnam(mtmp)); +#endif } return; } @@ -673,8 +877,12 @@ next_to_u() && otmp->leashmon == (int) mtmp->m_id) { if (otmp->cursed) return FALSE; +#if 0 /*JP*/ You_feel("%s leash go slack.", (number_leashed() > 1) ? "a" : "the"); +#else + You("•R‚ª‚½‚é‚ñ‚¾‚悤‚È‹C‚ª‚µ‚½D"); +#endif mtmp->mleashed = 0; otmp->leashmon = 0; } @@ -717,7 +925,10 @@ register xchar x, y; || (mtmp->mhp -= rnd(2)) <= 0) { long save_pacifism = u.uconduct.killer; +/*JP Your("leash chokes %s to death!", mon_nam(mtmp)); +*/ + pline("%s‚͍i‚ߎE‚³‚ꂽI",mon_nam(mtmp)); /* hero might not have intended to kill pet, but that's the result of his actions; gain experience, lose pacifism, take alignment and luck hit, make @@ -727,17 +938,26 @@ register xchar x, y; if (mtmp->mhp > 0) u.uconduct.killer = save_pacifism; } else { +/*JP pline("%s is choked by the leash!", Monnam(mtmp)); +*/ + pline("%s‚Í•R‚ÅŽñ‚ði‚ß‚ç‚ꂽI", Monnam(mtmp)); /* tameness eventually drops to 1 here (never 0) */ if (mtmp->mtame && rn2(mtmp->mtame)) mtmp->mtame--; } } else { if (um_dist(mtmp->mx, mtmp->my, 5)) { +/*JP pline("%s leash snaps loose!", s_suffix(Monnam(mtmp))); +*/ + pline("%s‚Ì•R‚̓pƒ`ƒ“‚ÆŠO‚ꂽI", Monnam(mtmp)); m_unleash(mtmp, FALSE); } else { +/*JP You("pull on the leash."); +*/ + You("•R‚ðˆø‚Á‚Ï‚Á‚½D"); if (mtmp->data->msound != MS_SILENT) switch (rn2(3)) { case 0: @@ -761,14 +981,24 @@ beautiful() { return ((ACURR(A_CHA) > 14) ? ((poly_gender() == 1) +#if 0 /*JP*/ ? "beautiful" : "handsome") : "ugly"); +#else +/*JP ŒêŠ²‚ÅŽg‚¤ */ + ? "”ü‚µ" + : "‚è‚肵") + : "X"); +#endif } #define WEAK 3 /* from eat.c */ +/*JP static const char look_str[] = "look %s."; +*/ +static const char look_str[] = "%sŒ©‚¦‚éD"; STATIC_OVL int use_mirror(obj) @@ -788,21 +1018,36 @@ struct obj *obj; mirror = simpleonames(obj); /* "mirror" or "looking glass" */ if (obj->cursed && !rn2(2)) { if (!Blind) +/*JP pline_The("%s fogs up and doesn't reflect!", mirror); +*/ + pline("%s‚Í“Ü‚èC‰f‚ç‚È‚­‚È‚Á‚½I", mirror); return 1; } if (!u.dx && !u.dy && !u.dz) { if (!useeit) { +/*JP You_cant("see your %s %s.", uvisage, body_part(FACE)); +*/ + You_cant("Ž©•ª‚Ì%s‚¢%s‚ðŒ©‚é‚±‚Æ‚ª‚Å‚«‚È‚¢D", uvisage, body_part(FACE)); } else { if (u.umonnum == PM_FLOATING_EYE) { if (Free_action) { +/*JP You("stiffen momentarily under your gaze."); +*/ + pline("ˆêu‚ ‚È‚½‚Ì‚É‚ç‚݂ōd’¼‚µ‚½D"); } else { if (Hallucination) +/*JP pline("Yow! The %s stares back!", mirror); +*/ + pline("‚¨‚ìI%s‚ª‚ ‚È‚½‚ð‚É‚ç‚Ý•Ô‚µ‚½I", mirror); else +/*JP pline("Yikes! You've frozen yourself!"); +*/ + pline("‚¨‚ìI‚ ‚È‚½‚Í“®‚¯‚È‚­‚È‚Á‚½I"); if (!Hallucination || !rn2(4)) { nomul(-rnd(MAXULEV + 6 - u.ulevel)); multi_reason = "gazing into a mirror"; @@ -810,18 +1055,33 @@ struct obj *obj; nomovemsg = 0; /* default, "you can move again" */ } } else if (youmonst.data->mlet == S_VAMPIRE) +/*JP You("don't have a reflection."); +*/ + You("‹¾‚ɉf‚ç‚È‚©‚Á‚½D"); else if (u.umonnum == PM_UMBER_HULK) { +/*JP pline("Huh? That doesn't look like you!"); +*/ + pline("‚Ù‚¦HŽÊ‚Á‚Ä‚é‚Ì‚Í‚ ‚È‚½‚¶‚á‚È‚¢‚Ý‚½‚¢‚¾I"); make_confused(HConfusion + d(3, 4), FALSE); } else if (Hallucination) You(look_str, hcolor((char *) 0)); else if (Sick) +/*JP You(look_str, "peaked"); +*/ + You(look_str, "ŠçF‚ªˆ«‚­"); else if (u.uhs >= WEAK) +/*JP You(look_str, "undernourished"); +*/ + You(look_str, "‰h—{Ž¸’²‚̂悤‚É"); else +/*JP You("look as %s as ever.", uvisage); +*/ + You("‚ ‚¢‚©‚í‚炸%s‚­Œ©‚¦‚éD", uvisage); } return 1; } @@ -833,13 +1093,21 @@ struct obj *obj; } if (Underwater) { if (useeit) +#if 0 /*JP*/ You(Hallucination ? "give the fish a chance to fix their makeup." : "reflect the murky water."); +#else + You(Hallucination ? "‹›‚ɉ»Ï’¼‚µ‚Ì‹@‰ï‚ð—^‚¦‚½D" + : "‚ ‚È‚½‚Í—„‚ñ‚¾…‚ð‰f‚µ‚½D"); +#endif return 1; } if (u.dz) { if (useeit) +/*JP You("reflect the %s.", +*/ + You("%s‚ð‰f‚µ‚½D", (u.dz > 0) ? surface(u.ux, u.uy) : ceiling(u.ux, u.uy)); return 1; } @@ -861,28 +1129,50 @@ struct obj *obj; mlet = mtmp->data->mlet; if (mtmp->msleeping) { if (vis) +/*JP pline("%s is too tired to look at your %s.", Monnam(mtmp), +*/ + pline("%s‚Í‚Æ‚Ä‚à”æ‚ê‚Ä‚¢‚Ä%s‚ðŒ©‚é‚Ç‚±‚낶‚á‚È‚¢D", Monnam(mtmp), mirror); } else if (!mtmp->mcansee) { if (vis) +/*JP pline("%s can't see anything right now.", Monnam(mtmp)); +*/ + pline("%s‚͍¡‚Ì‚Æ‚±‚뉽‚àŒ©‚邱‚Æ‚ª‚Å‚«‚È‚¢D", Monnam(mtmp)); } else if (invis_mirror && !perceives(mtmp->data)) { if (vis) +/*JP pline("%s fails to notice your %s.", Monnam(mtmp), mirror); +*/ + pline("%s‚Í‚ ‚È‚½‚Ì%s‚É‹C•t‚©‚È‚©‚Á‚½D", Monnam(mtmp), mirror); /* infravision doesn't produce an image in the mirror */ } else if ((how_seen & SEENMON) == MONSEEN_INFRAVIS) { if (vis) /* (redundant) */ +#if 0 /*JP*/ pline("%s is too far away to see %sself in the dark.", Monnam(mtmp), mhim(mtmp)); +#else + pline("%s‚͈ÈłŎ©•ªŽ©g‚ðŒ©‚é‚ɂ͉“‚·‚¬‚éD", Monnam(mtmp)); +#endif /* some monsters do special things */ } else if (mlet == S_VAMPIRE || mlet == S_GHOST || is_vampshifter(mtmp)) { if (vis) +/*JP pline("%s doesn't have a reflection.", Monnam(mtmp)); +*/ + pline("%s‚Í%s‚ɉf‚ç‚È‚¢D", Monnam(mtmp), mirror); } else if (monable && mtmp->data == &mons[PM_MEDUSA]) { +/*JP if (mon_reflects(mtmp, "The gaze is reflected away by %s %s!")) +*/ + if (mon_reflects(mtmp, "‚É‚ç‚Ý‚Í%s‚Ì%s‚Å”½ŽË‚µ‚½I")) return 1; if (vis) +/*JP pline("%s is turned to stone!", Monnam(mtmp)); +*/ + pline("%s‚͐΂ɂȂÁ‚½I", Monnam(mtmp)); stoned = TRUE; killed(mtmp); } else if (monable && mtmp->data == &mons[PM_FLOATING_EYE]) { @@ -890,24 +1180,43 @@ struct obj *obj; if (!rn2(4)) tmp = 120; if (vis) +/*JP pline("%s is frozen by its reflection.", Monnam(mtmp)); +*/ + pline("%s‚ÍŽ©•ª‚ÌŽp‚ðŒ©‚Ä“®‚¯‚È‚­‚È‚Á‚½D", Monnam(mtmp)); else +/*JP You_hear("%s stop moving.", something); +*/ + You_hear("‰½‚©‚ª“®‚«‚ð‚Æ‚ß‚½‰¹‚ð•·‚¢‚½D"); paralyze_monst(mtmp, (int) mtmp->mfrozen + tmp); } else if (monable && mtmp->data == &mons[PM_UMBER_HULK]) { if (vis) +/*JP pline("%s confuses itself!", Monnam(mtmp)); +*/ + pline("%s‚͍¬—‚µ‚½I", Monnam(mtmp)); mtmp->mconf = 1; } else if (monable && (mlet == S_NYMPH || mtmp->data == &mons[PM_SUCCUBUS] || mtmp->data == &mons[PM_INCUBUS])) { if (vis) { char buf[BUFSZ]; /* "She" or "He" */ +#if 0 /*JP*/ pline("%s admires %sself in your %s.", Monnam(mtmp), mhim(mtmp), mirror); +#else + pline("%s‚ÍŽ©•ª‚ÌŽp‚É‚¤‚Á‚Ƃ肵‚½D", Monnam(mtmp)); +#endif +/*JP pline("%s takes it!", upstart(strcpy(buf, mhe(mtmp)))); +*/ + pline("%s‚Í‚»‚ê‚ð’D‚Á‚½I", upstart(strcpy(buf, mhe(mtmp)))); } else +/*JP pline("It steals your %s!", mirror); +*/ + pline("‰½ŽÒ‚©‚ª‚ ‚È‚½‚Ì%s‚𓐂ñ‚¾I", mirror); setnotworn(obj); /* in case mirror was wielded */ freeinv(obj); (void) mpickobj(mtmp, obj); @@ -916,7 +1225,10 @@ struct obj *obj; } else if (!is_unicorn(mtmp->data) && !humanoid(mtmp->data) && (!mtmp->minvis || perceives(mtmp->data)) && rn2(5)) { if (vis) +/*JP pline("%s is frightened by its reflection.", Monnam(mtmp)); +*/ + pline("%s‚ÍŽ©•ª‚ÌŽp‚ðŒ©‚Ä•|‚ª‚Á‚½D", Monnam(mtmp)); monflee(mtmp, d(2, 4), FALSE, FALSE); } else if (!Blind) { if (mtmp->minvis && !See_invisible) @@ -924,10 +1236,17 @@ struct obj *obj; else if ((mtmp->minvis && !perceives(mtmp->data)) /* redundant: can't get here if these are true */ || !haseyes(mtmp->data) || notonhead || !mtmp->mcansee) +#if 0 /*JP*/ pline("%s doesn't seem to notice %s reflection.", Monnam(mtmp), mhis(mtmp)); +#else + pline("%s‚ÍŽ©•ª‚ÌŽp‚É‹C‚ª‚‚¢‚Ä‚È‚¢‚悤‚¾D", Monnam(mtmp)); +#endif else +/*JP pline("%s ignores %s reflection.", Monnam(mtmp), mhis(mtmp)); +*/ + pline("%s‚ÍŽ©•ª‚ÌŽp‚𖳎‹‚µ‚½D", Monnam(mtmp)); } return 1; } @@ -944,17 +1263,26 @@ struct obj **optr; (obj->otyp == BELL_OF_OPENING && invocation_pos(u.ux, u.uy) && !On_stairs(u.ux, u.uy)); +/*JP You("ring %s.", the(xname(obj))); +*/ + You("%s‚ð–‚炵‚½D", the(xname(obj))); if (Underwater || (u.uswallow && ordinary)) { #ifdef AMIGA amii_speaker(obj, "AhDhGqEqDhEhAqDqFhGw", AMII_MUFFLED_VOLUME); #endif +/*JP pline("But the sound is muffled."); +*/ + pline("‚µ‚©‚µ‰¹‚Í‚©‚«Á‚³‚ꂽD"); } else if (invoking && ordinary) { /* needs to be recharged... */ +/*JP pline("But it makes no sound."); +*/ + pline("‚µ‚©‚µC‰¹‚͖‚ç‚È‚©‚Á‚½D"); learno = TRUE; /* help player figure out why */ } else if (ordinary) { @@ -968,9 +1296,15 @@ struct obj **optr; && !(mvitals[PM_MOUNTAIN_NYMPH].mvflags & G_GONE) && (mtmp = makemon(mkclass(S_NYMPH, 0), u.ux, u.uy, NO_MINVENT)) != 0) { +/*JP You("summon %s!", a_monnam(mtmp)); +*/ + You("%s‚ð¢Š«‚µ‚½I", a_monnam(mtmp)); if (!obj_resists(obj, 93, 100)) { +/*JP pline("%s shattered!", Tobjnam(obj, "have")); +*/ + pline("%s‚Í•²X‚É‚È‚Á‚½I", xname(obj)); useup(obj); *optr = 0; } else @@ -1008,7 +1342,10 @@ struct obj **optr; wakem = TRUE; } else if (invoking) { +/*JP pline("%s an unsettling shrill sound...", Tobjnam(obj, "issue")); +*/ + pline("%s‚Í•s‹C–¡‚ȉs‚¢‰¹‚ðo‚µ‚½DDD", xname(obj)); #ifdef AMIGA amii_speaker(obj, "aefeaefeaefeaefeaefe", AMII_LOUDER_VOLUME); #endif @@ -1035,11 +1372,17 @@ struct obj **optr; pline1(nothing_happens); break; case 1: +/*JP pline("%s opens...", Something); +*/ + pline("‰½‚©‚ªŠJ‚¢‚½DDD"); learno = TRUE; break; default: +/*JP pline("Things open around you..."); +*/ + pline("‚Ü‚í‚è‚Ì•¨‚ªŠJ‚¢‚½DDD"); learno = TRUE; break; } @@ -1068,39 +1411,72 @@ STATIC_OVL void use_candelabrum(obj) register struct obj *obj; { +#if 0 /*JP*//* not used */ const char *s = (obj->spe != 1) ? "candles" : "candle"; +#endif if (obj->lamplit) { +/*JP You("snuff the %s.", s); +*/ + You("‚낤‚»‚­‚𐁂«Á‚µ‚½D"); end_burn(obj, TRUE); return; } if (obj->spe <= 0) { +/*JP pline("This %s has no %s.", xname(obj), s); +*/ + pline("‚±‚Ì%s‚ɂ͂낤‚»‚­‚ª‚È‚¢D", xname(obj)); return; } if (Underwater) { +/*JP You("cannot make fire under water."); +*/ + You("…’†‚Å‰Î‚ð‚¨‚±‚¹‚È‚¢D"); return; } if (u.uswallow || obj->cursed) { if (!Blind) +#if 0 /*JP*/ pline_The("%s %s for a moment, then %s.", s, vtense(s, "flicker"), vtense(s, "die")); +#else + pline("‚낤‚»‚­‚̉Š‚Í‚µ‚΂炭“_–Å‚µCÁ‚¦‚½D"); +#endif return; } if (obj->spe < 7) { +#if 0 /*JP*/ There("%s only %d %s in %s.", vtense(s, "are"), obj->spe, s, the(xname(obj))); +#else + pline("%s‚É‚Í‚½‚Á‚½%d–{‚̂낤‚»‚­‚µ‚©‚È‚¢D", + xname(obj), obj->spe); +#endif if (!Blind) +#if 0 /*JP*/ pline("%s lit. %s dimly.", obj->spe == 1 ? "It is" : "They are", Tobjnam(obj, "shine")); +#else + pline("%s‚ɉ΂ð‚‚¯‚½D%s‚Í‚Ù‚Ì‚©‚É‹P‚¢‚½D", + xname(obj), xname(obj)); +#endif } else { +#if 0 /*JP*/ pline("%s's %s burn%s", The(xname(obj)), s, (Blind ? "." : " brightly!")); +#else + pline("%s‚̂낤‚»‚­‚Í%s”R‚¦‚ ‚ª‚Á‚½I", The(xname(obj)), + (Blind ? "" : "–¾‚é‚­")); +#endif } if (!invocation_pos(u.ux, u.uy) || On_stairs(u.ux, u.uy)) { +/*JP pline_The("%s %s being rapidly consumed!", s, vtense(s, "are")); +*/ + pline("‚낤‚»‚­‚Í‚·‚²‚¢‘¬‚³‚Å”R‚¦Žn‚ß‚½I"); /* this used to be obj->age /= 2, rounding down; an age of 1 would yield 0, confusing begin_burn() and producing an unlightable, unrefillable candelabrum; round up instead */ @@ -1108,9 +1484,15 @@ register struct obj *obj; } else { if (obj->spe == 7) { if (Blind) +/*JP pline("%s a strange warmth!", Tobjnam(obj, "radiate")); +*/ + pline("Šï–­‚È’g‚©‚³‚ð%s‚ÉŠ´‚¶‚½I", xname(obj)); else +/*JP pline("%s with a strange light!", Tobjnam(obj, "glow")); +*/ + pline("%s‚ÍŠï–­‚ÈŒõ‚ð”­‚µ‚Ä‚¢‚éI", xname(obj)); } obj->known = 1; } @@ -1123,7 +1505,10 @@ struct obj **optr; { register struct obj *obj = *optr; register struct obj *otmp; +/*JP const char *s = (obj->quan != 1) ? "candles" : "candle"; +*/ + const char *s = "‚낤‚»‚­"; char qbuf[QBUFSZ], qsfx[QBUFSZ], *q; if (u.uswallow) { @@ -1140,6 +1525,9 @@ struct obj **optr; /* first, minimal candelabrum suffix for formatting candles */ Sprintf(qsfx, " to\033%s?", thesimpleoname(otmp)); /* next, format the candles as a prefix for the candelabrum */ +/*JP + (void) safe_qbuf(qbuf, "Attach ", qsfx, obj, yname, thesimpleoname, s); +*/ (void) safe_qbuf(qbuf, "Attach ", qsfx, obj, yname, thesimpleoname, s); /* strip temporary candelabrum suffix */ if ((q = strstri(qbuf, " to\033")) != 0) @@ -1157,23 +1545,44 @@ struct obj **optr; s = (obj->quan != 1) ? "candles" : "candle"; } else *optr = 0; +#if 0 /*JP*/ You("attach %ld%s %s to %s.", obj->quan, !otmp->spe ? "" : " more", s, the(xname(otmp))); +#else + You("%ld–{‚̂낤‚»‚­‚ð%s%s‚ÖŽæ‚è‚‚¯‚½D", + obj->quan, !otmp->spe ? "" : "‚³‚ç‚É", + xname(otmp)); +#endif if (!otmp->spe || otmp->age > obj->age) otmp->age = obj->age; otmp->spe += (int) obj->quan; if (otmp->lamplit && !obj->lamplit) +/*JP pline_The("new %s magically %s!", s, vtense(s, "ignite")); +*/ + pline("V‚µ‚¢‚낤‚»‚­‚Í•sŽv‹c‚ȉŠ‚ð‚ ‚°‚½I"); else if (!otmp->lamplit && obj->lamplit) +/*JP pline("%s out.", (obj->quan > 1L) ? "They go" : "It goes"); +*/ + pline("‰Š‚͏Á‚¦‚½D"); if (obj->unpaid) +#if 0 /*JP*/ verbalize("You %s %s, you bought %s!", otmp->lamplit ? "burn" : "use", (obj->quan > 1L) ? "them" : "it", (obj->quan > 1L) ? "them" : "it"); +#else + verbalize("‰Î‚ð‚‚¯‚½‚È‚çC”ƒ‚Á‚Ä‚à‚炨‚¤I"); +#endif if (obj->quan < 7L && otmp->spe == 7) +#if 0 /*JP*/ pline("%s now has seven%s candles attached.", The(xname(otmp)), otmp->lamplit ? " lit" : ""); +#else + pline("%s‚É‚Í‚·‚Å‚É7–{‚Ì%s‚낤‚»‚­‚ªŽæ‚è‚‚¯‚ç‚ê‚Ä‚¢‚éD", + The(xname(otmp)), otmp->lamplit ? "‰Î‚̂‚¢‚½" : ""); +#endif /* candelabrum's light range might increase */ if (otmp->lamplit) obj_merge_light_sources(otmp, otmp); @@ -1196,13 +1605,20 @@ struct obj *otmp; && otmp->lamplit) { char buf[BUFSZ]; xchar x, y; +#if 0 /*JP*//* not used */ boolean many = candle ? (otmp->quan > 1L) : (otmp->spe > 1); +#endif (void) get_obj_location(otmp, &x, &y, 0); if (otmp->where == OBJ_MINVENT ? cansee(x, y) : !Blind) +#if 0 /*JP*/ pline("%s%scandle%s flame%s extinguished.", Shk_Your(buf, otmp), (candle ? "" : "candelabrum's "), (many ? "s'" : "'s"), (many ? "s are" : " is")); +#else + pline("%s%s‚낤‚»‚­‚̉Š‚͏Á‚¦‚½D", Shk_Your(buf, otmp), + candle ? "" : "C‘ä‚Ì"); +#endif end_burn(otmp, TRUE); return TRUE; } @@ -1223,7 +1639,10 @@ struct obj *obj; || obj->otyp == BRASS_LANTERN || obj->otyp == POT_OIL) { (void) get_obj_location(obj, &x, &y, 0); if (obj->where == OBJ_MINVENT ? cansee(x, y) : !Blind) +/*JP pline("%s %s out!", Yname2(obj), otense(obj, "go")); +*/ + pline("%s‚͏Á‚¦‚½I", Yname2(obj)); end_burn(obj, TRUE); return TRUE; } @@ -1255,14 +1674,21 @@ struct obj *obj; || obj->otyp == BRASS_LANTERN) && obj->cursed && !rn2(2)) return FALSE; if (obj->where == OBJ_MINVENT ? cansee(x, y) : !Blind) +/*JP pline("%s %s light!", Yname2(obj), otense(obj, "catch")); +*/ + pline("%s‚Ì–¾‚©‚肪‚‚¢‚½I", Yname2(obj)); if (obj->otyp == POT_OIL) makeknown(obj->otyp); if (carried(obj) && obj->unpaid && costly_spot(u.ux, u.uy)) { /* if it catches while you have it, then it's your tough luck */ check_unpaid(obj); +#if 0 /*JP:T*/ verbalize("That's in addition to the cost of %s %s, of course.", yname(obj), obj->quan == 1L ? "itself" : "themselves"); +#else + verbalize("‚±‚ê‚Í‚à‚¿‚ë‚ñ%s‚Ì’l’i‚Æ‚Í•Ê‚¾‚æD", Yname2(obj)); +#endif bill_dummy_object(obj); } begin_burn(obj, FALSE); @@ -1287,36 +1713,64 @@ struct obj *obj; return; } if (Underwater) { +#if 0 /*JP*/ pline(!Is_candle(obj) ? "This is not a diving lamp" : "Sorry, fire and water don't mix."); +#else + pline(!Is_candle(obj) ? "‚±‚ê‚͐ö…—p‚̃‰ƒ“ƒv‚¶‚á‚È‚¢D" + : "Žc”O‚È‚ª‚çC‰Î‚Ɛ…‚Í‚Ü‚´‚ç‚È‚¢D"); +#endif return; } /* magic lamps with an spe == 0 (wished for) cannot be lit */ if ((!Is_candle(obj) && obj->age == 0) || (obj->otyp == MAGIC_LAMP && obj->spe == 0)) { if (obj->otyp == BRASS_LANTERN) +/*JP Your("lamp has run out of power."); +*/ + Your("ƒ‰ƒ“ƒv‚Ì“d—Í‚ðŽg‚¢Ø‚Á‚Ä‚µ‚Ü‚Á‚½D"); else +/*JP pline("This %s has no oil.", xname(obj)); +*/ + pline("‚±‚Ì%s‚É‚Í‚à‚¤ƒIƒCƒ‹‚ª‚È‚¢D", xname(obj)); return; } if (obj->cursed && !rn2(2)) { if (!Blind) +#if 0 /*JP*/ pline("%s for a moment, then %s.", Tobjnam(obj, "flicker"), otense(obj, "die")); +#else + pline("%s‚Í‚µ‚΂炭‚ÌŠÔ“_–Å‚µCÁ‚¦‚½D", + xname(obj)); +#endif } else { if (obj->otyp == OIL_LAMP || obj->otyp == MAGIC_LAMP || obj->otyp == BRASS_LANTERN) { check_unpaid(obj); +/*JP pline("%slamp is now on.", Shk_Your(buf, obj)); +*/ + pline("%sƒ‰ƒ“ƒv‚É“”‚ª“”‚Á‚½D", Shk_Your(buf, obj)); } else { /* candle(s) */ +#if 0 /*JP*/ pline("%s flame%s %s%s", s_suffix(Yname2(obj)), plur(obj->quan), otense(obj, "burn"), Blind ? "." : " brightly!"); +#else + pline("%s‚Í%s”R‚¦‚ ‚ª‚Á‚½I", + Yname2(obj), Blind ? "" : "–¾‚é‚­"); +#endif if (obj->unpaid && costly_spot(u.ux, u.uy) && obj->age == 20L * (long) objects[obj->otyp].oc_cost) { +#if 0 /*JP*/ const char *ithem = (obj->quan > 1L) ? "them" : "it"; verbalize("You burn %s, you bought %s!", ithem, ithem); +#else + verbalize("“”‚ð‚‚¯‚½‚È‚çC”ƒ‚Á‚Ä‚à‚炨‚¤I"); +#endif bill_dummy_object(obj); } } @@ -1337,7 +1791,10 @@ struct obj *obj; /* obj is a potion of oil */ } if (obj->lamplit) { +/*JP You("snuff the lit potion."); +*/ + You("–û•r‚̉΂𐁂«Á‚µ‚½D"); end_burn(obj, TRUE); /* * Free & add to re-merge potion. This will average the @@ -1348,7 +1805,10 @@ struct obj *obj; /* obj is a potion of oil */ (void) addinv(obj); return; } else if (Underwater) { +/*JP There("is not enough oxygen to sustain a fire."); +*/ + pline("‰Î‚ð‚‚¯‚é‚̂ɏ\•ª‚ÈŽ_‘f‚ª‚È‚¢D"); return; } @@ -1356,15 +1816,23 @@ struct obj *obj; /* obj is a potion of oil */ if (split1off) obj = splitobj(obj, 1L); +#if 0 /*JP*/ You("light %spotion.%s", shk_your(buf, obj), Blind ? "" : " It gives off a dim light."); +#else + You("%s–û•r‚ɉ΂ð‚‚¯‚½D%s", shk_your(buf, obj), + Blind ? "" : "–û•r‚͈¢Œõ‚ð‚Í‚È‚Á‚½D"); +#endif if (obj->unpaid && costly_spot(u.ux, u.uy)) { /* Normally, we shouldn't both partially and fully charge * for an item, but (Yendorian Fuel) Taxes are inevitable... */ check_unpaid(obj); +/*JP verbalize("That's in addition to the cost of the potion, of course."); +*/ + verbalize("‚±‚ê‚Í‚à‚¿‚ë‚ñ–û•r‚Ì’l’i‚Æ‚Í•Ê‚¾‚æD"); bill_dummy_object(obj); } makeknown(obj->otyp); @@ -1373,7 +1841,10 @@ struct obj *obj; /* obj is a potion of oil */ if (split1off) { obj_extract_self(obj); /* free from inv */ obj->nomerge = 1; +/*JP obj = hold_another_object(obj, "You drop %s!", doname(obj), +*/ + obj = hold_another_object(obj, "‚ ‚È‚½‚Í%s‚ð—Ž‚µ‚½I", doname(obj), (const char *) 0); if (obj) obj->nomerge = 0; @@ -1392,7 +1863,10 @@ dorub() use_stone(obj); return 1; } else { +/*JP pline("Sorry, I don't know how to use that."); +*/ + pline("Žc”ODŽg‚¢•û‚ª‚í‚©‚ç‚È‚¢D"); return 0; } } @@ -1418,13 +1892,22 @@ dorub() makeknown(MAGIC_LAMP); update_inventory(); } else if (rn2(2)) { +/*JP You("%s smoke.", !Blind ? "see a puff of" : "smell"); +*/ + pline("‚¯‚Þ‚è%sD", !Blind ? "‚ª•‘‚¢‚ ‚ª‚Á‚½" : "‚Ì“õ‚¢‚ª‚µ‚½"); } else pline1(nothing_happens); } else if (obj->otyp == BRASS_LANTERN) { /* message from Adventure */ +/*JP pline("Rubbing the electric lamp is not particularly rewarding."); +*/ + pline("“d‹Cƒ‰ƒ“ƒv‚ð‚±‚·‚Á‚Ä‚àˆÓ–¡‚Í‚È‚¢‚ÆŽv‚¤‚ªDDD"); +/*JP pline("Anyway, nothing exciting happens."); +*/ + pline("‚â‚Á‚Ï‚èC‰½‚à‹N‚«‚È‚©‚Á‚½D"); } else pline1(nothing_happens); return 1; @@ -1447,19 +1930,31 @@ boolean showmsg; * horse. After all, what shape is the knight piece in chess? */ if (showmsg) +/*JP pline("Illegal move!"); +*/ + pline("‚»‚̈ړ®‚ÍŒj”n’µ‚Ñ‚¶‚á‚È‚¢I"); return FALSE; } else if (distu(x, y) > (magic ? 6 + magic * 3 : 9)) { if (showmsg) +/*JP pline("Too far!"); +*/ + pline("‰“‚·‚¬‚éI"); return FALSE; } else if (!cansee(x, y)) { if (showmsg) +/*JP You("cannot see where to land!"); +*/ + You("’…’n“_‚ªŒ©‚¦‚È‚¢I"); return FALSE; } else if (!isok(x, y)) { if (showmsg) +/*JP You("cannot jump there!"); +*/ + You("‚»‚±‚É‚Í”ò‚ׂȂ¢I"); return FALSE; } return TRUE; @@ -1498,10 +1993,16 @@ int magic; /* 0=Physical, otherwise skill level */ if (!magic && (nolimbs(youmonst.data) || slithy(youmonst.data))) { /* normally (nolimbs || slithy) implies !Jumping, but that isn't necessarily the case for knights */ +/*JP You_cant("jump; you have no legs!"); +*/ + pline("‘«‚ª–³‚­‚Ä‚Í’µ‚ׂȂ¢I"); return 0; } else if (!magic && !Jumping) { +/*JP You_cant("jump very far."); +*/ + You_cant("‚»‚ñ‚ȉ“‚­‚Ü‚Å’µ‚ׂȂ¢D"); return 0; /* if steed is immobile, can't do physical jump but can do spell one */ } else if (!magic && u.usteed && stucksteed(FALSE)) { @@ -1509,42 +2010,75 @@ int magic; /* 0=Physical, otherwise skill level */ return 0; } else if (u.uswallow) { if (magic) { +/*JP You("bounce around a little."); +*/ + pline("”½“®‚ð‚‚¯‚½D"); return 1; } +/*JP pline("You've got to be kidding!"); +*/ + pline("ç’k‚͂悵‚±‚³‚ñI"); return 0; } else if (u.uinwater) { if (magic) { +/*JP You("swish around a little."); +*/ + pline("ƒXƒCƒXƒC‚Ɖj‚¢‚¾D"); return 1; } +/*JP pline("This calls for swimming, not jumping!"); +*/ + pline("‚»‚ê‚́w‰j‚®x‚Å‚ ‚Á‚āCw’µ‚ԁx‚¶‚á‚È‚¢I"); return 0; } else if (u.ustuck) { if (u.ustuck->mtame && !Conflict && !u.ustuck->mconf) { +/*JP You("pull free from %s.", mon_nam(u.ustuck)); +*/ + You("%s‚©‚ç—£‚ꂽD", mon_nam(u.ustuck)); u.ustuck = 0; return 1; } if (magic) { +/*JP You("writhe a little in the grasp of %s!", mon_nam(u.ustuck)); +*/ + You("%s‚©‚瓦‚ê‚悤‚ƃWƒ^ƒoƒ^‚µ‚½I", mon_nam(u.ustuck)); return 1; } +/*JP You("cannot escape from %s!", mon_nam(u.ustuck)); +*/ + You("%s‚©‚瓦‚ê‚ç‚ê‚È‚¢I", mon_nam(u.ustuck)); return 0; } else if (Levitation || Is_airlevel(&u.uz) || Is_waterlevel(&u.uz)) { if (magic) { +/*JP You("flail around a little."); +*/ + You("ƒoƒ^ƒoƒ^’µ‚ñ‚¾D"); return 1; } +/*JP You("don't have enough traction to jump."); +*/ + You("’µ‚Ô‚½‚ß‚Ì”½“®‚ª‚‚¯‚ç‚ê‚È‚¢D"); return 0; } else if (!magic && near_capacity() > UNENCUMBERED) { +/*JP You("are carrying too much to jump!"); +*/ + You("‚½‚­‚³‚ñ•¨‚ðŽ‚¿‚·‚¬‚Ä’µ‚ׂȂ¢I"); return 0; } else if (!magic && (u.uhunger <= 100 || ACURR(A_STR) < 6)) { +/*JP You("lack the strength to jump!"); +*/ + You("’µ‚Ô‚¾‚¯‚Ì—Í‚ª‚È‚¢I"); return 0; } else if (!magic && Wounded_legs) { long wl = (Wounded_legs & BOTH_SIDES); @@ -1553,24 +2087,42 @@ int magic; /* 0=Physical, otherwise skill level */ if (wl == BOTH_SIDES) bp = makeplural(bp); if (u.usteed) +/*JP pline("%s is in no shape for jumping.", Monnam(u.usteed)); +*/ + pline("%s‚Í’µ‚ׂéó‘Ô‚Å‚Í‚È‚¢D", Monnam(u.usteed)); else +#if 0 /*JP*/ Your("%s%s %s in no shape for jumping.", (wl == LEFT_SIDE) ? "left " : (wl == RIGHT_SIDE) ? "right " : "", bp, (wl == BOTH_SIDES) ? "are" : "is"); +#else + Your("%s%s‚Í’µ‚ׂéó‘Ô‚Å‚Í‚È‚¢D", + (wl == LEFT_SIDE) ? "¶" : + (wl == RIGHT_SIDE) ? "‰E" : "", bp); +#endif return 0; } else if (u.usteed && u.utrap) { +/*JP pline("%s is stuck in a trap.", Monnam(u.usteed)); +*/ + pline("%s‚Í㩂ɂЂÁ‚©‚©‚Á‚Ä‚¢‚éD", Monnam(u.usteed)); return 0; } +/*JP pline("Where do you want to jump?"); +*/ + pline("‚Ç‚±‚É’µ‚Ñ‚Ü‚·‚©H"); cc.x = u.ux; cc.y = u.uy; jumping_is_magic = magic; getpos_sethilite(display_jump_positions); +/*JP if (getpos(&cc, TRUE, "the desired position") < 0) +*/ + if (getpos(&cc, TRUE, "’µ‚Ñ‚½‚¢êŠ") < 0) return 0; /* user pressed ESC */ if (!is_valid_jump_pos(cc.x, cc.y, magic, TRUE)) { return 0; @@ -1583,30 +2135,53 @@ int magic; /* 0=Physical, otherwise skill level */ case TT_BEARTRAP: { long side = rn2(3) ? LEFT_SIDE : RIGHT_SIDE; +/*JP You("rip yourself free of the bear trap! Ouch!"); +*/ + You("Ž©•ª‚ðŒF‚Ì㩂©‚ç‚Ђ«‚Í‚ª‚µ‚½C‚¢‚Ä‚ÁI"); +/*JP losehp(Maybe_Half_Phys(rnd(10)), "jumping out of a bear trap", +*/ + losehp(Maybe_Half_Phys(rnd(10)), "ŒF‚Ì㩂©‚ç”ò‚яo‚悤‚Æ‚µ‚Ä", KILLED_BY); set_wounded_legs(side, rn1(1000, 500)); break; } case TT_PIT: +/*JP You("leap from the pit!"); +*/ + You("—Ž‚µŒŠ‚©‚ç”ò‚яo‚½I"); break; case TT_WEB: +/*JP You("tear the web apart as you pull yourself free!"); +*/ + You("‚­‚à‚Ì‘ƒ‚ðˆø‚«—ô‚«CŽ©—R‚É‚È‚Á‚½I"); deltrap(t_at(u.ux, u.uy)); break; case TT_LAVA: +/*JP You("pull yourself above the lava!"); +*/ + You("—nŠâ‚©‚ç”ò‚яo‚½I"); u.utrap = 0; return 1; case TT_BURIEDBALL: case TT_INFLOOR: +#if 0 /*JP*/ You("strain your %s, but you're still %s.", makeplural(body_part(LEG)), (u.utraptype == TT_INFLOOR) ? "stuck in the floor" : "attached to the buried ball"); +#else + You("%s‚ðˆø‚Á‚Ï‚Á‚½‚ªC‚ ‚È‚½‚Í‚Ü‚¾%sD", + makeplural(body_part(LEG)), + (u.utraptype == TT_INFLOOR) + ? "°‚É‚¤‚Ü‚Á‚Ä‚¢‚é" + : "‚¤‚Ü‚Á‚½‹…‚Ƃ‚Ȃª‚Á‚Ä‚¢‚é"); +#endif set_wounded_legs(LEFT_SIDE, rn1(10, 11)); set_wounded_legs(RIGHT_SIDE, rn1(10, 11)); return 1; @@ -1660,13 +2235,19 @@ struct obj *obj; * moves, we've got to deal with decaying corpses... */ if (obj->spe <= 0) { +/*JP You("seem to be out of tins."); +*/ + pline("ŠÊ‹l‚ðì‚邽‚ß‚ÌŠÊ‚ªØ‚ꂽ‚悤‚¾D"); return; } if (!(corpse = floorfood("tin", 2))) return; if (corpse->oeaten) { +/*JP You("cannot tin %s which is partly eaten.", something); +*/ + You("H‚ׂ©‚¯‚Ì‚à‚Ì‚ðŠÊ‹l‚É‚·‚邱‚Æ‚Í‚Å‚«‚È‚¢D"); return; } if (touch_petrifies(&mons[corpse->corpsenm]) && !Stone_resistance @@ -1674,31 +2255,58 @@ struct obj *obj; char kbuf[BUFSZ]; if (poly_when_stoned(youmonst.data)) +#if 0 /*JP*/ You("tin %s without wearing gloves.", an(mons[corpse->corpsenm].mname)); +#else + You("¬Žè‚È‚µ‚Å%s‚ðŠÊ‹l‚É‚µ‚悤‚Æ‚µ‚½D", + mons[corpse->corpsenm].mname); +#endif else { +#if 0 /*JP*/ pline("Tinning %s without wearing gloves is a fatal mistake...", an(mons[corpse->corpsenm].mname)); +#else + pline("%s‚ð¬Žè‚È‚µ‚ÅŠÊ‹l‚É‚·‚é‚Ì‚Í’v–½“I‚ȊԈႢ‚¾DDD", + mons[corpse->corpsenm].mname); +#endif +#if 0 /*JP*/ Sprintf(kbuf, "trying to tin %s without gloves", an(mons[corpse->corpsenm].mname)); +#else + Sprintf(kbuf, "¬Žè‚ð‚‚¯‚¸‚É%s‚ðŠÊ‹l‚É‚µ‚悤‚Æ‚µ‚Ä", + mons[corpse->corpsenm].mname); +#endif } instapetrify(kbuf); } if (is_rider(&mons[corpse->corpsenm])) { if (revive_corpse(corpse)) +/*JP verbalize("Yes... But War does not preserve its enemies..."); +*/ + verbalize("‚»‚¤‚¾DDD‚µ‚©‚µuí‘ˆv‚Í“G‚ɈÀ‚炬‚ð—^‚¦‚ʁDDD"); else +/*JP pline_The("corpse evades your grasp."); +*/ + pline("Ž€‘Ì‚Í‚ ‚È‚½‚ÌŽè‚𓦂ꂽD"); return; } if (mons[corpse->corpsenm].cnutrit == 0) { +/*JP pline("That's too insubstantial to tin."); +*/ + pline("ŽÀ‘Ì‚ª‚È‚¢‚Ì‚ÅŠÊ‹l‚É‚Å‚«‚È‚¢D"); return; } consume_obj_charge(obj, TRUE); if ((can = mksobj(TIN, FALSE, FALSE)) != 0) { +/*JP static const char you_buy_it[] = "You tin it, you bought it!"; +*/ + static const char you_buy_it[] = "ŠÊ‹l‚É‚µ‚½‚̂Ȃ甃‚Á‚Ä‚à‚炤‚æI"; can->corpsenm = corpse->corpsenm; can->cursed = obj->cursed; @@ -1716,7 +2324,10 @@ struct obj *obj; verbalize(you_buy_it); useupf(corpse, 1L); } +/*JP can = hold_another_object(can, "You make, but cannot pick up, %s.", +*/ + can = hold_another_object(can, "ŠÊ‹l‚É‚Å‚«‚½‚ªC%s‚ðŽ‚Â‚±‚Æ‚ª‚Å‚«‚È‚¢D", doname(can), (const char *) 0); } else impossible("Tinning failed."); @@ -1746,8 +2357,13 @@ struct obj *obj; break; case 2: if (!Confusion) +#if 0 /*JP*/ You("suddenly feel %s.", Hallucination ? "trippy" : "confused"); +#else + You("“Ë‘R%sD", + Hallucination ? "‚Ö‚ë‚Ö‚ë‚É‚È‚Á‚½" : "¬—‚µ‚½"); +#endif make_confused((HConfusion & TIMEOUT) + lcount, TRUE); break; case 3: @@ -1762,7 +2378,10 @@ struct obj *obj; break; case 6: if (Deaf) /* make_deaf() won't give feedback when already deaf */ +/*JP pline("Nothing seems to happen."); +*/ + pline("‰½‚à‹N‚«‚È‚©‚Á‚½‚悤‚¾D"); make_deaf((HDeaf & TIMEOUT) + lcount, TRUE); break; } @@ -1892,12 +2511,22 @@ struct obj *obj; } if (did_attr) +#if 0 /*JP*/ pline("This makes you feel %s!", (did_prop + did_attr) == (trouble_count + unfixable_trbl) ? "great" : "better"); +#else + pline("‹C•ª‚ª%s‚æ‚­‚È‚Á‚½I", + (did_prop + did_attr) == (trouble_count + unfixable_trbl) + ? "‚Æ‚Ä‚à" + : "‚æ‚è"); +#endif else if (!did_prop) +/*JP pline("Nothing seems to happen."); +*/ + pline("‰½‚à‹N‚«‚È‚©‚Á‚½‚悤‚¾D"); context.botl = (did_attr || did_prop); #undef PROP_COUNT @@ -1967,11 +2596,21 @@ long timeout; switch (figurine->where) { case OBJ_INVENT: if (Blind || suppress_see) +#if 0 /*JP*/ You_feel("%s %s from your pack!", something, locomotion(mtmp->data, "drop")); +#else + You_feel("%s‚ª‚ ‚È‚½‚ÌŠ“‚©‚ç%s‚悤‚¾I", something, + jpast(locomotion(mtmp->data, "—Ž‚¿‚é"))); +#endif else +#if 0 /*JP*/ You_see("%s %s out of your pack%s!", monnambuf, locomotion(mtmp->data, "drop"), and_vanish); +#else + You("%s‚ª‚ ‚È‚½‚ÌŠ“‚©‚ç%s‚Ì‚ðŒ©‚½I", monnambuf, + jpast(locomotion(mtmp->data,"—Ž‚¿‚é"))); +#endif break; case OBJ_FLOOR: @@ -1979,8 +2618,13 @@ long timeout; if (suppress_see) pline("%s suddenly vanishes!", an(xname(figurine))); else +#if 0 /*JP*/ You_see("a figurine transform into %s%s!", monnambuf, and_vanish); +#else + You("lŒ`‚ª“Ë‘R%s‚É‚È‚Á‚½‚Ì‚ðŒ©‚½I", + monnambuf); +#endif redraw = TRUE; /* update figurine's map location */ } break; @@ -1991,14 +2635,28 @@ long timeout; mon = figurine->ocarry; /* figurine carrying monster might be invisible */ if (canseemon(figurine->ocarry)) { +/*JP Sprintf(carriedby, "%s pack", s_suffix(a_monnam(mon))); +*/ + Sprintf(carriedby, "%s‚ÌŠ“", s_suffix(a_monnam(mon))); } else if (is_pool(mon->mx, mon->my)) +/*JP Strcpy(carriedby, "empty water"); +*/ + Strcpy(carriedby, "‰½‚à‚È‚¢…’†"); else +/*JP Strcpy(carriedby, "thin air"); +*/ + Strcpy(carriedby, "‰½‚à‚È‚¢‹ó’†"); +#if 0 /*JP*/ You_see("%s %s out of %s%s!", monnambuf, locomotion(mtmp->data, "drop"), carriedby, and_vanish); +#else + You("%s‚ª%s‚©‚ç%s‚Ì‚ðŒ©‚½I", monnambuf, + carriedby, locomotion(mtmp->data, "—Ž‚¿‚é")); +#endif } break; #if 0 @@ -2033,27 +2691,41 @@ boolean quietly; if (carried(obj) && u.uswallow) { if (!quietly) +/*JP You("don't have enough room in here."); +*/ + pline("‚±‚±‚ɂ͏\•ª‚ȏꏊ‚ª‚È‚¢D"); return FALSE; } x = cc ? cc->x : u.ux; y = cc ? cc->y : u.uy; if (!isok(x, y)) { if (!quietly) +/*JP You("cannot put the figurine there."); +*/ + You("‚±‚±‚ɂ͐lŒ`‚ð’u‚¯‚È‚¢D"); return FALSE; } if (IS_ROCK(levl[x][y].typ) && !(passes_walls(&mons[obj->corpsenm]) && may_passwall(x, y))) { if (!quietly) +#if 0 /*JP*/ You("cannot place a figurine in %s!", IS_TREE(levl[x][y].typ) ? "a tree" : "solid rock"); +#else + You("%s‚Ì’†‚ɂ͐lŒ`‚ð’u‚¯‚È‚¢I", + IS_TREE(levl[x][y].typ) ? "–Ø" : "ŒÅ‚¢Î"); +#endif return FALSE; } if (sobj_at(BOULDER, x, y) && !passes_walls(&mons[obj->corpsenm]) && !throws_rocks(&mons[obj->corpsenm])) { if (!quietly) +/*JP You("cannot fit the figurine on the boulder."); +*/ + You("Šâ‚ɐlŒ`‚ð‰Ÿ‚µž‚Þ‚±‚Æ‚Í‚Å‚«‚È‚¢D"); return FALSE; } return TRUE; @@ -2083,6 +2755,7 @@ struct obj **optr; /* Passing FALSE arg here will result in messages displayed */ if (!figurine_location_checks(obj, &cc, FALSE)) return; +#if 0 /*JP*/ You("%s and it transforms.", (u.dx || u.dy) ? "set the figurine beside you" : (Is_airlevel(&u.uz) || Is_waterlevel(&u.uz) @@ -2090,6 +2763,15 @@ struct obj **optr; ? "release the figurine" : (u.dz < 0 ? "toss the figurine into the air" : "set the figurine on the ground")); +#else + You("%sD‚·‚é‚Æ‚»‚ê‚Í•ÏŒ`‚µ‚½D", + (u.dx || u.dy) ? "‚»‚΂ɐlŒ`‚ð’u‚¢‚½" + : (Is_airlevel(&u.uz) || Is_waterlevel(&u.uz) + || is_pool(cc.x, cc.y)) + ? "lŒ`‚ð•ú‚Á‚½" + : (u.dz < 0 ? "lŒ`‚ð‹ó’†‚É“Š‚°‚½" + : "lŒ`‚ð’n–Ê‚É’u‚¢‚½")); +#endif (void) make_familiar(obj, cc.x, cc.y, FALSE); (void) stop_timer(FIG_TRANSFORM, obj_to_any(obj)); useup(obj); @@ -2105,8 +2787,13 @@ struct obj *obj; struct obj *otmp; if (Glib) { +#if 0 /*JP*/ pline("%s from your %s.", Tobjnam(obj, "slip"), makeplural(body_part(FINGER))); +#else + pline("%s‚Í‚ ‚È‚½‚Ì%s‚©‚犊‚è—Ž‚¿‚½D", xname(obj), + body_part(FINGER)); +#endif dropx(obj); return; } @@ -2115,8 +2802,13 @@ struct obj *obj; if ((obj->cursed || Fumbling) && !rn2(2)) { consume_obj_charge(obj, TRUE); +#if 0 /*JP*/ pline("%s from your %s.", Tobjnam(obj, "slip"), makeplural(body_part(FINGER))); +#else + pline("%s‚Í‚ ‚È‚½‚Ì%s‚©‚犊‚è—Ž‚¿‚½D", xname(obj), + body_part(FINGER)); +#endif dropx(obj); return; } @@ -2128,22 +2820,37 @@ struct obj *obj; consume_obj_charge(obj, TRUE); if (otmp != &zeroobj) { +/*JP You("cover %s with a thick layer of grease.", yname(otmp)); +*/ + You("%s‚ÉŽ‰‚ð’O”O‚É“h‚Á‚½D", yname(otmp)); otmp->greased = 1; if (obj->cursed && !nohands(youmonst.data)) { incr_itimeout(&Glib, rnd(15)); +/*JP pline("Some of the grease gets all over your %s.", +*/ + pline("Ž‰‚ª­‚µ%s‚ɂ‚¢‚½D", makeplural(body_part(HAND))); } } else { incr_itimeout(&Glib, rnd(15)); +/*JP You("coat your %s with grease.", makeplural(body_part(FINGER))); +*/ + You("%s‚ÉŽ‰‚ð“h‚Á‚½D", makeplural(body_part(FINGER))); } } else { if (obj->known) +/*JP pline("%s empty.", Tobjnam(obj, "are")); +*/ + pline("%s‚Í‹ó‚Á‚Û‚¾D", xname(obj)); else +/*JP pline("%s to be empty.", Tobjnam(obj, "seem")); +*/ + pline("%s‚Í‹ó‚Á‚ۂ̂悤‚¾D", xname(obj)); } update_inventory(); } @@ -2171,7 +2878,10 @@ struct obj *tstone; boolean do_scratch; const char *streak_color, *choices; char stonebuf[QBUFSZ]; +/*JP static const char scritch[] = "\"scritch, scritch\""; +*/ + static const char scritch[] = "uƒSƒVCƒSƒVv"; static const char allowall[3] = { COIN_CLASS, ALL_CLASSES, 0 }; static const char coins_gems[3] = { COIN_CLASS, GEM_CLASS, 0 }; @@ -2184,12 +2894,18 @@ struct obj *tstone; && objects[TOUCHSTONE].oc_name_known) ? coins_gems : allowall; +/*JP Sprintf(stonebuf, "rub on the stone%s", plur(tstone->quan)); +*/ + Sprintf(stonebuf, "rub on the stone"); if ((obj = getobj(choices, stonebuf)) == 0) return; if (obj == tstone && obj->quan == 1L) { +/*JP You_cant("rub %s on itself.", the(xname(obj))); +*/ + You("%s‚ð‚»‚êŽ©‘Ì‚Å‚±‚·‚邱‚Æ‚Í‚Å‚«‚È‚¢D", the(xname(obj))); return; } @@ -2197,12 +2913,23 @@ struct obj *tstone; && obj->oclass == GEM_CLASS && !is_graystone(obj) && !obj_resists(obj, 80, 100)) { if (Blind) +/*JP pline("You feel something shatter."); +*/ + You("‰½‚©‚ª•²X‚É‚È‚é‚Ì‚ðŠ´‚¶‚½D"); else if (Hallucination) +/*JP pline("Oh, wow, look at the pretty shards."); +*/ + pline("ƒ[ƒHI‚È‚ñ‚Ä‚«‚ê‚¢‚È”j•Ð‚È‚ñ‚¾D"); else +#if 0 /*JP*/ pline("A sharp crack shatters %s%s.", (obj->quan > 1L) ? "one of " : "", the(xname(obj))); +#else + pline("‹­‚­‚±‚·‚è‚·‚¬‚Ä%s%s‚Í•²X‚É‚È‚Á‚Ä‚µ‚Ü‚Á‚½D", + the(xname(obj)), (obj->quan > 1) ? "‚̂ЂƂÂ" : ""); +#endif useup(obj); return; } @@ -2211,7 +2938,11 @@ struct obj *tstone; pline(scritch); return; } else if (Hallucination) { +#if 0 /*JP*/ pline("Oh wow, man: Fractals!"); +#else + pline("ƒ[ƒHIƒtƒ‰ƒNƒ^ƒ‹–Í—l‚¾I"); +#endif return; } @@ -2244,27 +2975,55 @@ struct obj *tstone; default: switch (objects[obj->otyp].oc_material) { case CLOTH: +#if 0 /*JP*/ pline("%s a little more polished now.", Tobjnam(tstone, "look")); +#else + pline("%s‚Í‚³‚ç‚ɂ‚₪o‚½‚悤‚ÉŒ©‚¦‚éD", xname(tstone)); +#endif return; case LIQUID: if (!obj->known) /* note: not "whetstone" */ +#if 0 /*JP*/ You("must think this is a wetstone, do you?"); +#else + You("‚±‚ê‚Í“uÎ‚¾‚ÆŽv‚Á‚½H"); +#endif else +#if 0 /*JP*/ pline("%s a little wetter now.", Tobjnam(tstone, "are")); +#else + pline("%s‚͏­‚µ‚ʂꂽD", xname(tstone)); +#endif return; case WAX: +#if 0 /*JP*/ streak_color = "waxy"; +#else + streak_color = "Ž‰‚Á‚Û‚¢"; +#endif break; /* okay even if not touchstone */ case WOOD: +#if 0 /*JP*/ streak_color = "wooden"; +#else + streak_color = "‚¨‚ª‚­‚¸‚̂悤‚È"; +#endif break; /* okay even if not touchstone */ case GOLD: do_scratch = TRUE; /* scratching and streaks */ +#if 0 /*JP*/ streak_color = "golden"; +#else + streak_color = "‹àF‚Ì"; +#endif break; case SILVER: do_scratch = TRUE; /* scratching and streaks */ +#if 0 /*JP*/ streak_color = "silvery"; +#else + streak_color = "‹âF‚Ì"; +#endif break; default: /* Objects passing the is_flimsy() test will not @@ -2279,13 +3038,23 @@ struct obj *tstone; break; /* default oclass */ } +#if 0 /*JP*//* not used */ Sprintf(stonebuf, "stone%s", plur(tstone->quan)); +#endif if (do_scratch) +#if 0 /*JP*/ You("make %s%sscratch marks on the %s.", streak_color ? streak_color : (const char *) "", streak_color ? " " : "", stonebuf); +#else + You("%s‚±‚·‚èÕ‚ðÎ‚ɂ‚¯‚½D", + streak_color ? streak_color : (const char *)""); +#endif else if (streak_color) +/*JP You_see("%s streaks on the %s.", streak_color, stonebuf); +*/ + pline("Î‚É%s‹Ø‚ª‚‚¢‚½D", streak_color); else pline(scritch); return; @@ -2300,43 +3069,90 @@ struct obj *otmp; const char *what = (char *) 0; char buf[BUFSZ]; int levtyp = levl[u.ux][u.uy].typ; +#if 0 /*JP*/ const char *occutext = "setting the trap"; +#else + const char *occutext = "㩂ðŽdŠ|‚¯‚Ä‚¢‚é"; +#endif if (nohands(youmonst.data)) +/*JP what = "without hands"; +*/ + what = "Žè‚ª‚È‚¢‚Ì‚Å"; else if (Stunned) +/*JP what = "while stunned"; +*/ + what = "‚­‚ç‚­‚炵‚Ä‚¢‚é‚Ì‚Å"; else if (u.uswallow) what = +/*JP is_animal(u.ustuck->data) ? "while swallowed" : "while engulfed"; +*/ + is_animal(u.ustuck->data) ? "ˆù‚ݍž‚Ü‚ê‚Ä‚¢‚éŠÔ‚Í" : "Šª‚«ž‚Ü‚ê‚Ä‚¢‚éŠÔ‚Í"; else if (Underwater) +/*JP what = "underwater"; +*/ + what = "…–ʉº‚Å‚Í"; else if (Levitation) +/*JP what = "while levitating"; +*/ + what = "•‚‚¢‚Ä‚¢‚éŠÔ‚Í"; else if (is_pool(u.ux, u.uy)) +/*JP what = "in water"; +*/ + what = "…’†‚Å‚Í"; else if (is_lava(u.ux, u.uy)) +/*JP what = "in lava"; +*/ + what = "—nŠâ‚Ì’†‚Å‚Í"; else if (On_stairs(u.ux, u.uy)) +#if 0 /*JP*/ what = (u.ux == xdnladder || u.ux == xupladder) ? "on the ladder" : "on the stairs"; +#else + what = (u.ux == xdnladder || u.ux == xupladder) ? "‚Í‚µ‚²‚̏ã‚Å‚Í" + : "ŠK’i‚̏ã‚Å‚Í"; +#endif else if (IS_FURNITURE(levtyp) || IS_ROCK(levtyp) || closed_door(u.ux, u.uy) || t_at(u.ux, u.uy)) +/*JP what = "here"; +*/ + what = "‚±‚±‚Å‚Í"; else if (Is_airlevel(&u.uz) || Is_waterlevel(&u.uz)) +#if 0 /*JP*/ what = (levtyp == AIR) ? "in midair" : (levtyp == CLOUD) ? "in a cloud" : "in this place"; /* Air/Water Plane catch-all */ +#else + what = (levtyp == AIR) + ? "‹ó’†‚Å‚Í" + : (levtyp == CLOUD) + ? "‰_‚Ì’†‚Å‚Í" + : "‚±‚±‚Å‚Í"; /* Air/Water Plane catch-all */ +#endif if (what) { +/*JP You_cant("set a trap %s!", what); +*/ + pline("%s㩂ðŽdŠ|‚¯‚ç‚ê‚È‚¢I",what); reset_trapset(); return; } ttyp = (otmp->otyp == LAND_MINE) ? LANDMINE : BEAR_TRAP; if (otmp == trapinfo.tobj && u.ux == trapinfo.tx && u.uy == trapinfo.ty) { +/*JP You("resume setting %s%s.", shk_your(buf, otmp), +*/ + You("%s‚ðŽdŠ|‚¯‚é‚Ì‚ðÄŠJ‚µ‚½D", defsyms[trap_to_defsym(what_trap(ttyp))].explanation); set_occupation(set_trap, occutext, 0); return; @@ -2360,8 +3176,14 @@ struct obj *otmp; chance = (rnl(10) > 3); else chance = (rnl(10) > 5); +/*JP You("aren't very skilled at reaching from %s.", mon_nam(u.usteed)); +*/ + pline("%s‚̏ォ‚ç‚Å‚Í‚¤‚Ü‚­ŽdŠ|‚¯‚ç‚ê‚È‚¢‚©‚à‚µ‚ê‚È‚¢D", mon_nam(u.usteed)); +/*JP Sprintf(buf, "Continue your attempt to set %s?", +*/ + Sprintf(buf, "%s‚ÌŽdŠ|‚¯‚𑱂¯‚éH", the(defsyms[trap_to_defsym(what_trap(ttyp))].explanation)); if (yn(buf) == 'y') { if (chance) { @@ -2372,7 +3194,10 @@ struct obj *otmp; break; case BEAR_TRAP: /* drop it without arming it */ reset_trapset(); +/*JP You("drop %s!", +*/ + You("%s‚ð—Ž‚Æ‚µ‚½I", the(defsyms[trap_to_defsym(what_trap(ttyp))] .explanation)); dropx(otmp); @@ -2384,7 +3209,10 @@ struct obj *otmp; return; } } +/*JP You("begin setting %s%s.", shk_your(buf, otmp), +*/ + You("%s%s‚ðŽdŠ|‚¯‚Í‚¶‚ß‚½D", shk_your(buf, otmp), defsyms[trap_to_defsym(what_trap(ttyp))].explanation); set_occupation(set_trap, occutext, 0); return; @@ -2417,7 +3245,10 @@ set_trap() add_damage(u.ux, u.uy, 0L); /* schedule removal */ } if (!trapinfo.force_bungle) +/*JP You("finish arming %s.", +*/ + You("%s‚ðŽdŠ|‚¯I‚¦‚½D", the(defsyms[trap_to_defsym(what_trap(ttyp))].explanation)); if (((otmp->cursed || Fumbling) && (rnl(10) > 5)) || trapinfo.force_bungle) @@ -2425,7 +3256,10 @@ set_trap() (unsigned) (trapinfo.force_bungle ? FORCEBUNGLE : 0)); } else { /* this shouldn't happen */ +/*JP Your("trap setting attempt fails."); +*/ + You("㩂ðŽdŠ|‚¯‚é‚Ì‚ÉŽ¸”s‚µ‚½D"); } useup(otmp); reset_trapset(); @@ -2440,8 +3274,14 @@ struct obj *obj; struct monst *mtmp; struct obj *otmp; int rx, ry, proficient, res = 0; +/*JP const char *msg_slipsfree = "The bullwhip slips free."; +*/ + const char *msg_slipsfree = "•Ú‚Í‚Ù‚Ç‚¯‚½D"; +/*JP const char *msg_snap = "Snap!"; +*/ + const char *msg_snap = "ƒsƒVƒbI"; if (obj != uwep) { if (!wield_tool(obj, "lash")) @@ -2484,20 +3324,32 @@ struct obj *obj; proficient = 0; if (u.uswallow && attack(u.ustuck)) { +/*JP There("is not enough room to flick your bullwhip."); +*/ + pline("•Ú‚ð‘ł‚قǍL‚­‚È‚¢D"); } else if (Underwater) { +/*JP There("is too much resistance to flick your bullwhip."); +*/ + pline("…‚Ì’ïR‚ª‚ ‚è‚·‚¬‚Ä•Ú‚ð‘ł‚±‚Æ‚ª‚Å‚«‚È‚¢D"); } else if (u.dz < 0) { +/*JP You("flick a bug off of the %s.", ceiling(u.ux, u.uy)); +*/ + You("%s‚Ì’Ž‚ð‘Å‚¿—Ž‚µ‚½D",ceiling(u.ux,u.uy)); } else if ((!u.dx && !u.dy) || (u.dz > 0)) { int dam; /* Sometimes you hit your steed by mistake */ if (u.usteed && !rn2(proficient + 2)) { +/*JP You("whip %s!", mon_nam(u.usteed)); +*/ + You("%s‚ð•Ú‘Å‚Á‚½I", mon_nam(u.usteed)); kick_steed(); return 1; } @@ -2505,12 +3357,20 @@ struct obj *obj; /* Have a shot at snaring something on the floor */ otmp = level.objects[u.ux][u.uy]; if (otmp && otmp->otyp == CORPSE && otmp->corpsenm == PM_HORSE) { +/*JP pline("Why beat a dead horse?"); +*/ + pline("‚Ç‚¤‚µ‚ÄŽ€‚ñ‚¾”n‚ð•Ú‘ł‚悤‚È‚±‚Æ‚ð‚·‚é‚́H"); return 1; } if (otmp && proficient) { +#if 0 /*JP*/ You("wrap your bullwhip around %s on the %s.", an(singular(otmp, xname)), surface(u.ux, u.uy)); +#else + You("•Ú‚ð%s‚̏ã‚Ì%s‚É‚©‚ç‚Ü‚¹‚½D", + surface(u.ux, u.uy), an(singular(otmp, xname))); +#endif if (rnl(6) || pickup_object(otmp, 1L, TRUE) < 1) pline1(msg_slipsfree); return 1; @@ -2519,14 +3379,25 @@ struct obj *obj; dam = rnd(2) + dbon() + obj->spe; if (dam <= 0) dam = 1; +/*JP You("hit your %s with your bullwhip.", body_part(FOOT)); +*/ + You("Ž©•ª‚Ì%s‚ðŽ©•ª‚Å‘Å‚¿‚‚¯‚½D", body_part(FOOT)); +#if 0 /*JP*/ Sprintf(buf, "killed %sself with %s bullwhip", uhim(), uhis()); losehp(Maybe_Half_Phys(dam), buf, NO_KILLER_PREFIX); +#else + Strcpy(buf, "Ž©•ªŽ©g‚ð•Ú‘Å‚Á‚Ä"); + losehp(dam, buf, KILLED_BY); +#endif context.botl = 1; return 1; } else if ((Fumbling || Glib) && !rn2(5)) { +/*JP pline_The("bullwhip slips out of your %s.", body_part(HAND)); +*/ + pline("•Ú‚ª%s‚©‚ç‚·‚ׂ藎‚¿‚½D", body_part(HAND)); dropx(obj); } else if (u.utrap && u.utraptype == TT_PIT) { @@ -2562,17 +3433,26 @@ struct obj *obj; if (IS_FURNITURE(levl[rx][ry].typ)) wrapped_what = something; else if (sobj_at(BOULDER, rx, ry)) +/*JP wrapped_what = "a boulder"; +*/ + wrapped_what = "Šâ"; } if (wrapped_what) { coord cc; cc.x = rx; cc.y = ry; +/*JP You("wrap your bullwhip around %s.", wrapped_what); +*/ + You("•Ú‚ð%s‚É‚©‚ç‚Ü‚¹‚½D", wrapped_what); if (proficient && rn2(proficient + 2)) { if (!mtmp || enexto(&cc, rx, ry, youmonst.data)) { +/*JP You("yank yourself out of the pit!"); +*/ + You("‚®‚¢‚ƈø‚Á‚Ï‚Á‚ÄŒŠ‚©‚甲‚¯o‚µ‚½I"); teleds(cc.x, cc.y, TRUE); u.utrap = 0; vision_full_recalc = 1; @@ -2587,7 +3467,10 @@ struct obj *obj; } else if (mtmp) { if (!canspotmon(mtmp) && !glyph_is_invisible(levl[rx][ry].glyph)) { +/*JP pline("A monster is there that you couldn't see."); +*/ + pline("Œ©‚¦‚È‚¢‰ö•¨‚ª‚¢‚éD"); map_invisible(rx, ry); } otmp = MON_WEP(mtmp); /* can be null */ @@ -2604,11 +3487,21 @@ struct obj *obj; } else mon_hand = 0; /* lint suppression */ +/*JP You("wrap your bullwhip around %s.", yname(otmp)); +*/ + You("•Ú‚ð%s‚É‚©‚ç‚Ü‚¹‚½D", yname(otmp)); if (gotit && mwelded(otmp)) { +#if 0 /*JP*/ pline("%s welded to %s %s%c", (otmp->quan == 1L) ? "It is" : "They are", mhis(mtmp), mon_hand, !otmp->bknown ? '!' : '.'); +#else + pline("%s‚Í%s‚Ì%s‚É‚­‚Á‚‚¢‚Ä‚µ‚Ü‚Á‚Ä‚¢‚é%s", + onambuf, + mon_nam(mtmp), mon_hand, + !otmp->bknown ? "I" : "D"); +#endif otmp->bknown = 1; gotit = FALSE; /* can't pull it free */ } @@ -2620,7 +3513,10 @@ struct obj *obj; switch (rn2(proficient + 1)) { case 2: /* to floor near you */ +/*JP You("yank %s to the %s!", yname(otmp), +*/ + You("%s‚ð%s‚Ɉø‚«—Ž‚µ‚½I", yname(otmp), surface(u.ux, u.uy)); place_object(otmp, u.ux, u.uy); stackobj(otmp); @@ -2638,7 +3534,10 @@ struct obj *obj; dmgval(otmp, &youmonst), otmp, (char *)0); if (hitu) { +/*JP pline_The("%s hits you as you try to snatch it!", +*/ + pline_The("%s‚ð’D‚¨‚¤‚Æ‚µ‚½‚ç‚ ‚È‚½‚É“–‚½‚Á‚½I", the(onambuf)); } place_object(otmp, u.ux, u.uy); @@ -2647,7 +3546,10 @@ struct obj *obj; } #endif /* 0 */ /* right into your inventory */ +/*JP You("snatch %s!", yname(otmp)); +*/ + You("%s‚ð’D‚Á‚½I", yname(otmp)); if (otmp->otyp == CORPSE && touch_petrifies(&mons[otmp->corpsenm]) && !uarmg && !Stone_resistance @@ -2655,17 +3557,30 @@ struct obj *obj; && polymon(PM_STONE_GOLEM))) { char kbuf[BUFSZ]; +#if 0 /*JP*/ Sprintf(kbuf, "%s corpse", an(mons[otmp->corpsenm].mname)); pline("Snatching %s is a fatal mistake.", kbuf); +#else + pline("%s‚ÌŽ€‘Ì‚ð’D‚Á‚½‚Ì‚Í’v–½“I‚ȊԈႢ‚¾D", + mons[otmp->corpsenm].mname); + Sprintf(kbuf, "%s‚ÌŽ€‘̂ɐG‚ê‚Ä", + mons[otmp->corpsenm].mname); +#endif instapetrify(kbuf); } otmp = hold_another_object( +/*JP otmp, "You drop %s!", doname(otmp), (const char *) 0); +*/ + otmp, "%s‚ð—Ž‚µ‚½I", doname(otmp), (const char *) 0); break; default: /* to floor beneath mon */ +/*JP You("yank %s from %s %s!", the(onambuf), +*/ + You("%s‚ð%s‚Ì%s‚©‚ç‚ЂÁ‚Ï‚Á‚½I", the(xname(otmp)), s_suffix(mon_nam(mtmp)), mon_hand); obj_no_longer_held(otmp); place_object(otmp, mtmp->mx, mtmp->my); @@ -2681,7 +3596,10 @@ struct obj *obj; && !sensemon(mtmp)) stumble_onto_mimic(mtmp); else +/*JP You("flick your bullwhip towards %s.", mon_nam(mtmp)); +*/ + You("%s‚ÉŒü‚Á‚Ä•Ú‚ð‘Å‚Á‚½D", mon_nam(mtmp)); if (proficient) { if (attack(mtmp)) return 1; @@ -2692,7 +3610,10 @@ struct obj *obj; } else if (Is_airlevel(&u.uz) || Is_waterlevel(&u.uz)) { /* it must be air -- water checked above */ +/*JP You("snap your whip through thin air."); +*/ + You("‰½‚à‚È‚¢‚Æ‚±‚ë‚Å•Ú‚ð‘Å‚Á‚½D"); } else { pline1(msg_snap); @@ -2701,10 +3622,22 @@ struct obj *obj; } static const char +/*JP not_enough_room[] = "There's not enough room here to use that.", +*/ + not_enough_room[] = "‚»‚ê‚ðŽg‚¤‚¾‚¯‚̍L‚³‚ª‚È‚¢D", +/*JP where_to_hit[] = "Where do you want to hit?", +*/ + where_to_hit[] = "‚Ç‚ê‚ð‘_‚¤H", +/*JP cant_see_spot[] = "won't hit anything if you can't see that spot.", +*/ + cant_see_spot[] = "êŠ‚ªŒ©‚¦‚È‚¯‚ê‚Α_‚¦‚È‚¢D", +/*JP cant_reach[] = "can't reach that spot from here."; +*/ + cant_reach[] = "‚±‚±‚©‚ç‚»‚±‚Ö‚Í“Í‚©‚È‚¢D"; /* find pos of monster in range, if only one monster */ boolean @@ -2820,15 +3753,24 @@ struct obj *obj; cc.y = hitm->my; } getpos_sethilite(display_polearm_positions); +/*JP if (getpos(&cc, TRUE, "the spot to hit") < 0) +*/ + if (getpos(&cc, TRUE, "‘_‚¤êŠ") < 0) return res; /* ESC; uses turn iff polearm became wielded */ glyph = glyph_at(cc.x, cc.y); if (distu(cc.x, cc.y) > max_range) { +/*JP pline("Too far!"); +*/ + pline("‰“‚·‚¬‚éI"); return res; } else if (distu(cc.x, cc.y) < min_range) { +/*JP pline("Too close!"); +*/ + pline("‹ß‚·‚¬‚éI"); return res; } else if (!cansee(cc.x, cc.y) && !glyph_is_monster(glyph) && !glyph_is_invisible(glyph) && !glyph_is_statue(glyph)) { @@ -2864,7 +3806,10 @@ struct obj *obj; Note: we only do this when a statue is displayed here, because the player is probably attempting to attack it; other statues obscured by anything are just ignored. */ +/*JP pline("Thump! Your blow bounces harmlessly off the statue."); +*/ + pline("ƒSƒcƒ“I’¤‘œ‚͏‚‚©‚È‚©‚Á‚½D"); wake_nearto(bhitpos.x, bhitpos.y, 25); } } else { @@ -2874,7 +3819,10 @@ struct obj *obj; unmap_object(bhitpos.x, bhitpos.y); newsym(bhitpos.x, bhitpos.y); } +/*JP You("miss; there is no one there to hit."); +*/ + You("ŠO‚ꂽD‚»‚±‚ɂ͉½‚à‚È‚¢D"); } u_wipe_engr(2); /* same as for melee or throwing */ return 1; @@ -2893,20 +3841,37 @@ struct obj *obj; obj = splitobj(obj, 1L); } if (Hallucination) +/*JP You("give yourself a facial."); +*/ + You("ƒNƒŠ[ƒ€ƒpƒbƒN‚ð‚µ‚½D"); else +#if 0 /*JP*/ pline("You immerse your %s in %s%s.", body_part(FACE), several ? "one of " : "", several ? makeplural(the(xname(obj))) : the(xname(obj))); +#else + pline("%s%s‚É%s‚𒾂߂½D", + xname(obj), + several ? "‚̂ЂƂÂ" : "", body_part(FACE)); +#endif if (can_blnd((struct monst *) 0, &youmonst, AT_WEAP, obj)) { int blindinc = rnd(25); u.ucreamed += blindinc; make_blinded(Blinded + (long) blindinc, FALSE); if (!Blind || (Blind && wasblind)) +#if 0 /*JP*/ pline("There's %ssticky goop all over your %s.", wascreamed ? "more " : "", body_part(FACE)); +#else + pline("‚â‚Á‚©‚¢‚Ȃ˂΂˂΂ª%s‘S‘Ì‚É%s‚‚¢‚½D", + body_part(FACE), wascreamed ? "‚³‚ç‚É" : ""); +#endif else /* Blind && !wasblind */ +/*JP You_cant("see through all the sticky goop on your %s.", +*/ + pline("‚â‚Á‚©‚¢‚Ȃ˂΂˂΂ª%s‘S‘̂ɂ‚¢‚ĉ½‚àŒ©‚¦‚È‚­‚È‚Á‚½D", body_part(FACE)); } @@ -2945,7 +3910,10 @@ struct obj *obj; pline(where_to_hit); cc.x = u.ux; cc.y = u.uy; +/*JP if (getpos(&cc, TRUE, "the spot to hit") < 0) +*/ + if (getpos(&cc, TRUE, "‘_‚¤êŠ") < 0) return res; /* ESC; uses turn iff grapnel became wielded */ /* Calculate range; unlike use_pole(), there's no minimum for range */ @@ -2957,7 +3925,10 @@ struct obj *obj; else max_range = 8; if (distu(cc.x, cc.y) > max_range) { +/*JP pline("Too far!"); +*/ + pline("‰“‚·‚¬‚éI"); return res; } else if (!cansee(cc.x, cc.y)) { You(cant_see_spot); @@ -2979,17 +3950,31 @@ struct obj *obj; any.a_int = 1; /* use index+1 (cant use 0) as identifier */ start_menu(tmpwin); any.a_int++; +/*JP Sprintf(buf, "an object on the %s", surface(cc.x, cc.y)); +*/ + Sprintf(buf, "%s‚É‚ ‚镨‘Ì", surface(cc.x, cc.y)); add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, MENU_UNSELECTED); any.a_int++; +#if 0 /*JP*/ add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "a monster", MENU_UNSELECTED); +#else + add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "‰ö•¨", + MENU_UNSELECTED); +#endif any.a_int++; +/*JP Sprintf(buf, "the %s", surface(cc.x, cc.y)); +*/ + Sprintf(buf, "%s", surface(cc.x, cc.y)); add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, MENU_UNSELECTED); +/*JP end_menu(tmpwin, "Aim for what?"); +*/ + end_menu(tmpwin, "‰½‚ð‘_‚¤H"); tohit = rn2(4); if (select_menu(tmpwin, PICK_ONE, &selected) > 0 && rn2(P_SKILL(typ) > P_SKILLED ? 20 : 2)) @@ -3010,7 +3995,10 @@ struct obj *obj; break; case 1: /* Object */ if ((otmp = level.objects[cc.x][cc.y]) != 0) { +/*JP You("snag an object from the %s!", surface(cc.x, cc.y)); +*/ + You("%s‚Ì‚à‚Ì‚ðˆø‚ÁŠ|‚¯‚½I", surface(cc.x, cc.y)); (void) pickup_object(otmp, 1L, FALSE); /* If pickup fails, leave it alone */ newsym(cc.x, cc.y); @@ -3029,7 +4017,10 @@ struct obj *obj; (void) attack_checks(mtmp, uwep); flags.confirm = save_confirm; check_caitiff(mtmp); /* despite fact there's no damage */ +/*JP You("pull in %s!", mon_nam(mtmp)); +*/ + You("%s‚ðˆø‚Á’£‚Á‚½I", mon_nam(mtmp)); mtmp->mundetected = 0; rloc_to(mtmp, cc.x, cc.y); return 1; @@ -3045,17 +4036,29 @@ struct obj *obj; /* FALL THROUGH */ case 3: /* Surface */ if (IS_AIR(levl[cc.x][cc.y].typ) || is_pool(cc.x, cc.y)) +/*JP pline_The("hook slices through the %s.", surface(cc.x, cc.y)); +*/ + pline("ƒtƒbƒN‚Í%s‚ð‚³‚Á‚Ɛ؂Á‚½D", surface(cc.x, cc.y)); else { +/*JP You("are yanked toward the %s!", surface(cc.x, cc.y)); +*/ + You("%s‚Öˆø‚Á‚Ï‚ç‚ꂽI", surface(cc.x, cc.y)); hurtle(sgn(cc.x - u.ux), sgn(cc.y - u.uy), 1, FALSE); spoteffects(TRUE); } return 1; default: /* Yourself (oops!) */ if (P_SKILL(typ) <= P_BASIC) { +/*JP You("hook yourself!"); +*/ + You("Ž©•ªŽ©g‚ðˆø‚ÁŠ|‚¯‚½I"); +/*JP losehp(Maybe_Half_Phys(rn1(10, 10)), "a grappling hook", +*/ + losehp(Maybe_Half_Phys(rn1(10, 10)), "Ž©•ªŽ©g‚ðˆø‚ÁŠ|‚¯‚Ä", KILLED_BY); return 1; } @@ -3072,7 +4075,10 @@ STATIC_OVL int do_break_wand(obj) struct obj *obj; { +/*JP static const char nothing_else_happens[] = "But nothing else happens..."; +*/ + static const char nothing_else_happens[] = "‚µ‚©‚µC‰½‚à‹N‚«‚È‚©‚Á‚½DDD"; register int i, x, y; register struct monst *mon; int dmg, damage; @@ -3081,22 +4087,41 @@ struct obj *obj; boolean fillmsg = FALSE; int expltype = EXPL_MAGICAL; char confirm[QBUFSZ], buf[BUFSZ]; +/*JP boolean is_fragile = (!strcmp(OBJ_DESCR(objects[obj->otyp]), "balsa")); +*/ + boolean is_fragile = (!strcmp(OBJ_DESCR(objects[obj->otyp]), "ƒoƒ‹ƒT")); +#if 0 /*JP*/ if (!paranoid_query(ParanoidBreakwand, safe_qbuf(confirm, "Are you really sure you want to break ", "?", obj, yname, ysimple_name, "the wand"))) +#else + if (!paranoid_query(ParanoidBreakwand, + safe_qbuf(confirm, + "–{“–‚É", "‚ð‰ó‚·‚́H", + obj, yname, ysimple_name, "ñ"))) +#endif return 0; if (nohands(youmonst.data)) { +/*JP You_cant("break %s without hands!", yname(obj)); +*/ + You("Žè‚ª–³‚¢‚Ì‚Å%s‚ð‰ó‚¹‚È‚¢I", yname(obj)); return 0; } else if (ACURR(A_STR) < (is_fragile ? 5 : 10)) { +/*JP You("don't have the strength to break %s!", yname(obj)); +*/ + You("%s‚ð‰ó‚·‚¾‚¯‚Ì—Í‚ª‚È‚¢I", yname(obj)); return 0; } +/*JP pline("Raising %s high above your %s, you break it in two!", yname(obj), +*/ + pline("%s‚ð%s‚̏ã‚ɍ‚‚­Œf‚°C“ñ‚‚ɂւµÜ‚Á‚½I", yname(obj), body_part(HEAD)); /* [ALI] Do this first so that wand is removed from bill. Otherwise, @@ -3157,7 +4182,10 @@ struct obj *obj; goto discard_broken_wand; case WAN_STRIKING: /* we want this before the explosion instead of at the very end */ +/*JP pline("A wall of force smashes down around you!"); +*/ + pline("‚ ‚È‚½‚Í–‚—͂̕ǂɂ‚‚܂ꂽI"); dmg = d(1 + obj->spe, 6); /* normally 2d12 */ /*FALLTHRU*/ case WAN_CANCELLATION: @@ -3210,7 +4238,10 @@ struct obj *obj; liquid_flow(x, y, typ, t_at(x, y), fillmsg ? (char *) 0 +/*JP : "Some holes are quickly filled with %s!"); +*/ + : "ŒŠ‚Í‚·‚®‚É%s‚Å–„‚Ü‚Á‚½I"); fillmsg = TRUE; } else digactualhole(x, y, BY_OBJECT, (rn2(obj->spe) < 3 @@ -3263,8 +4294,13 @@ struct obj *obj; } damage = zapyourself(obj, FALSE); if (damage) { +#if 0 /*JP:T*/ Sprintf(buf, "killed %sself by breaking a wand", uhim()); losehp(Maybe_Half_Phys(damage), buf, NO_KILLER_PREFIX); +#else + Strcpy(buf, "Ž©•ªŽ©g‚ŏñ‚ð‰ó‚µ‚ă_ƒ[ƒW‚ðŽó‚¯"); + losehp(Maybe_Half_Phys(damage), buf, KILLED_BY); +#endif } if (context.botl) bot(); /* blindness */ @@ -3277,7 +4313,10 @@ struct obj *obj; /* Note: if player fell thru, this call is a no-op. Damage is handled in digactualhole in that case */ if (shop_damage) +/*JP pay_for_damage("dig into", FALSE); +*/ + pay_for_damage("ŒŠ‚ð‚ ‚¯‚é", FALSE); if (obj->otyp == WAN_LIGHT) litroom(TRUE, obj); /* only needs to be done once */ @@ -3377,11 +4416,19 @@ doapply() } else if (!ublindf) { Blindf_on(obj); } else { +#if 0 /*JP*/ You("are already %s.", ublindf->otyp == TOWEL ? "covered by a towel" : ublindf->otyp == BLINDFOLD ? "wearing a blindfold" : "wearing lenses"); +#else + You("‚à‚¤%s‚Ä‚¢‚éD", ublindf->otyp == TOWEL + ? "ƒ^ƒIƒ‹‚ðŠª‚¢" + : ublindf->otyp == BLINDFOLD + ? "–Ú‰B‚µ‚ð‚‚¯" + : "ƒŒƒ“ƒY‚ð‚‚¯"); +#endif } break; case CREAM_PIE: @@ -3440,7 +4487,10 @@ doapply() /* sometimes the blessing will be worn off */ if (!rn2(49)) { if (!Blind) { +/*JP pline("%s %s.", Yobjnam2(obj, "glow"), hcolor("brown")); +*/ + pline("%s‚Í%s‹P‚¢‚½D", xname(obj), jconj_adj(hcolor("’ƒF‚Ì"))); obj->bknown = 1; } unbless(obj); @@ -3488,15 +4538,27 @@ doapply() break; case TIN_OPENER: if (!carrying(TIN)) { +/*JP You("have no tin to open."); +*/ + You("ŠÊ‚ðŽ‚Á‚Ä‚¢‚È‚¢D"); goto xit; } +/*JP You("cannot open a tin without eating or discarding its contents."); +*/ + pline("’†g‚ðH‚ׂ邩CŽÌ‚Ä‚é‚©‚µ‚È‚¢‚ÆŠÊ‚ðŠJ‚¯‚ç‚ê‚È‚¢D"); if (flags.verbose) +/*JP pline("In order to eat, use the 'e' command."); +*/ + pline("H‚ׂé‚ɂ́C'e'ƒRƒ}ƒ“ƒh‚ðŽg‚¦‚΂悢D"); if (obj != uwep) pline( +/*JP "Opening the tin will be much easier if you wield the tin opener."); +*/ + "ŠÊØ‚è‚ð‘•”õ‚µ‚Ä‚¢‚ê‚΁C‚¸‚Á‚ÆŠÈ’P‚ÉŠJ‚¯‚邱‚Æ‚ª‚Å‚«‚éD"); goto xit; case FIGURINE: @@ -3539,7 +4601,10 @@ doapply() res = use_pick_axe(obj); break; } +/*JP pline("Sorry, I don't know how to use that."); +*/ + pline("‚»‚ê‚ð‚Ç‚¤‚â‚Á‚ÄŽg‚¤‚ñ‚¾‚¢H"); xit: nomul(0); return 0; diff --git a/src/artifact.c b/src/artifact.c index 23c7c49..eeec23f 100644 --- a/src/artifact.c +++ b/src/artifact.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" #include "artifact.h" #include "artilist.h" @@ -684,13 +689,19 @@ struct monst *mon; if (!yours) return 0; +/*JP You("are blasted by %s power!", s_suffix(the(xname(obj)))); +*/ + You("%s‚̗͂𗁂т½I", xname(obj)); touch_blasted = TRUE; dmg = d((Antimagic ? 2 : 4), (self_willed ? 10 : 4)); /* add half (maybe quarter) of the usual silver damage bonus */ if (objects[obj->otyp].oc_material == SILVER && Hate_silver) tmp = rnd(10), dmg += Maybe_Half_Phys(tmp); +/*JP Sprintf(buf, "touching %s", oart->name); +*/ + Sprintf(buf, "%s‚ɐG‚ê‚Ä", oart->name); losehp(dmg, buf, KILLED_BY); /* magic damage, not physical */ exercise(A_WIS, FALSE); } @@ -699,9 +710,15 @@ struct monst *mon; if (badclass && badalign && self_willed) { if (yours) { if (!carried(obj)) +/*JP pline("%s your grasp!", Tobjnam(obj, "evade")); +*/ + pline("%s‚͈¬‚낤‚Æ‚·‚é‚Æ‚·‚é‚è‚Æ”²‚¯‚½I", xname(obj)); else +/*JP pline("%s beyond your control!", Tobjnam(obj, "are")); +*/ + pline("%s‚͐§Œä‚Å‚«‚È‚¢I", xname(obj)); } return 0; } @@ -906,7 +923,10 @@ winid tmpwin; /* supplied by dodiscover() */ continue; /* for WIN_ERR, we just count */ if (i == 0) +/*JP putstr(tmpwin, iflags.menu_headings, "Artifacts"); +*/ + putstr(tmpwin, iflags.menu_headings, "¹Ší"); m = artidisco[i]; otyp = artilist[m].otyp; Sprintf(buf, " %s [%s %s]", artiname(m), @@ -938,8 +958,14 @@ winid tmpwin; /* supplied by dodiscover() */ */ #define MB_MAX_DIEROLL 8 /* rolls above this aren't magical */ static const char *const mb_verb[2][4] = { +#if 0 /*JP*/ { "probe", "stun", "scare", "cancel" }, { "prod", "amaze", "tickle", "purge" }, +#else + /* Mb_hit() ‚Å "%s‚½"‚ÌŒ`‚Å—˜—p */ + {"’²¸‚µ", "‚­‚ç‚­‚炳‚¹", "‹¯‚¦‚³‚¹", "ò‰»‚µ"}, + { "—ã‚Ü‚µ", "‹Á‚©‚¹", "‚­‚·‚®‚Á", "´‚ß" }, +#endif }; #define MB_INDEX_PROBE 0 #define MB_INDEX_STUN 1 @@ -1003,8 +1029,13 @@ char *hittee; /* target's name: "you" or mon_nam(mdef) */ verb = mb_verb[!!Hallucination][attack_indx]; if (youattack || youdefend || vis) { result = TRUE; +#if 0 /*JP*/ pline_The("magic-absorbing blade %s %s!", vtense((const char *) 0, verb), hittee); +#else + pline("–‚—Í‚ð‹z‚¢‚Æ‚én‚ª%s‚ð%s‚½I", + hittee, verb); +#endif /* assume probing has some sort of noticeable feedback even if it is being done by one monster to another */ if (attack_indx == MB_INDEX_PROBE && !canspotmon(mdef)) @@ -1027,7 +1058,10 @@ char *hittee; /* target's name: "you" or mon_nam(mdef) */ if (youmonst.data != old_uasmon) *dmgptr = 0; /* rehumanized, so no more damage */ if (u.uenmax > 0) { +/*JP You("lose magical energy!"); +*/ + You("–‚–@‚̃Gƒlƒ‹ƒM[‚ðŽ¸‚Á‚½I"); u.uenmax--; if (u.uen > 0) u.uen--; @@ -1037,7 +1071,10 @@ char *hittee; /* target's name: "you" or mon_nam(mdef) */ if (mdef->data == &mons[PM_CLAY_GOLEM]) mdef->mhp = 1; /* cancelled clay golems will die */ if (youattack && attacktype(mdef->data, AT_MAGC)) { +/*JP You("absorb magical energy!"); +*/ + You("–‚–@‚̃Gƒlƒ‹ƒM[‚ð‹z‚¢‚Æ‚Á‚½I"); u.uenmax++; u.uen++; context.botl = 1; @@ -1056,7 +1093,10 @@ char *hittee; /* target's name: "you" or mon_nam(mdef) */ nomovemsg = ""; if (magr && magr == u.ustuck && sticks(youmonst.data)) { u.ustuck = (struct monst *) 0; +/*JP You("release %s!", mon_nam(magr)); +*/ + You("%s‚ð‰ð•ú‚µ‚½I", mon_nam(magr)); } } } else { @@ -1075,7 +1115,10 @@ char *hittee; /* target's name: "you" or mon_nam(mdef) */ case MB_INDEX_PROBE: if (youattack && (mb->spe == 0 || !rn2(3 * abs(mb->spe)))) { +/*JP pline_The("%s is insightful.", verb); +*/ + pline("‘ŠŽè‚ð%s‚½D", verb); /* pre-damage status */ probe_monster(mdef); } @@ -1106,7 +1149,10 @@ char *hittee; /* target's name: "you" or mon_nam(mdef) */ if (youattack || youdefend || vis) { (void) upstart(hittee); /* capitalize */ if (resisted) { +/*JP pline("%s %s!", hittee, vtense(fakename, "resist")); +*/ + pline("%s‚Í–h‚¢‚¾I", hittee); shieldeff(youdefend ? u.ux : mdef->mx, youdefend ? u.uy : mdef->my); } @@ -1114,6 +1160,7 @@ char *hittee; /* target's name: "you" or mon_nam(mdef) */ char buf[BUFSZ]; buf[0] = '\0'; +#if 0 /*JP:T*/ if (do_stun) Strcat(buf, "stunned"); if (do_stun && do_confuse) @@ -1122,6 +1169,16 @@ char *hittee; /* target's name: "you" or mon_nam(mdef) */ Strcat(buf, "confused"); pline("%s %s %s%c", hittee, vtense(fakename, "are"), buf, (do_stun && do_confuse) ? '!' : '.'); +#else + if (do_stun && do_confuse) + Strcat(buf, "‚æ‚ë‚ß‚¢‚Ä"); + else if (do_stun) + Strcat(buf, "‚æ‚ë‚ß‚¢‚½"); + if (do_confuse) + Strcat(buf, "¬—‚µ‚½"); + pline("%s‚Í%s%s", hittee, + buf, (do_stun && do_confuse) ? "I" : "D"); +#endif } } @@ -1150,7 +1207,10 @@ int dieroll; /* needed for Magicbane and vorpal blades */ || (youattack && u.uswallow && mdef == u.ustuck && !Blind); boolean realizes_damage; const char *wepdesc; +/*JP static const char you[] = "you"; +*/ + static const char you[] = "‚ ‚È‚½"; char hittee[BUFSZ]; Strcpy(hittee, youdefend ? you : mon_nam(mdef)); @@ -1173,6 +1233,7 @@ int dieroll; /* needed for Magicbane and vorpal blades */ /* the four basic attacks: fire, cold, shock and missiles */ if (attacks(AD_FIRE, otmp)) { if (realizes_damage) +#if 0 /*JP*/ pline_The("fiery blade %s %s%c", !spec_dbon_applies ? "hits" @@ -1180,6 +1241,15 @@ int dieroll; /* needed for Magicbane and vorpal blades */ ? "vaporizes part of" : "burns", hittee, !spec_dbon_applies ? '.' : '!'); +#else + pline_The("–҉΂ª%s%s", + hittee, + !spec_dbon_applies + ? "‚É–½’†‚µ‚½D" + : (mdef->data == &mons[PM_WATER_ELEMENTAL]) + ? "‚̈ꕔ‚ðÁ–Å‚³‚¹‚½I" + : "‚ðÄ‚¢‚½I"); +#endif if (!rn2(4)) (void) destroy_mitem(mdef, POTION_CLASS, AD_FIRE); if (!rn2(4)) @@ -1192,18 +1262,29 @@ int dieroll; /* needed for Magicbane and vorpal blades */ } if (attacks(AD_COLD, otmp)) { if (realizes_damage) +#if 0 /*JP*/ pline_The("ice-cold blade %s %s%c", !spec_dbon_applies ? "hits" : "freezes", hittee, !spec_dbon_applies ? '.' : '!'); +#else + pline_The("–Ґá‚ª%s%s", + hittee, + !spec_dbon_applies ? "‚É–½’†‚µ‚½D" : "‚ðP‚Á‚½I"); +#endif if (!rn2(4)) (void) destroy_mitem(mdef, POTION_CLASS, AD_COLD); return realizes_damage; } if (attacks(AD_ELEC, otmp)) { if (realizes_damage) +#if 0 /*JP*/ pline_The("massive hammer hits%s %s%c", !spec_dbon_applies ? "" : "! Lightning strikes", hittee, !spec_dbon_applies ? '.' : '!'); +#else + pline("‹‘å‚ȃnƒ“ƒ}[‚Í%s‚É–½’†‚µ‚½%s", hittee, + !spec_dbon_applies ? "D" : "I“dŒ‚‚ªP‚Á‚½I"); +#endif if (!rn2(5)) (void) destroy_mitem(mdef, RING_CLASS, AD_ELEC); if (!rn2(5)) @@ -1212,11 +1293,18 @@ int dieroll; /* needed for Magicbane and vorpal blades */ } if (attacks(AD_MAGM, otmp)) { if (realizes_damage) +#if 0 /*JP*/ pline_The("imaginary widget hits%s %s%c", !spec_dbon_applies ? "" : "! A hail of magic missiles strikes", hittee, !spec_dbon_applies ? '.' : '!'); +#else + pline("ŽÀ‘Ì‚ðŽ‚½‚È‚¢•¨‘Ì‚ª%s‚ðUŒ‚‚µ‚½%s", + hittee, + !spec_dbon_applies ? "D" : + "I–‚–@‚̖‰J‚ ‚ç‚ê‚Æ–½’†‚µ‚½I"); +#endif return realizes_damage; } @@ -1235,10 +1323,16 @@ int dieroll; /* needed for Magicbane and vorpal blades */ /* reverse from AD&D. */ if (spec_ability(otmp, SPFX_BEHEAD)) { if (otmp->oartifact == ART_TSURUGI_OF_MURAMASA && dieroll == 1) { +/*JP wepdesc = "The razor-sharp blade"; +*/ + wepdesc = "Ža“SŒ•"; /* not really beheading, but so close, why add another SPFX */ if (youattack && u.uswallow && mdef == u.ustuck) { +/*JP You("slice %s wide open!", mon_nam(mdef)); +*/ + You("%s‚ð—֐؂è‚É‚µ‚½I", mon_nam(mdef)); *dmgptr = 2 * mdef->mhp + FATAL_DAMAGE_MODIFIER; return TRUE; } @@ -1249,7 +1343,10 @@ int dieroll; /* needed for Magicbane and vorpal blades */ if (bigmonst(mdef->data)) { if (youattack) +/*JP You("slice deeply into %s!", mon_nam(mdef)); +*/ + You("%s‚ɐ[‚­Ža‚è‚‚¯‚½I",mon_nam(mdef)); else if (vis) pline("%s cuts deeply into %s!", Monnam(magr), hittee); @@ -1257,12 +1354,18 @@ int dieroll; /* needed for Magicbane and vorpal blades */ return TRUE; } *dmgptr = 2 * mdef->mhp + FATAL_DAMAGE_MODIFIER; +/*JP pline("%s cuts %s in half!", wepdesc, mon_nam(mdef)); +*/ + pline("%s‚ª%s‚ð^‚Á“ñ‚‚ɂµ‚½I", wepdesc, mon_nam(mdef)); otmp->dknown = TRUE; return TRUE; } else { if (bigmonst(youmonst.data)) { +/*JP pline("%s cuts deeply into you!", +*/ + pline("%s‚Í‚ ‚È‚½‚ɐ[‚­Ža‚è‚‚¯‚½I", magr ? Monnam(magr) : wepdesc); *dmgptr *= 2; return TRUE; @@ -1274,14 +1377,22 @@ int dieroll; /* needed for Magicbane and vorpal blades */ * damage does not prevent death. */ *dmgptr = 2 * (Upolyd ? u.mh : u.uhp) + FATAL_DAMAGE_MODIFIER; +/*JP pline("%s cuts you in half!", wepdesc); +*/ + pline("%s‚ª‚ ‚È‚½‚ð^‚Á“ñ‚‚ɂµ‚½I", wepdesc); otmp->dknown = TRUE; return TRUE; } } else if (otmp->oartifact == ART_VORPAL_BLADE && (dieroll == 1 || mdef->data == &mons[PM_JABBERWOCK])) { +#if 0 /*JP*/ static const char *const behead_msg[2] = { "%s beheads %s!", "%s decapitates %s!" }; +#else + static const char *const behead_msg[2] = { "%s‚Í%s‚ÌŽñ‚ðØ‚Á‚½I", + "%s‚Í%s‚ÌŽñ‚ðØ‚è—Ž‚µ‚½I" }; +#endif if (youattack && u.uswallow && mdef == u.ustuck) return FALSE; @@ -1289,14 +1400,23 @@ int dieroll; /* needed for Magicbane and vorpal blades */ if (!youdefend) { if (!has_head(mdef->data) || notonhead || u.uswallow) { if (youattack) +/*JP pline("Somehow, you miss %s wildly.", mon_nam(mdef)); +*/ + pline("‚È‚º‚©C%s‚ւ̍UŒ‚‚Í‘å‚«‚­‚Í‚¸‚ꂽD", mon_nam(mdef)); else if (vis) +/*JP pline("Somehow, %s misses wildly.", mon_nam(magr)); +*/ + pline("‚È‚º‚©C%s‚̍UŒ‚‚Í‘å‚«‚­‚Í‚¸‚ꂽD", mon_nam(magr)); *dmgptr = 0; return (boolean) (youattack || vis); } if (noncorporeal(mdef->data) || amorphous(mdef->data)) { +/*JP pline("%s slices through %s %s.", wepdesc, +*/ + pline("%s‚Í%s‚Ì%s‚ðØ‚è—Ž‚µ‚½D", wepdesc, s_suffix(mon_nam(mdef)), mbodypart(mdef, NECK)); return TRUE; } @@ -1304,23 +1424,35 @@ int dieroll; /* needed for Magicbane and vorpal blades */ pline(behead_msg[rn2(SIZE(behead_msg))], wepdesc, mon_nam(mdef)); if (Hallucination && !flags.female) +/*JP pline("Good job Henry, but that wasn't Anne."); +*/ + pline("ƒwƒ“ƒŠ[‚æ‚­‚â‚Á‚½C‚¾‚ª‚»‚¢‚‚̓Aƒ“‚¶‚á‚È‚¢D"); otmp->dknown = TRUE; return TRUE; } else { if (!has_head(youmonst.data)) { +/*JP pline("Somehow, %s misses you wildly.", +*/ + pline("‚È‚º‚©C%s‚̍UŒ‚‚Í‘å‚«‚­‚Í‚¸‚ꂽD", magr ? mon_nam(magr) : wepdesc); *dmgptr = 0; return TRUE; } if (noncorporeal(youmonst.data) || amorphous(youmonst.data)) { +/*JP pline("%s slices through your %s.", wepdesc, +*/ + pline("%s‚Í‚ ‚È‚½‚Ì%s‚ðØ‚è—Ž‚µ‚½D", wepdesc, body_part(NECK)); return TRUE; } *dmgptr = 2 * (Upolyd ? u.mh : u.uhp) + FATAL_DAMAGE_MODIFIER; +/*JP pline(behead_msg[rn2(SIZE(behead_msg))], wepdesc, "you"); +*/ + pline(behead_msg[rn2(SIZE(behead_msg))], wepdesc, "‚ ‚È‚½"); otmp->dknown = TRUE; /* Should amulets fall off? */ return TRUE; @@ -1330,17 +1462,31 @@ int dieroll; /* needed for Magicbane and vorpal blades */ if (spec_ability(otmp, SPFX_DRLI)) { /* some non-living creatures (golems, vortices) are vulnerable to life drain effects */ +/*JP const char *life = nonliving(mdef->data) ? "animating force" : "life"; +*/ + const char *life = nonliving(mdef->data) ? "“®ì—Í" : "¶–½—Í"; if (!youdefend) { if (vis) { if (otmp->oartifact == ART_STORMBRINGER) +#if 0 /*JP*/ pline_The("%s blade draws the %s from %s!", hcolor(NH_BLACK), life, mon_nam(mdef)); +#else + pline("%sn‚ª%s‚Ì%s‚ð’D‚Á‚½I", + hcolor(NH_BLACK), mon_nam(mdef), life); +#endif else +#if 0 /*JP*/ pline("%s draws the %s from %s!", The(distant_name(otmp, xname)), life, mon_nam(mdef)); +#else + pline("%s‚Í%s‚Ì%s‚ð’D‚Á‚½I", + The(distant_name(otmp, xname)), + mon_nam(mdef), life); +#endif } if (mdef->m_lev == 0) { *dmgptr = 2 * mdef->mhp + FATAL_DAMAGE_MODIFIER; @@ -1359,17 +1505,36 @@ int dieroll; /* needed for Magicbane and vorpal blades */ int oldhpmax = u.uhpmax; if (Blind) +#if 0 /*JP*/ You_feel("an %s drain your %s!", (otmp->oartifact == ART_STORMBRINGER) ? "unholy blade" : "object", life); +#else + pline("%s‚É%s‚ð’D‚í‚ꂽ‚悤‚È‹C‚ª‚µ‚½I", + (otmp->oartifact == ART_STORMBRINGER) + ? "•sò‚Ȑn" + : "‰½‚©", + life); +#endif else if (otmp->oartifact == ART_STORMBRINGER) +/*JP pline_The("%s blade drains your %s!", hcolor(NH_BLACK), life); +*/ + pline("%sn‚ª‚ ‚È‚½‚Ì%s‚ð’D‚Á‚½I", hcolor(NH_BLACK), life); else +#if 0 /*JP*/ pline("%s drains your %s!", The(distant_name(otmp, xname)), life); +#else + pline("%s‚ª‚ ‚È‚½‚Ì%s‚ð’D‚Á‚½I", The(distant_name(otmp, xname)), + life); +#endif +/*JP losexp("life drainage"); +*/ + losexp("¶–½—Í‚ð‹zŽû‚³‚ê‚Ä"); if (magr && magr->mhp < magr->mhpmax) { magr->mhp += (oldhpmax - u.uhpmax) / 2; if (magr->mhp > magr->mhpmax) @@ -1420,8 +1585,12 @@ struct obj *obj; /* It's a special power, not "just" a property */ if (obj->age > monstermoves) { /* the artifact is tired :-) */ +#if 0 /*JP:T*/ You_feel("that %s %s ignoring you.", the(xname(obj)), otense(obj, "are")); +#else + You_feel("%s‚ª–³Ž‹‚µ‚Ä‚¢‚é‚悤‚ÉŠ´‚¶‚½D", xname(obj)); +#endif /* and just got more so; patience is essential... */ obj->age += (long) d(3, 10); return 1; @@ -1445,7 +1614,10 @@ struct obj *obj; if (Upolyd) healamt = (u.mhmax + 1 - u.mh) / 2; if (healamt || Sick || Slimed || Blinded > creamed) +/*JP You_feel("better."); +*/ + You_feel("‹C•ª‚ª‚æ‚­‚È‚Á‚½D"); else goto nothing_special; if (healamt > 0) { @@ -1470,7 +1642,10 @@ struct obj *obj; else if (epboost < 12) epboost = u.uenmax - u.uen; if (epboost) { +/*JP You_feel("re-energized."); +*/ + You("ƒGƒlƒ‹ƒM[‚Å–ž‚½‚³‚ꂽD"); u.uen += epboost; context.botl = 1; } else @@ -1520,7 +1695,10 @@ struct obj *obj; num_ok_dungeons++; last_ok_dungeon = i; } +/*JP end_menu(tmpwin, "Open a portal to which dungeon?"); +*/ + end_menu(tmpwin, "‚Ç‚Ì–À‹{‚Ö‚Ì–‚–@‚Ì“üŒû‚ðŠJ‚«‚Ü‚·‚©H"); if (num_ok_dungeons > 1) { /* more than one entry; display menu for choices */ menu_item *selected; @@ -1551,12 +1729,21 @@ struct obj *obj; if (u.uhave.amulet || In_endgame(&u.uz) || In_endgame(&newlev) || newlev.dnum == u.uz.dnum || !next_to_u()) { +/*JP You_feel("very disoriented for a moment."); +*/ + You("ˆêu•ûŒüŠ´Šo‚ðŽ¸‚Á‚½D"); } else { if (!Blind) +/*JP You("are surrounded by a shimmering sphere!"); +*/ + You("ƒ`ƒJƒ`ƒJŒõ‚é‹…‘Ì‚É•¢‚í‚ꂽI"); else +/*JP You_feel("weightless for a moment."); +*/ + You_feel("ˆêuC–³d—ÍŠ´‚ðŠ´‚¶‚½D"); goto_level(&newlev, FALSE, FALSE, FALSE); } break; @@ -1583,8 +1770,13 @@ struct obj *obj; otmp->quan += rnd(5); otmp->owt = weight(otmp); otmp = +#if 0 /*JP*/ hold_another_object(otmp, "Suddenly %s out.", aobjnam(otmp, "fall"), (const char *) 0); +#else + hold_another_object(otmp, "“Ë‘R%s‚ª—Ž‚¿‚½D", + xname(otmp), 0); +#endif break; } } @@ -1596,8 +1788,12 @@ struct obj *obj; if (on && obj->age > monstermoves) { /* the artifact is tired :-) */ u.uprops[oart->inv_prop].extrinsic ^= W_ARTI; +#if 0 /*JP:T*/ You_feel("that %s %s ignoring you.", the(xname(obj)), otense(obj, "are")); +#else + You_feel("%s‚ª–³Ž‹‚µ‚Ä‚¢‚é‚悤‚ÉŠ´‚¶‚½D", xname(obj)); +#endif /* can't just keep repeatedly trying */ obj->age += (long) d(3, 10); return 1; @@ -1611,15 +1807,24 @@ struct obj *obj; nothing_special: /* you had the property from some other source too */ if (carried(obj)) +/*JP You_feel("a surge of power, but nothing seems to happen."); +*/ + You("—͂̍‚‚Ü‚è‚ðŠ´‚¶‚½‚ªC‰½‚à‹N‚«‚È‚©‚Á‚½‚悤‚¾D"); return 1; } switch (oart->inv_prop) { case CONFLICT: if (on) +/*JP You_feel("like a rabble-rouser."); +*/ + You("–¯Oî“®‰Æ‚̂悤‚È‹C‚ª‚µ‚½D"); else +/*JP You_feel("the tension decrease around you."); +*/ + pline("‚Ü‚í‚è‚Ì‹Ù’£Š´‚ª‚È‚­‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½D"); break; case LEVITATION: if (on) { @@ -1633,10 +1838,18 @@ struct obj *obj; goto nothing_special; newsym(u.ux, u.uy); if (on) +#if 0 /*JP*/ Your("body takes on a %s transparency...", Hallucination ? "normal" : "strange"); +#else + pline("%sC‘Ì‚Í“§‰ß«‚ð‚à‚Á‚½DDD", + Hallucination ? "‚ ‚½‚è‚Ü‚¦‚Ì‚±‚Æ‚¾‚ª" : "Šï–­‚È‚±‚Æ‚É"); +#endif else +/*JP Your("body seems to unfade..."); +*/ + Your("‘Ì‚ÍŽŸ‘æ‚ÉŒ©‚¦‚é‚悤‚É‚È‚Á‚Ä‚«‚½DDD"); break; } } @@ -1695,8 +1908,14 @@ struct obj *obj; line = getrumor(bcsign(obj), buf, TRUE); if (!*line) +/*JP line = "NetHack rumors file closed for renovation."; +*/ + line = "‰\‚̐^‘Š‚͐V‘•‚Ì‚½‚߈ꎞ•Â“XD"; +/*JP pline("%s:", Tobjnam(obj, "whisper")); +*/ + pline("%s‚Í‚³‚³‚â‚¢‚½F", xname(obj)); verbalize1(line); return; } diff --git a/src/attrib.c b/src/attrib.c index 3866dbf..0c83b08 100644 --- a/src/attrib.c +++ b/src/attrib.c @@ -2,6 +2,12 @@ /* Copyright 1988, 1989, 1990, 1992, M. Stephenson */ /* 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. */ + + /* attribute modification routines. */ #include "hack.h" @@ -9,11 +15,22 @@ /* part of the output on gain or loss of attribute */ static const char +#if 0 /*JP*/ *const plusattr[] = { "strong", "smart", "wise", "agile", "tough", "charismatic" }, +#else + *const plusattr[] = { "‹­‚¢", "Œ«–¾‚¾", "Œ«‚¢", + "‹@•q‚¾", "Šæä‚¾", "–£—Í“I‚¾" }, +#endif +#if 0 /*JP*/ *const minusattr[] = { "weak", "stupid", "foolish", "clumsy", "fragile", "repulsive" }; +#else + *const minusattr[] = { "Žã‚¢", "‹ð‚©‚¾", + "ŠÔ”²‚¯‚¾", "•sŠí—p‚¾", + "‚Ўゾ","X‚¢" }; +#endif static const struct innate { schar ulevel; @@ -21,69 +38,147 @@ static const struct innate { const char *gainstr, *losestr; } arc_abil[] = { { 1, &(HStealth), "", "" }, { 1, &(HFast), "", "" }, +/*JP { 10, &(HSearching), "perceptive", "" }, +*/ + { 10, &(HSearching), "’mŠo—͂𓾂½", "’mŠo—Í‚ðŽ¸‚Á‚½" }, { 0, 0, 0, 0 } }, bar_abil[] = { { 1, &(HPoison_resistance), "", "" }, +/*JP { 7, &(HFast), "quick", "slow" }, +*/ + { 7, &(HFast), "‘f‘‚³‚𓾂½", "’x‚­‚È‚Á‚½" }, +/*JP { 15, &(HStealth), "stealthy", "" }, +*/ + { 15, &(HStealth), "l–ڂ𓐂ޗ͂𓾂½", "l–Ú‚ð“‚Þ—Í‚ðŽ¸‚Á‚½" }, { 0, 0, 0, 0 } }, +/*JP cav_abil[] = { { 7, &(HFast), "quick", "slow" }, +*/ + cav_abil[] = { { 7, &(HFast), "‘f‘‚³‚𓾂½", "’x‚­‚È‚Á‚½" }, +/*JP { 15, &(HWarning), "sensitive", "" }, +*/ + { 15, &(HWarning), "•qŠ´‚É‚È‚Á‚½", "“ÝŠ´‚É‚È‚Á‚½" }, { 0, 0, 0, 0 } }, hea_abil[] = { { 1, &(HPoison_resistance), "", "" }, +/*JP { 15, &(HWarning), "sensitive", "" }, +*/ + { 15, &(HWarning), "•qŠ´‚É‚È‚Á‚½", "“ÝŠ´‚É‚È‚Á‚½" }, { 0, 0, 0, 0 } }, +/*JP kni_abil[] = { { 7, &(HFast), "quick", "slow" }, { 0, 0, 0, 0 } }, +*/ + kni_abil[] = { { 7, &(HFast), "‘f‘‚³‚𓾂½", "’x‚­‚È‚Á‚½" }, { 0, 0, 0, 0 } }, mon_abil[] = { { 1, &(HFast), "", "" }, { 1, &(HSleep_resistance), "", "" }, { 1, &(HSee_invisible), "", "" }, +/*JP { 3, &(HPoison_resistance), "healthy", "" }, +*/ + { 3, &(HPoison_resistance), "Œ’N‚É‚È‚Á‚½", "•sŒ’N‚É‚È‚Á‚½" }, +/*JP { 5, &(HStealth), "stealthy", "" }, +*/ + { 5, &(HStealth), "l–ڂ𓐂ޗ͂𓾂½", "l–Ú‚ð“‚Þ—Í‚ðŽ¸‚Á‚½" }, +/*JP { 7, &(HWarning), "sensitive", "" }, +*/ + { 7, &(HWarning), "•qŠ´‚É‚È‚Á‚½", "“ÝŠ´‚É‚È‚Á‚½" }, +/*JP { 9, &(HSearching), "perceptive", "unaware" }, +*/ + { 9, &(HSearching), "’mŠo—͂𓾂½", "’mŠo—Í‚ðŽ¸‚Á‚½" }, +/*JP { 11, &(HFire_resistance), "cool", "warmer" }, +*/ + { 11, &(HFire_resistance), "—₽‚­‚È‚Á‚½", "’g‚©‚­‚È‚Á‚½" }, +/*JP { 13, &(HCold_resistance), "warm", "cooler" }, +*/ + { 13, &(HCold_resistance), "’g‚©‚­‚È‚Á‚½", "—₽‚­‚È‚Á‚½"}, +/*JP { 15, &(HShock_resistance), "insulated", "conductive" }, +*/ + { 15, &(HShock_resistance), "â‰‚³‚ꂽ", "“±“d‚³‚ꂽ" }, +/*JP { 17, &(HTeleport_control), "controlled", "uncontrolled" }, +*/ + { 17, &(HTeleport_control), "§Œä—͂𓾂½","§Œä—Í‚ðŽ¸‚Á‚½" }, { 0, 0, 0, 0 } }, +/*JP pri_abil[] = { { 15, &(HWarning), "sensitive", "" }, +*/ + pri_abil[] = { { 15, &(HWarning), "•qŠ´‚É‚È‚Á‚½", "“ÝŠ´‚É‚È‚Á‚½" }, +/*JP { 20, &(HFire_resistance), "cool", "warmer" }, +*/ + { 20, &(HFire_resistance), "—₽‚­‚È‚Á‚½", "’g‚©‚­‚È‚Á‚½" }, { 0, 0, 0, 0 } }, ran_abil[] = { { 1, &(HSearching), "", "" }, +/*JP { 7, &(HStealth), "stealthy", "" }, +*/ + { 7, &(HStealth), "l–ڂ𓐂ޗ͂𓾂½", "l–Ú‚ð“‚Þ—Í‚ðŽ¸‚Á‚½" }, { 15, &(HSee_invisible), "", "" }, { 0, 0, 0, 0 } }, rog_abil[] = { { 1, &(HStealth), "", "" }, +/*JP { 10, &(HSearching), "perceptive", "" }, +*/ + { 10, &(HSearching), "’mŠo—͂𓾂½", "’mŠo—Í‚ðŽ¸‚Á‚½" }, { 0, 0, 0, 0 } }, sam_abil[] = { { 1, &(HFast), "", "" }, +/*JP { 15, &(HStealth), "stealthy", "" }, +*/ + { 15, &(HStealth), "l–ڂ𓐂ޗ͂𓾂½", "l–Ú‚ð“‚Þ—Í‚ðŽ¸‚Á‚½" }, { 0, 0, 0, 0 } }, +/*JP tou_abil[] = { { 10, &(HSearching), "perceptive", "" }, +*/ + tou_abil[] = { { 10, &(HSearching), "’mŠo—͂𓾂½", "’mŠo—Í‚ðŽ¸‚Á‚½" }, +/*JP { 20, &(HPoison_resistance), "hardy", "" }, +*/ + { 20, &(HPoison_resistance), "–Ɖu—͂𓾂½", "–Ɖu—Í‚ðŽ¸‚Á‚½" }, { 0, 0, 0, 0 } }, val_abil[] = { { 1, &(HCold_resistance), "", "" }, { 1, &(HStealth), "", "" }, +/*JP { 7, &(HFast), "quick", "slow" }, +*/ + { 7, &(HFast), "‘f‘‚³‚𓾂½", "’x‚­‚È‚Á‚½" }, { 0, 0, 0, 0 } }, +/*JP wiz_abil[] = { { 15, &(HWarning), "sensitive", "" }, +*/ + wiz_abil[] = { { 15, &(HWarning), "•qŠ´‚É‚È‚Á‚½", "“ÝŠ´‚É‚È‚Á‚½" }, +/*JP { 17, &(HTeleport_control), "controlled", "uncontrolled" }, +*/ + { 17, &(HTeleport_control), "§Œä—͂𓾂½","§Œä—Í‚ðŽ¸‚Á‚½" }, { 0, 0, 0, 0 } }, /* Intrinsics conferred by race */ +/*JP elf_abil[] = { { 4, &(HSleep_resistance), "awake", "tired" }, +*/ + elf_abil[] = { { 4, &(HSleep_resistance), "–Ú‚ªŠo‚ß‚½", "–°‚­‚È‚Á‚½" }, { 0, 0, 0, 0 } }, orc_abil[] = { { 1, &(HPoison_resistance), "", "" }, { 0, 0, 0, 0 } }; @@ -108,7 +203,10 @@ int msgflg; /* positive => no message, zero => message, and */ if ((ndx == A_INT || ndx == A_WIS) && uarmh && uarmh->otyp == DUNCE_CAP) { if (msgflg == 0) +/*JP Your("cap constricts briefly, then relaxes again."); +*/ + Your("–XŽq‚ª‚µ‚΂炭‚ÌŠÔƒLƒ…‚Á‚Æ’÷‚߂‚¯C‚»‚µ‚Ä‚ä‚é‚ñ‚¾D"); return FALSE; } @@ -138,13 +236,21 @@ int msgflg; /* positive => no message, zero => message, and */ } if (ACURR(ndx) == old_acurr) { if (msgflg == 0 && flags.verbose) +#if 0 /*JP*/ pline("You're %s as %s as you can get.", abonflg ? "currently" : "already", attrstr); +#else + You("%s\•ª‚É%sD", + abonflg ? "¡‚Ì‚Æ‚±‚ë" : "Šù‚É", attrstr); +#endif return FALSE; } if (msgflg <= 0) +/*JP You_feel("%s%s!", (incr > 1 || incr < -1) ? "very " : "", attrstr); +*/ + You("%s%s‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½I", (incr > 1 || incr < -1) ? "‚Æ‚Ä‚à" : "", jconj_adj(attrstr)); context.botl = 1; if (moves > 1 && (ndx == A_STR || ndx == A_CON)) (void) encumber_msg(); @@ -229,20 +335,38 @@ boolean thrown_weapon; /* thrown weapons are less deadly */ /* inform player about being poisoned unless that's already been done; "blast" has given a "blast of poison gas" message; "poison arrow", "poison dart", etc have implicitly given poison messages too... */ +#if 0 /*JP*/ if (strcmp(reason, "blast") && !strstri(reason, "poison")) { +#else + if (strcmp(reason, "•—") && strcmp(reason, "‘§") && !strstri(reason, "“Å")) { +#endif +#if 0 /*JP*/ boolean plural = (reason[strlen(reason) - 1] == 's') ? 1 : 0; +#endif /* avoid "The" Orcus's sting was poisoned... */ +#if 0 /*JP*/ pline("%s%s %s poisoned!", isupper(*reason) ? "" : "The ", reason, plural ? "were" : "was"); +#else + pline("%s‚Í“Å‚É‚¨‚©‚³‚ê‚Ä‚¢‚éI", reason); +#endif } if (Poison_resistance) { +#if 0 /*JP*/ if (!strcmp(reason, "blast")) +#else + if (!strcmp(reason, "•—") || !strcmp(reason, "‘§")) +#endif shieldeff(u.ux, u.uy); +/*JP pline_The("poison doesn't seem to affect you."); +*/ + pline("“Å‚ÍŒø‚©‚È‚©‚Á‚½‚悤‚¾D"); return; } +#if 0 /*JP*//*“ú–{Œê‚Å‚Í•s—v*/ /* suppress killer prefix if it already has one */ i = name_to_mon(pkiller); if (i >= LOW_PM && (mons[i].geno & G_UNIQ)) { @@ -254,12 +378,16 @@ boolean thrown_weapon; /* thrown weapons are less deadly */ /*[ does this need a plural check too? ]*/ kprefix = KILLED_BY; } +#endif i = !fatal ? 1 : rn2(fatal + (thrown_weapon ? 20 : 0)); if (i == 0 && typ != A_CHA) { /* instant kill */ u.uhp = -1; +/*JP pline_The("poison was deadly..."); +*/ + pline("“Å‚Í’vŽ€—Ê‚¾‚Á‚½DDD"); } else if (i > 5) { /* HP damage; more likely--but less severe--with missiles */ loss = thrown_weapon ? rnd(6) : rn1(10, 6); @@ -276,8 +404,12 @@ boolean thrown_weapon; /* thrown weapons are less deadly */ if (u.uhp < 1) { killer.format = kprefix; Strcpy(killer.name, pkiller); +#if 0 /*JP*/ /* "Poisoned by a poisoned ___" is redundant */ done(strstri(pkiller, "poison") ? DIED : POISONING); +#else /*JP:“ú–{Œê‚Å‚Í‹æ•Ê‚µ‚Ä‚¢‚È‚¢*/ + done(POISONING); +#endif } (void) encumber_msg(); } @@ -454,12 +586,21 @@ exerper() /* exercise/abuse text (must be in attribute order, not botl order); phrased as "You must have been [][0]." or "You haven't been [][1]." */ static NEARDATA const char *const exertext[A_MAX][2] = { +#if 0 /*JP*/ { "exercising diligently", "exercising properly" }, /* Str */ { 0, 0 }, /* Int */ { "very observant", "paying attention" }, /* Wis */ { "working on your reflexes", "working on reflexes lately" }, /* Dex */ { "leading a healthy life-style", "watching your health" }, /* Con */ { 0, 0 }, /* Cha */ +#else + { "”O“ü‚è‚ɉ^“®‚µ‚Ä‚¢‚½", "“KØ‚ɉ^“®‚µ‚Ä‚¢‚È‚©‚Á‚½" }, /* Str */ + { 0, 0 }, /* Int */ + { "Td‚ɍs“®‚µ‚Ä‚¢‚½", "’ˆÓ•s‘«‚¾‚Á‚½" }, /* Wis */ + { "”½ŽË_Œo‚ðŽg‚Á‚Ä‚¢‚½", "Å‹ß”½ŽË_Œo‚ðŽg‚Á‚Ä‚¢‚È‚©‚Á‚½" }, /* Dex */ + { "Œ’N“I‚Ȑ¶Šˆ‚ð‚µ‚Ä‚¢‚½", "Œ’NŠÇ—‚ð‘Ó‚Á‚Ä‚¢‚½" }, /* Con */ + { 0, 0 }, /* Cha */ +#endif }; void @@ -535,9 +676,14 @@ exerchk() /* if you actually changed an attrib - zero accumulation */ AEXE(i) = ax = 0; /* then print an explanation */ +#if 0 /*JP*/ You("%s %s.", (mod_val > 0) ? "must have been" : "haven't been", exertext[i][(mod_val > 0) ? 0 : 1]); +#else + You("%s‚ɈႢ‚È‚¢D", + exertext[i][(mod_val > 0) ? 0 : 1]); +#endif } nextattrib: /* this used to be ``AEXE(i) /= 2'' but that would produce diff --git a/src/ball.c b/src/ball.c index 1a35eea..a55671d 100644 --- a/src/ball.c +++ b/src/ball.c @@ -16,7 +16,10 @@ boolean showmsg; { if (carried(uball)) { if (showmsg) +/*JP pline("Startled, you drop the iron ball."); +*/ + pline("‹Á‚¢‚Ä‚ ‚È‚½‚Í“S‹…‚ð—Ž‚µ‚½D"); if (uwep == uball) setuwep((struct obj *) 0); if (uswapwep == uball) @@ -39,16 +42,29 @@ ballfall() ballrelease(TRUE); if (gets_hit) { int dmg = rn1(7, 25); +/*JP pline_The("iron ball falls on your %s.", body_part(HEAD)); +*/ + pline("“S‹…‚Í‚ ‚È‚½‚Ì%s‚̏ã‚É—Ž‚¿‚½D", body_part(HEAD)); if (uarmh) { if (is_metallic(uarmh)) { +/*JP pline("Fortunately, you are wearing a hard helmet."); +*/ + pline("K‰^‚É‚àC‚ ‚È‚½‚͌ł¢Š•‚ðg‚ɂ‚¯‚Ä‚¢‚½D"); dmg = 3; } else if (flags.verbose) +/*JP pline("%s does not protect you.", Yname2(uarmh)); +*/ + Your("%s‚Å‚ÍŽç‚ê‚È‚¢D", Yname2(uarmh)); } +#if 0 /*JP*/ losehp(Maybe_Half_Phys(dmg), "crunched in the head by an iron ball", NO_KILLER_PREFIX); +#else + losehp(Maybe_Half_Phys(dmg), "“S‹…‚Å“ª‚ð‘Å‚Á‚Ä", KILLED_BY); +#endif } } @@ -586,8 +602,13 @@ boolean allow_drag; drag: if (near_capacity() > SLT_ENCUMBER && dist2(x, y, u.ux, u.uy) <= 2) { +#if 0 /*JP*/ You("cannot %sdrag the heavy iron ball.", invent ? "carry all that and also " : ""); +#else + You("%sd‚¢“S‹…‚ð‚Ђ«‚¸‚邱‚Æ‚ª‚Å‚«‚È‚¢D", + invent ? "‚»‚ꂾ‚¯‚̉ו¨‚ðŽ‚Á‚½‚Ü‚Ü" : ""); +#endif nomul(0); return FALSE; } @@ -601,13 +622,19 @@ drag: && (t->ttyp == PIT || t->ttyp == SPIKED_PIT || t->ttyp == HOLE || t->ttyp == TRAPDOOR))) { if (Levitation) { +/*JP You_feel("a tug from the iron ball."); +*/ + You("“S‹…‚Ɉø‚Á‚Ï‚ç‚ꂽD"); if (t) t->tseen = 1; } else { struct monst *victim; +/*JP You("are jerked back by the iron ball!"); +*/ + You("“S‹…‚É‚®‚¢‚ƈø‚Á‚Ï‚ç‚ꂽI"); if ((victim = m_at(uchain->ox, uchain->oy)) != 0) { int tmp; @@ -702,33 +729,63 @@ xchar x, y; if (x != u.ux || y != u.uy) { struct trap *t; +/*JP const char *pullmsg = "The ball pulls you out of the %s!"; +*/ + const char *pullmsg = "“S‹…‚Í%s‚©‚ç‚ ‚È‚½‚ðˆø‚Á‚Ï‚èo‚µ‚½I"; if (u.utrap && u.utraptype != TT_INFLOOR && u.utraptype != TT_BURIEDBALL) { switch (u.utraptype) { case TT_PIT: +/*JP pline(pullmsg, "pit"); +*/ + pline(pullmsg, "—Ž‚µŒŠ"); break; case TT_WEB: +/*JP pline(pullmsg, "web"); +*/ + pline(pullmsg, "‚­‚à‚Ì‘ƒ"); +/*JP pline_The("web is destroyed!"); +*/ + pline("‚­‚à‚Ì‘ƒ‚Í‚±‚í‚ꂽI"); deltrap(t_at(u.ux, u.uy)); break; case TT_LAVA: +/*JP pline(pullmsg, "lava"); +*/ + pline(pullmsg, "—nŠâ"); break; case TT_BEARTRAP: { register long side = rn2(3) ? LEFT_SIDE : RIGHT_SIDE; +/*JP pline(pullmsg, "bear trap"); +*/ + pline(pullmsg, "ŒF‚Ìã©"); set_wounded_legs(side, rn1(1000, 500)); if (!u.usteed) { +#if 0 /*JP*/ Your("%s %s is severely damaged.", (side == LEFT_SIDE) ? "left" : "right", body_part(LEG)); +#else + Your("%s%s‚͂Ђǂ¢‚𕉂Á‚½D", + (side == LEFT_SIDE) ? "¶" : "‰E", + body_part(LEG)); +#endif +#if 0 /*JP*/ losehp(Maybe_Half_Phys(2), "leg damage from being pulled out of a bear trap", KILLED_BY); +#else + losehp(Maybe_Half_Phys(2), + "ŒF‚Ì㩂©‚甲‚¯‚悤‚Æ‘«‚ðˆø‚Á‚Ï‚Á‚Ä", + KILLED_BY); +#endif } break; } @@ -782,7 +839,10 @@ litter() nextobj = otmp->nobj; if ((otmp != uball) && (rnd(capacity) <= (int) otmp->owt)) { if (canletgo(otmp, "")) { +/*JP pline("%s you down the stairs.", Yobjnam2(otmp, "follow")); +*/ + You("%s‚ƈꏏ‚ÉŠK’i‚ð~‚肽D", xname(otmp)); dropx(otmp); } } @@ -807,27 +867,48 @@ drag_down() forward = carried(uball) && (uwep == uball || !uwep || !rn2(3)); if (carried(uball)) +/*JP You("lose your grip on the iron ball."); +*/ + You("“S‹…‚ðŽè‚©‚ç—Ž‚µ‚Ä‚µ‚Ü‚Á‚½D"); if (forward) { if (rn2(6)) { +/*JP pline_The("iron ball drags you downstairs!"); +*/ + You("“S‹…‚É‚æ‚Á‚ÄŠK’i‚ð‚±‚ë‚ª‚è—Ž‚¿‚½I"); losehp(Maybe_Half_Phys(rnd(6)), +/*JP "dragged downstairs by an iron ball", NO_KILLER_PREFIX); +*/ + "“S‹…‚É‚æ‚èŠK’i‚ð‚±‚ë‚ª‚è—Ž‚¿‚Ä", KILLED_BY); litter(); } } else { if (rn2(2)) { +/*JP pline_The("iron ball smacks into you!"); +*/ + pline("“S‹…‚Í‚ ‚È‚½‚ɃSƒcƒ“‚ƂԂ‚©‚Á‚½I"); +/*JP losehp(Maybe_Half_Phys(rnd(20)), "iron ball collision", +*/ + losehp(Maybe_Half_Phys(rnd(20)), "“S‹…‚̏Փ˂Å", KILLED_BY_AN); exercise(A_STR, FALSE); dragchance -= 2; } if ((int) dragchance >= rnd(6)) { +/*JP pline_The("iron ball drags you downstairs!"); +*/ + You("“S‹…‚É‚æ‚Á‚ÄŠK’i‚ð‚±‚ë‚ª‚è—Ž‚¿‚½I"); losehp(Maybe_Half_Phys(rnd(3)), +/*JP "dragged downstairs by an iron ball", NO_KILLER_PREFIX); +*/ + "“S‹…‚É‚æ‚èŠK’i‚ð‚±‚ë‚ª‚è—Ž‚¿‚Ä", KILLED_BY); exercise(A_STR, FALSE); litter(); } diff --git a/src/bones.c b/src/bones.c index 7ca1925..4c1c32c 100644 --- a/src/bones.c +++ b/src/bones.c @@ -346,11 +346,17 @@ struct obj *corpse; if (fd >= 0) { (void) nhclose(fd); if (wizard) { +/*JP if (yn("Bones file already exists. Replace it?") == 'y') { +*/ + if (yn("œƒtƒ@ƒCƒ‹‚ªŠù‚É‘¶Ý‚µ‚Ä‚é‚æD ’u‚«Š·‚¦‚éH") == 'y') { if (delete_bonesfile(&u.uz)) goto make_bones; else +/*JP pline("Cannot unlink old bones."); +*/ + pline("ŒÃ‚¢œ‚ðíœ‚Å‚«‚È‚©‚Á‚½D"); } } /* compression can change the file's name, so must @@ -524,7 +530,10 @@ make_bones: bflush(fd); if (bytes_counted > freediskspace(bones)) { /* not enough room */ if (wizard) +/*JP pline("Insufficient space to create bones file."); +*/ + pline("œƒtƒ@ƒCƒ‹‚𐶐¬‚·‚邽‚߂̏[•ª‚ȗ̈悪‚È‚¢D"); (void) nhclose(fd); cancel_bonesfile(); return; @@ -569,12 +578,18 @@ getbones() if (validate(fd, bones) != 0) { if (!wizard) +/*JP pline("Discarding unuseable bones; no need to panic..."); +*/ + pline("Žg‚¦‚È‚¢œ‚ðŽÌ‚Ä‚½DQ‚Ä‚é•K—v‚Í‚È‚¢DDD"); ok = FALSE; } else { ok = TRUE; if (wizard) { +/*JP if (yn("Get bones?") == 'n') { +*/ + if (yn("œ‚ðE‚¤H") == 'n') { (void) nhclose(fd); compress_bonesfile(); return 0; @@ -585,7 +600,10 @@ getbones() if (strcmp(bonesid, oldbonesid) != 0) { char errbuf[BUFSZ]; +/*JP Sprintf(errbuf, "This is bones level '%s', not '%s'!", oldbonesid, +*/ + Sprintf(errbuf, "‚±‚̍œ‚̃Œƒxƒ‹‚Í'%s'‚Å‚ ‚Á‚āA'%s'‚Å‚Í‚È‚¢I", oldbonesid, bonesid); if (wizard) { pline1(errbuf); @@ -626,7 +644,10 @@ getbones() u.uroleplay.numbones++; if (wizard) { +/*JP if (yn("Unlink bones?") == 'n') { +*/ + if (yn("œ‚ðÁ‚·H") == 'n') { compress_bonesfile(); return ok; } diff --git a/src/botl.c b/src/botl.c index 422f6d4..643f55c 100644 --- a/src/botl.c +++ b/src/botl.c @@ -7,8 +7,13 @@ extern const char *hu_stat[]; /* defined in eat.c */ +#if 0 /*JP*/ const char *const enc_stat[] = { "", "Burdened", "Stressed", "Strained", "Overtaxed", "Overloaded" }; +#else +const char *const enc_stat[] = { "", "‚æ‚ë‚ß‚«", "ˆ³”—", + "ŒÀŠE", "‰×d", "’´‰ß"}; +#endif STATIC_OVL NEARDATA int mrank_sz = 0; /* loaded by max_rank_sz (from u_init) */ STATIC_DCL const char *NDECL(rank); @@ -28,8 +33,15 @@ bot1() Strcpy(newbot1, plname); if ('a' <= newbot1[0] && newbot1[0] <= 'z') newbot1[0] += 'A' - 'a'; +#if 1 /*JP*/ + if(is_kanji1(newbot1, 9)) + newbot1[9] = '_'; +#endif newbot1[10] = 0; +/*JP Sprintf(nb = eos(newbot1), " the "); +*/ + Sprintf(nb = eos(newbot1)," "); if (Upolyd) { char mbot[BUFSZ]; @@ -53,23 +65,48 @@ bot1() Sprintf(nb = eos(nb), "%*s", i - j, " "); /* pad with spaces */ if (ACURR(A_STR) > 18) { if (ACURR(A_STR) > STR18(100)) +/*JP Sprintf(nb = eos(nb), "St:%2d ", ACURR(A_STR) - 100); +*/ + Sprintf(nb = eos(nb), "‹­:%2d ", ACURR(A_STR) - 100); else if (ACURR(A_STR) < STR18(100)) +/*JP Sprintf(nb = eos(nb), "St:18/%02d ", ACURR(A_STR) - 18); +*/ + Sprintf(nb = eos(nb), "‹­:18/%02d ", ACURR(A_STR) - 18); else +/*JP Sprintf(nb = eos(nb), "St:18/** "); +*/ + Sprintf(nb = eos(nb), "‹­:18/** "); } else +/*JP Sprintf(nb = eos(nb), "St:%-1d ", ACURR(A_STR)); +*/ + Sprintf(nb = eos(nb), "‹­:%-1d ", ACURR(A_STR)); +/*JP Sprintf(nb = eos(nb), "Dx:%-1d Co:%-1d In:%-1d Wi:%-1d Ch:%-1d", +*/ + Sprintf(nb = eos(nb), "‘:%-1d ‘Ï:%-1d ’m:%-1d Œ«:%-1d –£:%-1d ", ACURR(A_DEX), ACURR(A_CON), ACURR(A_INT), ACURR(A_WIS), ACURR(A_CHA)); +#if 0 /*JP*/ Sprintf(nb = eos(nb), (u.ualign.type == A_CHAOTIC) ? " Chaotic" : (u.ualign.type == A_NEUTRAL) ? " Neutral" : " Lawful"); +#else + Sprintf(nb = eos(nb), + (u.ualign.type == A_CHAOTIC) + ? "¬“×" + : (u.ualign.type == A_NEUTRAL) ? "’†—§" : "’˜"); +#endif #ifdef SCORE_ON_BOTL if (flags.showscore) +/*JP Sprintf(nb = eos(nb), " S:%ld", botl_score()); +*/ + Sprintf(nb = eos(nb), "%ld“_", botl_score()); #endif curs(WIN_STATUS, 1, 0); putstr(WIN_STATUS, 0, newbot1); @@ -89,39 +126,72 @@ bot2() if (hp < 0) hp = 0; (void) describe_level(newbot2); +/*JP Sprintf(nb = eos(newbot2), "%s:%-2ld HP:%d(%d) Pw:%d(%d) AC:%-2d", +*/ + Sprintf(nb = eos(newbot2), "%s:%-2ld ‘Ì:%d(%d) –‚:%d(%d) ŠZ:%-2d", encglyph(objnum_to_glyph(GOLD_PIECE)), money_cnt(invent), hp, hpmax, u.uen, u.uenmax, u.uac); if (Upolyd) Sprintf(nb = eos(nb), " HD:%d", mons[u.umonnum].mlevel); else if (flags.showexp) +/*JP Sprintf(nb = eos(nb), " Xp:%u/%-1ld", u.ulevel, u.uexp); +*/ + Sprintf(nb = eos(nb), " ŒoŒ±:%u/%-1ld", u.ulevel,u.uexp); else +/*JP Sprintf(nb = eos(nb), " Exp:%u", u.ulevel); +*/ + Sprintf(nb = eos(nb), " ŒoŒ±:%u", u.ulevel); if (flags.time) +/*JP Sprintf(nb = eos(nb), " T:%ld", moves); +*/ + Sprintf(nb = eos(nb), " •à:%ld", moves); if (strcmp(hu_stat[u.uhs], " ")) { Sprintf(nb = eos(nb), " "); Strcat(newbot2, hu_stat[u.uhs]); } if (Confusion) +/*JP Sprintf(nb = eos(nb), " Conf"); +*/ + Sprintf(nb = eos(nb), " ¬—"); if (Sick) { if (u.usick_type & SICK_VOMITABLE) +/*JP Sprintf(nb = eos(nb), " FoodPois"); +*/ + Sprintf(nb = eos(nb), " H“Å"); if (u.usick_type & SICK_NONVOMITABLE) +/*JP Sprintf(nb = eos(nb), " Ill"); +*/ + Sprintf(nb = eos(nb), " •a‹C"); } if (Blind) +/*JP Sprintf(nb = eos(nb), " Blind"); +*/ + Sprintf(nb = eos(nb), " –Ó–Ú"); if (Stunned) +/*JP Sprintf(nb = eos(nb), " Stun"); +*/ + Sprintf(nb = eos(nb), " ῝ò"); if (Hallucination) +/*JP Sprintf(nb = eos(nb), " Hallu"); +*/ + Sprintf(nb = eos(nb), " Œ¶Šo"); if (Slimed) +/*JP Sprintf(nb = eos(nb), " Slime"); +*/ + Sprintf(nb = eos(nb), " ‚Ç‚ë‚Ç‚ë"); if (cap > UNENCUMBERED) Sprintf(nb = eos(nb), " %s", enc_stat[cap]); curs(WIN_STATUS, 1, 1); @@ -272,12 +342,21 @@ char *buf; if (Is_knox(&u.uz)) Sprintf(buf, "%s ", dungeons[u.uz.dnum].dname); else if (In_quest(&u.uz)) +/*JP Sprintf(buf, "Home %d ", dunlev(&u.uz)); +*/ + Sprintf(buf, "ŒÌ‹½ %d ", dunlev(&u.uz)); else if (In_endgame(&u.uz)) +/*JP Sprintf(buf, Is_astralevel(&u.uz) ? "Astral Plane " : "End Game "); +*/ + Sprintf(buf, Is_astralevel(&u.uz) ? "¸—ìŠE " : "ÅIŽŽ—û "); else { /* ports with more room may expand this one */ +/*JP Sprintf(buf, "Dlvl:%-2d ", depth(&u.uz)); +*/ + Sprintf(buf, "’n‰º:%-2d ", depth(&u.uz)); ret = 0; } return ret; diff --git a/src/cmd.c b/src/cmd.c index 8fd20ef..6664bf7 100644 --- a/src/cmd.c +++ b/src/cmd.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" #include "func_tab.h" @@ -340,9 +345,15 @@ doextlist(VOID_ARGS) datawin = create_nhwindow(NHW_TEXT); putstr(datawin, 0, ""); +/*JP putstr(datawin, 0, " Extended Commands List"); +*/ + putstr(datawin, 0, " Šg’£ƒRƒ}ƒ“ƒhˆê——"); putstr(datawin, 0, ""); +/*JP putstr(datawin, 0, " Press '#', then type:"); +*/ + putstr(datawin, 0, " '#'‚ð‰Ÿ‚µ‚½‚ ‚ƃ^ƒCƒv‚¹‚æ:"); putstr(datawin, 0, ""); for (efp = extcmdlist; efp->ef_txt; efp++) { @@ -439,10 +450,16 @@ extcmd_via_menu() Sprintf(prompt, "%s [%s]", choices[i]->ef_txt, choices[i]->ef_desc); } else if (acount == 1) { +/*JP Sprintf(prompt, "%s or %s", choices[i - 1]->ef_txt, +*/ + Sprintf(prompt, "%s ‚Ü‚½‚Í %s", choices[i-1]->ef_txt, choices[i]->ef_txt); } else { +/*JP Strcat(prompt, " or "); +*/ + Strcat(prompt," ‚Ü‚½‚Í "); Strcat(prompt, choices[i]->ef_txt); } ++acount; @@ -454,7 +471,10 @@ extcmd_via_menu() add_menu(win, NO_GLYPH, &any, any.a_char, 0, ATR_NONE, buf, FALSE); } +/*JP Sprintf(prompt, "Extended Command: %s", cbuf); +*/ + Sprintf(prompt, "Šg’£ƒRƒ}ƒ“ƒh: %s", cbuf); end_menu(win, prompt); n = select_menu(win, PICK_ONE, &pick_list); destroy_nhwindow(win); @@ -508,22 +528,37 @@ domonability(VOID_ARGS) if (split_mon(&youmonst, (struct monst *) 0)) dryup(u.ux, u.uy, TRUE); } else +/*JP There("is no fountain here."); +*/ + pline("‚±‚±‚ɂ͐ò‚Í‚È‚¢D"); } else if (is_unicorn(youmonst.data)) { use_unicorn_horn((struct obj *) 0); return 1; } else if (youmonst.data->msound == MS_SHRIEK) { +/*JP You("shriek."); +*/ + You("‹àØ‚萺‚ð‚ ‚°‚½D"); if (u.uburied) +/*JP pline("Unfortunately sound does not carry well through rock."); +*/ + pline("Žc”O‚È‚ª‚特‚ÍŠâ‚ð‚¤‚Ü‚­“`‚í‚ç‚È‚¢D"); else aggravate(); } else if (youmonst.data->mlet == S_VAMPIRE) return dopoly(); else if (Upolyd) +/*JP pline("Any special ability you may have is purely reflexive."); +*/ + pline("‚ ‚È‚½‚ÌŽ‚Á‚Ä‚¢‚é“ÁŽê”\—Í‚Í‚Ç‚ê‚àŽó“®“I‚¾D"); else +/*JP You("don't have a special ability in your normal form!"); +*/ + You("•’i‚ÌŽp‚Å‚Ì“ÁŽê”\—Í‚ðŽ‚Á‚Ä‚¢‚È‚¢I"); return 0; } @@ -531,29 +566,50 @@ int enter_explore_mode(VOID_ARGS) { if (wizard) { +/*JP You("are in debug mode."); +*/ + You("‚·‚łɃfƒoƒbƒOƒ‚[ƒh‚¾D"); } else if (discover) { +/*JP You("are already in explore mode."); +*/ + You("‚·‚Å‚É’TŒŸƒ‚[ƒh‚¾D"); } else { #ifdef SYSCF #if defined(UNIX) if (!sysopt.explorers || !sysopt.explorers[0] || !check_user_string(sysopt.explorers)) { +/*JP You("cannot access explore mode."); +*/ + You("’TŒŸƒ‚[ƒh‚ɃAƒNƒZƒX‚Å‚«‚È‚¢D"); return 0; } #endif #endif pline( +/*JP "Beware! From explore mode there will be no return to normal game."); +*/ + "ŒxI”­Œ©ƒ‚[ƒh‚É“ü‚Á‚½‚ç’ʏ탂[ƒh‚É‚Í–ß‚ê‚È‚¢D"); if (paranoid_query(ParanoidQuit, +/*JP "Do you want to enter explore mode?")) { +*/ + "”­Œ©ƒ‚[ƒh‚Ɉڂè‚Ü‚·‚©H")) { clear_nhwindow(WIN_MESSAGE); +/*JP You("are now in non-scoring explore mode."); +*/ + You("ƒXƒRƒA‚ª‚Ì‚ç‚È‚¢”­Œ©ƒ‚[ƒh‚Ɉڍs‚µ‚½D"); discover = TRUE; } else { clear_nhwindow(WIN_MESSAGE); +/*JP pline("Resuming normal game."); +*/ + pline("’ʏ탂[ƒh‚𑱂¯‚éD"); } } return 0; @@ -581,7 +637,10 @@ wiz_wish(VOID_ARGS) /* Unlimited wishes for debug mode by Paul Polderman */ flags.verbose = save_verbose; (void) encumber_msg(); } else +/*JP pline("Unavailable command '%s'.", +*/ + pline("'%s'ƒRƒ}ƒ“ƒh‚ÍŽg‚¦‚È‚¢D", visctrl((int) cmd_from_func(wiz_wish))); return 0; } @@ -596,7 +655,10 @@ wiz_identify(VOID_ARGS) identify_pack(0, FALSE); iflags.override_ID = 0; } else +/*JP pline("Unavailable command '%s'.", +*/ + pline("'%s'ƒRƒ}ƒ“ƒh‚ÍŽg‚¦‚È‚¢D", visctrl((int) cmd_from_func(wiz_identify))); return 0; } @@ -618,7 +680,10 @@ wiz_map(VOID_ARGS) HConfusion = save_Hconf; HHallucination = save_Hhallu; } else +/*JP pline("Unavailable command '%s'.", +*/ + pline("'%s'ƒRƒ}ƒ“ƒh‚ÍŽg‚¦‚È‚¢D", visctrl((int) cmd_from_func(wiz_map))); return 0; } @@ -630,7 +695,10 @@ wiz_genesis(VOID_ARGS) if (wizard) (void) create_particular(); else +/*JP pline("Unavailable command '%s'.", +*/ + pline("'%s'ƒRƒ}ƒ“ƒh‚ÍŽg‚¦‚È‚¢D", visctrl((int) cmd_from_func(wiz_genesis))); return 0; } @@ -642,7 +710,10 @@ wiz_where(VOID_ARGS) if (wizard) (void) print_dungeon(FALSE, (schar *) 0, (xchar *) 0); else +/*JP pline("Unavailable command '%s'.", +*/ + pline("'%s'ƒRƒ}ƒ“ƒh‚ÍŽg‚¦‚È‚¢D", visctrl((int) cmd_from_func(wiz_where))); return 0; } @@ -654,7 +725,10 @@ wiz_detect(VOID_ARGS) if (wizard) (void) findit(); else +/*JP pline("Unavailable command '%s'.", +*/ + pline("'%s'ƒRƒ}ƒ“ƒh‚ÍŽg‚¦‚È‚¢D", visctrl((int) cmd_from_func(wiz_detect))); return 0; } @@ -666,7 +740,10 @@ wiz_level_tele(VOID_ARGS) if (wizard) level_tele(); else +/*JP pline("Unavailable command '%s'.", +*/ + pline("'%s'ƒRƒ}ƒ“ƒh‚ÍŽg‚¦‚È‚¢D", visctrl((int) cmd_from_func(wiz_level_tele))); return 0; } @@ -676,8 +753,13 @@ STATIC_PTR int wiz_mon_polycontrol(VOID_ARGS) { iflags.mon_polycontrol = !iflags.mon_polycontrol; +#if 0 /*JP*/ pline("Monster polymorph control is %s.", iflags.mon_polycontrol ? "on" : "off"); +#else + pline("‰ö•¨‚̕ω»§Œä: %s", + iflags.mon_polycontrol ? "ƒIƒ“" : "ƒIƒt"); +#endif return 0; } @@ -689,7 +771,10 @@ wiz_level_change(VOID_ARGS) int newlevel; int ret; +/*JP getlin("To what experience level do you want to be set?", buf); +*/ + getlin("ŒoŒ±ƒŒƒxƒ‹‚ð‚¢‚­‚‚ɐݒ肵‚Ü‚·‚©H", buf); (void) mungspaces(buf); if (buf[0] == '\033' || buf[0] == '\0') ret = 0; @@ -701,19 +786,31 @@ wiz_level_change(VOID_ARGS) return 0; } if (newlevel == u.ulevel) { +/*JP You("are already that experienced."); +*/ + You("‚·‚Å‚É‚»‚ÌŒoŒ±ƒŒƒxƒ‹‚¾D"); } else if (newlevel < u.ulevel) { if (u.ulevel == 1) { +/*JP You("are already as inexperienced as you can get."); +*/ + You("‚·‚łɉ”\‚ÈŒÀ‚è‚̍Œá‚ÌŒoŒ±ƒŒƒxƒ‹‚¾D"); return 0; } if (newlevel < 1) newlevel = 1; while (u.ulevel > newlevel) +/*JP losexp("#levelchange"); +*/ + losexp("#levelchangeƒRƒ}ƒ“ƒh‚Å"); } else { if (u.ulevel >= MAXULEV) { +/*JP You("are already as experienced as you can get."); +*/ + You("‚·‚łɉ”\‚ÈŒÀ‚è‚̍őå‚ÌŒoŒ±ƒŒƒxƒ‹‚¾D"); return 0; } if (newlevel > MAXULEV) @@ -729,7 +826,10 @@ wiz_level_change(VOID_ARGS) STATIC_PTR int wiz_panic(VOID_ARGS) { +/*JP if (yn("Do you want to call panic() and end your game?") == 'y') +*/ + if (yn("panic()ŠÖ”‚ðŒÄ‚яo‚µ‚ăQ[ƒ€‚ðI—¹‚³‚¹‚Ü‚·‚©H") == 'y') panic("Crash test."); return 0; } @@ -1190,22 +1290,53 @@ doterrain(VOID_ARGS) /* -enlightenment and conduct- */ static winid en_win = WIN_ERR; +#if 0 /*JP*/ static const char You_[] = "You ", are[] = "are ", were[] = "were ", have[] = "have ", had[] = "had ", can[] = "can ", could[] = "could "; +#else +static const char You_[] = "‚ ‚È‚½‚Í", + are[] = "‚Å‚ ‚é", were[] = "‚Å‚ ‚Á‚½", + have[] = "‚ð‚à‚Á‚Ä‚¢‚é", had[] = "‚ð‚à‚Á‚Ä‚¢‚½", + can[] = "‚Å‚«‚é", could[] = "‚Å‚«‚½", + iru[] = "‚¢‚é", ita[] = "‚¢‚½"; +#endif +#if 0 /*JP*//* not used */ static const char have_been[] = "have been ", have_never[] = "have never ", never[] = "never "; +#endif +#if 0 /*JP*/ #define enl_msg(prefix, present, past, suffix, ps) \ enlght_line(prefix, final ? past : present, suffix, ps) +#else +#define enl_msg(prefix, present, past, suffix, ps) \ + enlght_line(prefix, suffix, final ? past : present, ps) +#endif #define you_are(attr, ps) enl_msg(You_, are, were, attr, ps) #define you_have(attr, ps) enl_msg(You_, have, had, attr, ps) #define you_can(attr, ps) enl_msg(You_, can, could, attr, ps) +/*JP #define you_have_been(goodthing) enl_msg(You_, have_been, were, goodthing, "") +*/ +#define you_have_been(goodthing) enl_msg(You_, are, were, goodthing, "") +#if 0 /*JP*/ #define you_have_never(badthing) \ enl_msg(You_, have_never, never, badthing, "") +#else +#define you_have_never(badthing) \ + enl_msg(badthing, "‚Ä‚¢‚È‚¢", "‚È‚©‚Á‚½", "", "") +#endif +#if 0 /*JP*/ #define you_have_X(something) \ enl_msg(You_, have, (const char *) "", something, "") +#else +#define you_have_X(something) \ + enl_msg(something, "‚Ä‚¢‚é", "‚½", "", "") +#endif +#if 1 /*JP*/ +#define you_are_ing(goodthing) enl_msg(You_, iru, ita, goodthing, "") +#endif static void enlght_line(start, middle, end, ps) @@ -1213,7 +1344,10 @@ const char *start, *middle, *end, *ps; { char buf[BUFSZ]; +/*JP Sprintf(buf, " %s%s%s%s.", start, middle, end, ps); +*/ + Sprintf(buf, "%s%s%s%sD", start, middle, end, ps); putstr(en_win, 0, buf); } @@ -1236,21 +1370,42 @@ char *outbuf; absamt = (absamt * 2) / 3; if (absamt <= 3) +/*JP modif = "small"; +*/ + modif = "‹Í‚©‚È"; else if (absamt <= 6) +/*JP modif = "moderate"; +*/ + modif = "’†’ö“x‚Ì"; else if (absamt <= 12) +/*JP modif = "large"; +*/ + modif = "‘å‚«‚È"; else +/*JP modif = "huge"; +*/ + modif = "‹­‘å‚È"; +#if 0 /*JP*/ modif = !incamt ? "no" : an(modif); /* ("no" case shouldn't happen) */ +#endif +/*JP bonus = (incamt >= 0) ? "bonus" : "penalty"; +*/ + bonus = (incamt > 0) ? "ƒ{[ƒiƒX" : "ƒyƒiƒ‹ƒeƒB"; /* "bonus " (to hit) vs " bonus" (damage, defense) */ invrt = strcmp(inctyp, "to hit") ? TRUE : FALSE; +#if 0 /*JP*/ Sprintf(outbuf, "%s %s %s", modif, invrt ? inctyp : bonus, invrt ? bonus : inctyp); +#else + Sprintf(outbuf, "%s‚É%s%s", inctyp, modif, bonus); +#endif if (final || wizard) Sprintf(eos(outbuf), " (%s%d)", (incamt > 0) ? "+" : "", incamt); @@ -1340,10 +1495,18 @@ int final; /* ENL_GAMEINPROGRESS:0, ENL_GAMEOVERALIVE, ENL_GAMEOVERDEAD */ *tmpbuf = highc(*tmpbuf); /* same adjustment as bottom line */ /* as in background_enlightenment, when poly'd we need to use the saved gender in u.mfemale rather than the current you-as-monster gender */ +#if 0 /*JP*/ Sprintf(buf, "%s the %s's attributes:", tmpbuf, ((Upolyd ? u.mfemale : flags.female) && urole.name.f) ? urole.name.f : urole.name.m); +#else + Sprintf(buf, "%s‚Ì%s‚Ì‘®«:", + ((Upolyd ? u.mfemale : flags.female) && urole.name.f) + ? urole.name.f + : urole.name.m, + tmpbuf); +#endif en_win = create_nhwindow(NHW_MENU); /* title */ @@ -1390,7 +1553,10 @@ int final; rank_titl = rank_of(u.ulevel, Role_switch, innategend); putstr(en_win, 0, ""); /* separator after title */ +/*JP putstr(en_win, 0, "Background:"); +*/ + putstr(en_win, 0, "”wŒiî•ñ:"); /* if polymorphed, report current shape before underlying role; will be repeated as first status: "you are transformed" and also @@ -1404,7 +1570,10 @@ int final; tmpbuf[0] = '\0'; /* here we always use current gender, not saved role gender */ if (!is_male(uasmon) && !is_female(uasmon) && !is_neuter(uasmon)) +/*JP Sprintf(tmpbuf, "%s ", genders[flags.female ? 1 : 0].adj); +*/ + Sprintf(tmpbuf, "%s", genders[flags.female ? 1 : 0].adj); Sprintf(buf, "%sin %s%s form", !final ? "currently " : "", tmpbuf, uasmon->mname); you_are(buf, ""); @@ -1415,21 +1584,35 @@ int final; if (!urole.name.f && ((urole.allow & ROLE_GENDMASK) == (ROLE_MALE | ROLE_FEMALE) || innategend != flags.initgend)) +/*JP Sprintf(tmpbuf, "%s ", genders[innategend].adj); +*/ + Sprintf(tmpbuf, "%s", genders[innategend].adj); buf[0] = '\0'; if (Upolyd) Strcpy(buf, "actually "); /* "You are actually a ..." */ if (!strcmpi(rank_titl, role_titl)) { /* omit role when rank title matches it */ +#if 0 /*JP*/ Sprintf(eos(buf), "%s, level %d %s%s", an(rank_titl), u.ulevel, tmpbuf, urace.noun); +#else + Sprintf(eos(buf), "ƒŒƒxƒ‹%d‚Ì%s‚Ì%s%s", u.ulevel, + tmpbuf, urace.adj, role_titl); +#endif } else { +#if 0 /*JP*/ Sprintf(eos(buf), "%s, a level %d %s%s %s", an(rank_titl), u.ulevel, tmpbuf, urace.adj, role_titl); +#else + Sprintf(eos(buf), "ƒŒƒxƒ‹%d‚Ì%s‚Ì%s%s‚Ì%s", u.ulevel, + tmpbuf, urace.adj, role_titl, rank_titl); +#endif } you_are(buf, ""); /* report alignment (bypass you_are() in order to omit ending period) */ +#if 0 /*JP*/ Sprintf(buf, " %s%s%s, %son a mission for %s", You_, !final ? are : were, align_str(u.ualign.type), @@ -1442,22 +1625,60 @@ int final; /* lastly, normal case */ : "", u_gname()); +#else + Sprintf(buf, " ‚ ‚È‚½‚Í%s‚Å, %s%s‚Ì‚½‚ß‚Ì”C–±‚ðs‚Á‚Ä%s", + align_str(u.ualign.type), + /* helm of opposite alignment (might hide conversion) */ + (u.ualign.type != u.ualignbase[A_CURRENT]) ? "ˆêŽž“I‚É" + /* permanent conversion */ + : (u.ualign.type != u.ualignbase[A_ORIGINAL]) ? "Œ»Ý" + /* atheist (ignored in very early game) */ + : (!u.uconduct.gnostic && moves > 1000L) ? "–¼‹`ã" + /* lastly, normal case */ + : "", + u_gname(), !final ? iru : ita); +#endif putstr(en_win, 0, buf); /* show the rest of this game's pantheon (finishes previous sentence) [appending "also Moloch" at the end would allow for straightforward trailing "and" on all three aligned entries but looks too verbose] */ +#if 0 /*JP*/ Sprintf(buf, " who %s opposed by", !final ? "is" : "was"); +#else + Strcpy(buf, "‚ ‚È‚½‚Í"); +#endif if (u.ualign.type != A_LAWFUL) +#if 0 /*JP*/ Sprintf(eos(buf), " %s (%s) and", align_gname(A_LAWFUL), align_str(A_LAWFUL)); +#else + Sprintf(eos(buf), "%s(%s)‚¨‚æ‚Ñ", align_gname(A_LAWFUL), + align_str(A_LAWFUL)); +#endif if (u.ualign.type != A_NEUTRAL) +#if 0 /*JP*/ Sprintf(eos(buf), " %s (%s)%s", align_gname(A_NEUTRAL), align_str(A_NEUTRAL), (u.ualign.type != A_CHAOTIC) ? " and" : ""); +#else + Sprintf(eos(buf), "%s(%s)%s", align_gname(A_NEUTRAL), + align_str(A_NEUTRAL), + (u.ualign.type != A_CHAOTIC) ? "‚¨‚æ‚Ñ" : ""); +#endif +#if 0 /*JP*/ if (u.ualign.type != A_CHAOTIC) Sprintf(eos(buf), " %s (%s)", align_gname(A_CHAOTIC), align_str(A_CHAOTIC)); +#else + if (u.ualign.type != A_CHAOTIC) + Sprintf(eos(buf), "%s(%s)", align_gname(A_CHAOTIC), + align_str(A_CHAOTIC)); +#endif +#if 0 /*JP*/ Strcat(buf, "."); /* terminate sentence */ +#else + Sprintf(eos(buf), "‚ƑΗ§‚µ‚Ä%sD", !final ? iru : ita); +#endif putstr(en_win, 0, buf); /* show original alignment,gender,race,role if any have been changed; @@ -1490,7 +1711,10 @@ int final; { putstr(en_win, 0, ""); /* separator after background */ putstr(en_win, 0, +/*JP final ? "Final Characteristics:" : "Current Characteristics:"); +*/ + final ? "ÅI‘®«F" : "Œ»Ý‚Ì‘®«F"); /* bottom line order */ one_characteristic(mode, final, A_STR); /* strength */ @@ -1895,36 +2119,77 @@ int final; putstr(en_win, 0, final ? "Final Attributes:" : "Current Attributes:"); if (u.uevent.uhand_of_elbereth) { +#if 0 /*JP*/ static const char *const hofe_titles[3] = { "the Hand of Elbereth", "the Envoy of Balance", "the Glory of Arioch" }; +#else + static const char *const hofe_titles[3] = { "ƒGƒ‹ƒxƒŒƒX‚ÌŒäŽè", + "’²˜a‚ÌŽgŽÒ", + "ƒAƒŠƒIƒbƒ`‚Ì–¼—_" }; +#endif you_are(hofe_titles[u.uevent.uhand_of_elbereth - 1], ""); } /* note: piousness 20 matches MIN_QUEST_ALIGN (quest.h) */ if (u.ualign.record >= 20) +/*JP you_are("piously aligned", ""); +*/ + you_have("Œhåi‚ȐM‹ÂS", ""); else if (u.ualign.record > 13) +/*JP you_are("devoutly aligned", ""); +*/ + you_have("S‚©‚ç‚̐M‹ÂS", ""); else if (u.ualign.record > 8) +/*JP you_are("fervently aligned", ""); +*/ + you_have("”MS‚ȐM‹ÂS", ""); else if (u.ualign.record > 3) +/*JP you_are("stridently aligned", ""); +*/ + you_have("‚¨‚¨‚°‚³‚ȐM‹ÂS", ""); else if (u.ualign.record == 3) +/*JP you_are("aligned", ""); +*/ + you_have("•’ʂ̐M‹ÂS", ""); else if (u.ualign.record > 0) +/*JP you_are("haltingly aligned", ""); +*/ + you_have("çSçO‚µ‚È‚ª‚ç‚àM‹ÂS", ""); else if (u.ualign.record == 0) +/*JP you_are("nominally aligned", ""); +*/ + you_have("Œ`‚¾‚¯‚̐M‹ÂS", ""); else if (u.ualign.record >= -3) +/*JP you_have("strayed", ""); +*/ + you_are_ing("M‹Â‚É–À‚¢‚ð‚à‚Á‚Ä"); else if (u.ualign.record >= -8) +/*JP you_have("sinned", ""); +*/ + you_are_ing("ß‚𕉂Á‚Ä"); else +/*JP you_have("transgressed", ""); +*/ + you_are_ing("M‹Â‚©‚çˆí’E‚µ‚Ä"); if (wizard) { +#if 0 /*JP*/ Sprintf(buf, " %d", u.ualign.record); enl_msg("Your alignment ", "is", "was", buf, ""); +#else + Sprintf(buf, "‚ ‚È‚½‚Ì‘®«’l‚Í%d", u.ualign.record); + enl_msg(buf, "‚Å‚ ‚é", "‚¾‚Á‚½", "", ""); +#endif } /*** Resistances to troubles ***/ @@ -2232,6 +2497,7 @@ int final; * resulting in a false claim that you could have prayed safely. */ if (!final) { +#if 0 /*JP*/ #if 0 /* "can [not] safely pray" vs "could [not] have safely prayed" */ Sprintf(buf, "%s%ssafely pray%s", can_pray(FALSE) ? "" : "not ", @@ -2242,6 +2508,13 @@ int final; if (wizard) Sprintf(eos(buf), " (%d)", u.ublesscnt); you_can(buf, ""); +#else /*JP*/ + Sprintf(buf, "‚ ‚È‚½‚͈À‘S‚É‹F‚邱‚Æ‚ª"); + Strcat(buf, can_pray(FALSE) ? can : "‚Å‚«‚È‚¢"); + if (wizard) + Sprintf(eos(buf), " (%d)", u.ublesscnt); + enl_msg(buf, "", "", "", ""); +#endif } } @@ -2266,39 +2539,67 @@ int final; buf[0] = '\0'; if (final < 2) { /* still in progress, or quit/escaped/ascended */ +/*JP p = "survived after being killed "; +*/ + p = "Ž€‚ñ‚¾Œã•œŠˆ‚µ‚Ä‚¢‚½"; switch (u.umortality) { case 0: +/*JP p = !final ? (char *) 0 : "survived"; +*/ + p = !final ? (char *)0 : "¶‚«‰„‚Ñ‚½"; break; case 1: +/*JP Strcpy(buf, "once"); +*/ + Strcpy(buf, "ˆê“x"); break; case 2: +/*JP Strcpy(buf, "twice"); +*/ + Strcpy(buf, "“ñ“x"); break; case 3: +/*JP Strcpy(buf, "thrice"); +*/ + Strcpy(buf, "ŽO“x"); break; default: +/*JP Sprintf(buf, "%d times", u.umortality); +*/ + Sprintf(buf, "%d‰ñ", u.umortality); break; } } else { /* game ended in character's death */ +/*JP p = "are dead"; +*/ + p = "Ž€‚ñ‚Å‚¢‚é"; switch (u.umortality) { case 0: impossible("dead without dying?"); case 1: break; /* just "are dead" */ default: +#if 0 /*JP*/ Sprintf(buf, " (%d%s time!)", u.umortality, ordin(u.umortality)); +#else + Sprintf(buf, "(%d‰ñI)", u.umortality); +#endif break; } } if (p) +/*JP enl_msg(You_, "have been killed ", p, buf, ""); +*/ + enl_msg(You_, "Ž€‚ñ‚Å‚¢‚é", p, buf, ""); } } @@ -2507,77 +2808,153 @@ int final; /* Create the conduct window */ en_win = create_nhwindow(NHW_MENU); +/*JP putstr(en_win, 0, "Voluntary challenges:"); +*/ + putstr(en_win, 0, "Ž©”­“I’§í:"); if (u.uroleplay.blind) +/*JP you_have_been("blind from birth"); +*/ + you_have_been("¶‚Ü‚ê‚È‚ª‚ç‚É–Ó–Ú"); if (u.uroleplay.nudist) +/*JP you_have_been("faithfully nudist"); +*/ + you_have_been("’‰ŽÀ‚È—‡‘°"); if (!u.uconduct.food) +/*JP enl_msg(You_, "have gone", "went", " without food", ""); +*/ + enl_msg("‚ ‚È‚½‚͐HŽ–‚ð‚µ", "‚Ä‚¢‚È‚¢", "‚È‚©‚Á‚½", "", ""); /* But beverages are okay */ else if (!u.uconduct.unvegan) +/*JP you_have_X("followed a strict vegan diet"); +*/ + you_have_been("ŒµŠi‚ȍؐHŽå‹`ŽÒ"); else if (!u.uconduct.unvegetarian) +/*JP you_have_been("vegetarian"); +*/ + you_have_been("ØHŽå‹`ŽÒ"); if (!u.uconduct.gnostic) +/*JP you_have_been("an atheist"); +*/ + you_have_been("–³_˜_ŽÒ"); if (!u.uconduct.weaphit) { +/*JP you_have_never("hit with a wielded weapon"); +*/ + you_have_never("‚ ‚È‚½‚Í‘•”õ‚µ‚Ä‚¢‚镐Ší‚ōUŒ‚‚µ"); } else if (wizard) { +#if 0 /*JP*/ Sprintf(buf, "used a wielded weapon %ld time%s", u.uconduct.weaphit, plur(u.uconduct.weaphit)); you_have_X(buf); +#else + Sprintf(buf, "‚ ‚È‚½‚Í%ld‰ñ‘•”õ‚µ‚½•Ší‚ðŽg—p‚µ", u.uconduct.weaphit); + you_have_X(buf); +#endif } if (!u.uconduct.killer) +/*JP you_have_been("a pacifist"); +*/ + you_have_been("•½˜aŽå‹`ŽÒ"); if (!u.uconduct.literate) { +/*JP you_have_been("illiterate"); +*/ + you_have_never("‚ ‚È‚½‚͓ǂݏ‘‚«‚µ"); } else if (wizard) { +#if 0 /*JP*/ Sprintf(buf, "read items or engraved %ld time%s", u.uconduct.literate, plur(u.uconduct.literate)); you_have_X(buf); +#else + Sprintf(buf, "%ld‰ñ“Ç‚ñ‚¾‚菑‚¢‚½‚肵", u.uconduct.literate); + you_have_X(buf); +#endif } ngenocided = num_genocides(); if (ngenocided == 0) { +/*JP you_have_never("genocided any monsters"); +*/ + you_have_never("‚ ‚È‚½‚͉ö•¨‚ð‹sŽE‚µ"); } else { +#if 0 /*JP*/ Sprintf(buf, "genocided %d type%s of monster%s", ngenocided, plur(ngenocided), plur(ngenocided)); you_have_X(buf); +#else + Sprintf(buf, "%dŽí‚̉ö•¨‚ð‹sŽE‚µ", ngenocided); + you_have_X(buf); +#endif } if (!u.uconduct.polypiles) { +/*JP you_have_never("polymorphed an object"); +*/ + you_have_never("‚ ‚È‚½‚Í•¨‘Ì‚ð•Ï‰»‚³‚¹"); } else if (wizard) { +#if 0 /*JP*/ Sprintf(buf, "polymorphed %ld item%s", u.uconduct.polypiles, plur(u.uconduct.polypiles)); you_have_X(buf); +#else + Sprintf(buf, "%ldŒÂ‚Ì“¹‹ï‚ð•Ï‰»‚³‚¹", u.uconduct.polypiles); + you_have_X(buf); +#endif } if (!u.uconduct.polyselfs) { +/*JP you_have_never("changed form"); +*/ + you_have_never("‚ ‚È‚½‚͕ω»‚µ"); } else if (wizard) { +#if 0 /*JP*/ Sprintf(buf, "changed form %ld time%s", u.uconduct.polyselfs, plur(u.uconduct.polyselfs)); you_have_X(buf); +#else + Sprintf(buf, "%ld‰ñŽp‚ð•Ï‚¦", u.uconduct.polyselfs); + you_have_X(buf); +#endif } if (!u.uconduct.wishes) { +/*JP you_have_X("used no wishes"); +*/ + you_have_never("‚ ‚È‚½‚ÍŠè‚¢Ž–‚ð‚µ"); } else { +#if 0 /*JP*/ Sprintf(buf, "used %ld wish%s", u.uconduct.wishes, (u.uconduct.wishes > 1L) ? "es" : ""); you_have_X(buf); +#else + Sprintf(buf, "%ld‰ñŠè‚¢Ž–‚ð‚µ", u.uconduct.wishes); + you_have_X(buf); +#endif if (!u.uconduct.wisharti) +#if 0 /*JP*/ enl_msg(You_, "have not wished", "did not wish", " for any artifacts", ""); +#else + enl_msg("‚ ‚È‚½‚͐¹Ší‚ðŠè", "‚Á‚Ä‚¢‚È‚¢", "‚í‚È‚©‚Á‚½", "", ""); +#endif } /* Pop up the window and wait for a key */ @@ -2662,7 +3039,10 @@ static const struct func_tab cmdlist[] = { { 'R', FALSE, doremring }, { M('r'), FALSE, dorub }, { M('R'), FALSE, doride }, /* #ride */ +/*JP { 's', TRUE, dosearch, "searching" }, +*/ + { 's', TRUE, dosearch, "‘{‚·" }, { 'S', TRUE, dosave }, { M('s'), FALSE, dosit }, { 't', FALSE, dothrow }, @@ -2692,8 +3072,14 @@ static const struct func_tab cmdlist[] = { #ifdef SHELL { '!', TRUE, dosh }, #endif +/*JP { '.', TRUE, donull, "waiting" }, +*/ + { '.', TRUE, donull, "‹xŒe‚·‚é" }, +/*JP { ' ', TRUE, donull, "waiting" }, +*/ + { ' ', TRUE, donull, "‹xŒe‚·‚é" }, { ',', FALSE, dopickup }, { ':', TRUE, dolook }, { ';', TRUE, doquickwhatis }, @@ -2716,37 +3102,125 @@ static const struct func_tab cmdlist[] = { }; struct ext_func_tab extcmdlist[] = { +/*JP { "adjust", "adjust inventory letters", doorganize, TRUE }, +*/ + { "adjust", "Ž‚¿•¨ˆê——‚Ì’²®", doorganize, TRUE }, +/*JP { "annotate", "name current level", donamelevel, TRUE }, +*/ + { "annotate", "Œ»Ý‚ÌŠK‚É–¼‘O‚ð‚‚¯‚é", donamelevel, TRUE }, +#if 0 /*JP*/ { "chat", "talk to someone", dotalk, TRUE }, /* converse? */ +#else + { "chat", "’N‚©‚Ƙb‚·", dotalk, TRUE }, /* converse? */ +#endif +#if 0 /*JP*/ { "conduct", "list voluntary challenges you have maintained", doconduct, TRUE }, +#else + { "conduct", "‚Ç‚¤‚¢‚¤s“®‚ð‚Æ‚Á‚½‚©Œ©‚é", doconduct, TRUE }, +#endif +/*JP { "dip", "dip an object into something", dodip, FALSE }, +*/ + { "dip", "‰½‚©‚É•¨‚ðZ‚·", dodip, FALSE }, +#if 0 /*JP*/ { "enhance", "advance or check weapon and spell skills", enhance_weapon_skill, TRUE }, +#else + { "enhance", "•Šín—û“x‚ð‚‚ß‚é", enhance_weapon_skill, TRUE }, +#endif +/*JP { "exploremode", "enter explore mode", enter_explore_mode, TRUE }, +*/ + { "exploremode", "’TŒŸƒ‚[ƒh‚É“ü‚é", enter_explore_mode, TRUE }, +/*JP { "force", "force a lock", doforce, FALSE }, +*/ + { "force", "Œ®‚ð‚±‚¶‚ ‚¯‚é", doforce, FALSE }, +/*JP { "invoke", "invoke an object's powers", doinvoke, TRUE }, +*/ + { "invoke", "•¨‚Ì“Á•Ê‚È—Í‚ðŽg‚¤", doinvoke, TRUE }, +/*JP { "jump", "jump to a location", dojump, FALSE }, +*/ + { "jump", "‘¼‚̈ʒu‚É”ò‚Ñ‚¤‚‚é", dojump, FALSE }, +/*JP { "loot", "loot a box on the floor", doloot, FALSE }, +*/ + { "loot", "°‚̏ã‚Ì” ‚ðŠJ‚¯‚é", doloot, TRUE }, +/*JP { "monster", "use a monster's special ability", domonability, TRUE }, +*/ + { "monster", "‰ö•¨‚Ì“Á•Ê”\—Í‚ðŽg‚¤", domonability, TRUE }, +/*JP { "name", "name a monster or an object", docallcmd, TRUE }, +*/ + { "name", "ƒAƒCƒeƒ€‚╨‚É–¼‘O‚ð‚‚¯‚é", docallcmd, TRUE }, +/*JP { "offer", "offer a sacrifice to the gods", dosacrifice, FALSE }, +*/ + { "offer", "_‚É‹Ÿ•¨‚ð•ù‚°‚é", dosacrifice, FALSE }, +/*JP { "overview", "show an overview of the dungeon", dooverview, TRUE }, +*/ + { "overview", "–À‹{‚ÌŠT—v‚ð•\Ž¦‚·‚é", dooverview, TRUE }, +/*JP { "pray", "pray to the gods for help", dopray, TRUE }, +*/ + { "pray", "_‚É‹F‚é", dopray, TRUE }, +/*JP { "quit", "exit without saving current game", done2, TRUE }, +*/ + { "quit", "ƒZ[ƒu‚µ‚È‚¢‚ŏI—¹", done2, TRUE }, +/*JP { "ride", "ride (or stop riding) a monster", doride, FALSE }, +*/ + { "ride", "‰ö•¨‚ɏæ‚é(‚Ü‚½‚͍~‚è‚é)", doride, FALSE }, +/*JP { "rub", "rub a lamp or a stone", dorub, FALSE }, +*/ + { "rub", "ƒ‰ƒ“ƒv‚ð‚±‚·‚é", dorub, FALSE }, +/*JP { "sit", "sit down", dosit, FALSE }, +*/ + { "sit", "À‚é", dosit, FALSE }, +/*JP { "terrain", "show map without obstructions", doterrain, TRUE }, +*/ + { "terrain", "Ž×–‚‚³‚ꂸ‚É’n}‚ðŒ©‚é", doterrain, TRUE }, +/*JP { "tip", "empty a container", dotip, FALSE }, +*/ + { "tip", "“ü‚ꕨ‚ð‹ó‚É‚·‚é", dotip, FALSE }, +/*JP { "turn", "turn undead", doturn, TRUE }, +*/ + { "turn", "ƒAƒ“ƒfƒbƒg‚ð“y‚É•Ô‚·", doturn, TRUE }, +/*JP { "twoweapon", "toggle two-weapon combat", dotwoweapon, FALSE }, +*/ + { "twoweapon", "—¼ŽèŽ‚¿‚̐؂è‘Ö‚¦", dotwoweapon, FALSE }, +/*JP { "untrap", "untrap something", dountrap, FALSE }, +*/ + { "untrap", "㩂ð‚Í‚¸‚·", dountrap, FALSE }, +#if 0 /*JP*/ { "version", "list compile time options for this version of NetHack", doextversion, TRUE }, +#else + { "version", "ƒRƒ“ƒpƒCƒ‹Žž‚̃IƒvƒVƒ‡ƒ“‚ð•\Ž¦‚·‚é", doextversion, TRUE }, +#endif +/*JP { "wipe", "wipe off your face", dowipe, FALSE }, +*/ + { "wipe", "Šç‚ð@‚¤", dowipe, FALSE }, +/*JP { "?", "get this list of extended commands", doextlist, TRUE }, +*/ + { "?", "‚±‚ÌŠg’£ƒRƒ}ƒ“ƒhˆê——‚ð•\Ž¦‚·‚é", doextlist, TRUE }, /* * There must be a blank entry here for every entry in the table * below. @@ -3409,7 +3883,10 @@ register char *cmd; if ((tlist = Cmd.commands[*cmd & 0xff]) != 0) { #endif if (u.uburied && !tlist->can_if_buried) { +/*JP You_cant("do that while you are buried!"); +*/ + You("–„‚Ü‚Á‚Ä‚¢‚鎞‚É‚»‚ñ‚È‚±‚Æ‚Í‚Å‚«‚È‚¢I"); res = 0; } else { /* we discard 'const' because some compilers seem to have @@ -3448,8 +3925,14 @@ register char *cmd; } *cp = '\0'; if (!prefix_seen || !iflags.cmdassist +/*JP || !help_dir(0, "Invalid direction key!")) +*/ + || !help_dir(0, "–³Œø‚È•ûŒüŽw’è‚Å‚·I")) +/*JP Norep("Unknown command '%s'.", expcmd); +*/ + Norep("'%s'ƒRƒ}ƒ“ƒhH", expcmd); } /* didn't move */ context.move = FALSE; @@ -3565,7 +4048,10 @@ retry: if (in_doagain || *readchar_queue) dirsym = readchar(); else +/*JP dirsym = yn_function((s && *s != '^') ? s : "In what direction?", +*/ + dirsym = yn_function((s && *s != '^') ? s : "‚Ç‚Ì•ûŒüH", (char *) 0, '\0'); /* remove the prompt string so caller won't have to */ clear_nhwindow(WIN_MESSAGE); @@ -3587,16 +4073,25 @@ retry: did_help = help_dir((s && *s == '^') ? dirsym : 0, help_requested ? (const char *) 0 +/*JP : "Invalid direction key!"); +*/ + : "–³Œø‚È•ûŒüŽw’è‚Å‚·I"); if (help_requested) goto retry; } if (!did_help) +/*JP pline("What a strange direction!"); +*/ + pline("‚¸‚¢‚Ô‚ñ‚ÆŠï–­‚È•ûŒü‚¾I"); } return 0; } else if (is_mov && !dxdy_moveok()) { +/*JP You_cant("orient yourself that direction."); +*/ + You_cant("Œü‚«‚ÉŽ©•ªŽ©g‚ðŽw’è‚Å‚«‚È‚¢D"); return 0; } if (!u.dz && (Stunned || (Confusion && !rn2(5)))) @@ -3673,7 +4168,10 @@ const char *msg; /* non-null msg means that this wasn't an explicit user request */ putstr(win, 0, ""); putstr(win, 0, +/*JP "(Suppress this message with !cmdassist in config file.)"); +*/ + "(‚±‚̃ƒbƒZ[ƒW‚ð•\Ž¦‚µ‚½‚­‚È‚¢ê‡‚͐ݒèƒtƒ@ƒCƒ‹‚É !cmdassist ‚ðÝ’肵‚Ä‚­‚¾‚³‚¢D)"); } display_nhwindow(win, FALSE); destroy_nhwindow(win); @@ -3858,7 +4356,10 @@ parse() multi = LARGEST_INT; if (multi > 9) { clear_nhwindow(WIN_MESSAGE); +/*JP Sprintf(in_line, "Count: %d", multi); +*/ + Sprintf(in_line, "”: %d", multi); pline1(in_line); mark_synch(); } @@ -4042,8 +4543,14 @@ dotravel(VOID_ARGS) cc.x = u.ux; cc.y = u.uy; } +/*JP pline("Where do you want to travel to?"); +*/ + pline("‚Ç‚±‚Ɉړ®‚·‚éH"); +/*JP if (getpos(&cc, TRUE, "the desired destination") < 0) { +*/ + if (getpos(&cc, TRUE, "ˆÚ“®æ") < 0) { /* user pressed ESC */ return 0; } diff --git a/src/dbridge.c b/src/dbridge.c index 7d6bda3..8bc8b2e 100644 --- a/src/dbridge.c +++ b/src/dbridge.c @@ -17,6 +17,11 @@ * seems like an awful lot of effort for very little gain.) */ +/* 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" STATIC_DCL void FDECL(get_wall_for_db, (int *, int *)); @@ -372,7 +377,10 @@ STATIC_OVL const char * e_nam(etmp) struct entity *etmp; { +/*JP return is_u(etmp) ? "you" : mon_nam(etmp->emon); +*/ + return is_u(etmp) ? "‚ ‚È‚½" : mon_nam(etmp->emon); } /* @@ -387,6 +395,10 @@ const char *verb; { static char wholebuf[80]; +#if 1 /*JP*/ + Strcpy(wholebuf, is_u(etmp) ? "‚ ‚È‚½" : Monnam(etmp->emon)); + return wholebuf; +#else Strcpy(wholebuf, is_u(etmp) ? "You" : Monnam(etmp->emon)); if (!verb || !*verb) return wholebuf; @@ -396,6 +408,7 @@ const char *verb; else Strcat(wholebuf, vtense((char *) 0, verb)); return wholebuf; +#endif } /* @@ -444,14 +457,22 @@ int dest, how; /* use more specific killer if specified */ if (!killer.name[0]) { killer.format = KILLED_BY_AN; +/*JP Strcpy(killer.name, "falling drawbridge"); +*/ + Strcpy(killer.name, "~‚è‚Ä‚«‚½’µ‚Ë‹´‚Å"); } done(how); /* So, you didn't die */ if (!e_survives_at(etmp, etmp->ex, etmp->ey)) { if (enexto(&xy, etmp->ex, etmp->ey, etmp->edata)) { +#if 0 /*JP*/ pline("A %s force teleports you away...", Hallucination ? "normal" : "strange"); +#else + pline("%s—Í‚ª‚ ‚È‚½‚ð‰“‚­‚ɉ^‚ñ‚¾DDD", + Hallucination ? "•’Ê‚Ì" : "Šï–­‚È"); +#endif teleds(xy.x, xy.y, FALSE); } /* otherwise on top of the drawbridge is the @@ -583,16 +604,25 @@ struct entity *etmp; if (automiss(etmp) && e_survives_at(etmp, oldx, oldy)) { if (e_inview && (at_portcullis || IS_DRAWBRIDGE(crm->typ))) +#if 0 /*JP*/ pline_The("%s passes through %s!", at_portcullis ? "portcullis" : "drawbridge", e_nam(etmp)); +#else + pline_The("%s‚Í%s‚ð’ʂ蔲‚¯‚½I", + at_portcullis ? "—Ž‚µŠiŽq" : "’µ‚Ë‹´", + e_nam(etmp)); +#endif if (is_u(etmp)) spoteffects(FALSE); return; } if (e_missed(etmp, FALSE)) { if (at_portcullis) { +/*JP pline_The("portcullis misses %s!", e_nam(etmp)); +*/ + pline("—Ž‚µŠiŽq‚Í%s‚É–½’†‚µ‚È‚©‚Á‚½I", e_nam(etmp)); } else { debugpline1("The drawbridge misses %s!", e_nam(etmp)); } @@ -607,7 +637,10 @@ struct entity *etmp; } } else { if (crm->typ == DRAWBRIDGE_DOWN) { +/*JP pline("%s crushed underneath the drawbridge.", +*/ + pline("%s‚Í’µ‚Ë‹´‚̉º•~‚É‚È‚Á‚½D", E_phrase(etmp, "are")); /* no jump */ e_died(etmp, e_inview ? 3 : 2, CRUSHING); /* no corpse */ return; /* Note: Beyond this point, we know we're */ @@ -621,10 +654,16 @@ struct entity *etmp; debugpline0("Jump succeeds!"); } else { if (e_inview) +/*JP pline("%s crushed by the falling portcullis!", +*/ + pline("%s‚Í—Ž‚¿‚Ä‚«‚½—Ž‚µŠiŽq‚ɒׂ³‚ꂽI", E_phrase(etmp, "are")); else if (!Deaf) +/*JP You_hear("a crushing sound."); +*/ + You_hear("‰½‚©‚ª’ׂê‚鉹‚ð•·‚¢‚½D"); e_died(etmp, e_inview ? 3 : 2, CRUSHING); /* no corpse */ return; @@ -709,18 +748,33 @@ struct entity *etmp; #endif if (e_inview) { if (is_u(etmp)) { +/*JP You("tumble towards the closed portcullis!"); +*/ + You("•Â‚Ü‚è‚©‚¯‚Ì—Ž‚µŠiŽq‚ð‚±‚ë‚Ԃ悤‚É‚·‚è‚Ê‚¯‚½I"); if (automiss(etmp)) +/*JP You("pass through it!"); +*/ + You("’Ê‚è‚Ê‚¯‚½I"); else +/*JP pline_The("drawbridge closes in..."); +*/ + pline_The("’µ‚Ë‹´‚͕‚¶‚½DDD"); } else +/*JP pline("%s behind the drawbridge.", +*/ + pline("%s‚Í’µ‚Ë‹´‚Ì— ‚Ɉړ®‚µ‚½D", E_phrase(etmp, "disappear")); } if (!e_survives_at(etmp, etmp->ex, etmp->ey)) { killer.format = KILLED_BY_AN; +/*JP Strcpy(killer.name, "closing drawbridge"); +*/ + Strcpy(killer.name, "•Â‚¶‚Ä‚¢‚­’µ‚Ë‹´‚É‹·‚Ü‚ê‚Ä"); e_died(etmp, 0, CRUSHING); /* no message */ return; } @@ -729,11 +783,17 @@ struct entity *etmp; debugpline1("%s on drawbridge square", E_phrase(etmp, "are")); if (is_pool(etmp->ex, etmp->ey) && !e_inview) if (!Deaf) +/*JP You_hear("a splash."); +*/ + You_hear("ƒpƒVƒƒƒpƒVƒƒ‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D"); if (e_survives_at(etmp, etmp->ex, etmp->ey)) { if (e_inview && !is_flyer(etmp->edata) && !is_floater(etmp->edata)) +/*JP pline("%s from the bridge.", E_phrase(etmp, "fall")); +*/ + pline("%s‚Í‹´‚©‚ç—Ž‚¿‚½D", E_phrase(etmp, "fall")); return; } debugpline1("%s cannot survive on the drawbridge square", @@ -744,14 +804,29 @@ struct entity *etmp; boolean lava = is_lava(etmp->ex, etmp->ey); if (Hallucination) +#if 0 /*JP*/ pline("%s the %s and disappears.", E_phrase(etmp, "drink"), lava ? "lava" : "moat"); +#else + pline("%s‚Í%s‚ðˆù‚݁CÁ‚¦‚½D", + E_phrase(etmp, "drink"), lava ? "—nŠâ" : "–x"); +#endif else +#if 0 /*JP*/ pline("%s into the %s.", E_phrase(etmp, "fall"), lava ? "lava" : "moat"); +#else + pline("%s‚Í%s‚Ì’†‚É—Ž‚¿‚½D", E_phrase(etmp, "fall"), + lava ? "—nŠâ" : "–x"); +#endif } +#if 0 /*JP:T*/ killer.format = NO_KILLER_PREFIX; Strcpy(killer.name, "fell from a drawbridge"); +#else + killer.format = KILLED_BY; + Strcpy(killer.name, "’µ‚Ë‹´‚©‚ç—Ž‚¿‚Ä"); +#endif e_died(etmp, e_inview ? 3 : 2, /* CRUSHING is arbitrary */ (is_pool(etmp->ex, etmp->ey)) ? DROWNING @@ -780,13 +855,20 @@ int x, y; y2 = y; get_wall_for_db(&x2, &y2); if (cansee(x, y) || cansee(x2, y2)) +#if 0 /*JP*/ You_see("a drawbridge %s up!", (((u.ux == x || u.uy == y) && !Underwater) || distu(x2, y2) < distu(x, y)) ? "coming" : "going"); +#else + pline("’µ‚Ë‹´‚ªã‚ª‚Á‚Ä‚¢‚­‚Ì‚ªŒ©‚¦‚½I"); +#endif else /* "5 gears turn" for castle drawbridge tune */ +/*JP You_hear("chains rattling and gears turning."); +*/ + You_hear("Ž•ŽÔ‚ª‰ñ‚èƒ`ƒF[ƒ“‚ªƒKƒ‰ƒKƒ‰‚¢‚¤‰¹‚ð•·‚¢‚½D"); lev1->typ = DRAWBRIDGE_UP; lev2 = &levl[x2][y2]; lev2->typ = DBWALL; @@ -807,7 +889,10 @@ int x, y; set_entity(x2, y2, &(occupants[1])); /* do_entity for worm tail */ do_entity(&(occupants[1])); if (OBJ_AT(x, y) && !Deaf) +/*JP You_hear("smashing and crushing."); +*/ + You_hear("ƒKƒVƒƒƒ“CƒKƒ‰ƒ“‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D"); (void) revive_nasty(x, y, (char *) 0); (void) revive_nasty(x2, y2, (char *) 0); delallobj(x, y); @@ -842,10 +927,17 @@ int x, y; y2 = y; get_wall_for_db(&x2, &y2); if (cansee(x, y) || cansee(x2, y2)) +#if 0 /*JP*/ You_see("a drawbridge %s down!", (distu(x2, y2) < distu(x, y)) ? "going" : "coming"); +#else + pline("’µ‚Ë‹´‚ª‰º‚ª‚é‚Ì‚ªŒ©‚¦‚½I"); +#endif else /* "5 gears turn" for castle drawbridge tune */ +/*JP You_hear("gears turning and chains rattling."); +*/ + You_hear("Ž•ŽÔ‚ª‰ñ‚èƒ`ƒF[ƒ“‚ªƒKƒ‰ƒKƒ‰‚¢‚¤‰¹‚ð•·‚¢‚½D"); lev1->typ = DRAWBRIDGE_DOWN; lev2 = &levl[x2][y2]; lev2->typ = DOOR; @@ -898,28 +990,53 @@ int x, y; boolean lava = (lev1->drawbridgemask & DB_UNDER) == DB_LAVA; if (lev1->typ == DRAWBRIDGE_UP) { if (cansee(x2, y2)) +#if 0 /*JP*/ pline_The("portcullis of the drawbridge falls into the %s!", lava ? "lava" : "moat"); +#else + pline("’µ‚Ë‹´‚Ì—Ž‚µŠiŽq‚ª%s‚É—Ž‚¿‚½I", + lava ? "—nŠâ" : "–x"); +#endif else if (!Deaf) +/*JP You_hear("a loud *SPLASH*!"); +*/ + You_hear("‘å‚«‚ȃoƒbƒVƒƒ[ƒ“‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½I"); } else { if (cansee(x, y)) +#if 0 /*JP*/ pline_The("drawbridge collapses into the %s!", lava ? "lava" : "moat"); +#else + pline("’µ‚Ë‹´‚Í%s‚É‚­‚¸‚ê—Ž‚¿‚½I", + lava ? "—nŠâ" : "–x"); +#endif else if (!Deaf) +/*JP You_hear("a loud *SPLASH*!"); +*/ + You_hear("‘å‚«‚ȃoƒbƒVƒƒ[ƒ“‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½I"); } lev1->typ = lava ? LAVAPOOL : MOAT; lev1->drawbridgemask = 0; if ((otmp2 = sobj_at(BOULDER, x, y)) != 0) { obj_extract_self(otmp2); +/*JP (void) flooreffects(otmp2, x, y, "fall"); +*/ + (void) flooreffects(otmp2, x, y, "—Ž‚¿‚é"); } } else { if (cansee(x, y)) +/*JP pline_The("drawbridge disintegrates!"); +*/ + pline("’µ‚Ë‹´‚Í‚±‚È‚²‚È‚É‚È‚Á‚½I"); else +/*JP You_hear("a loud *CRASH*!"); +*/ + You_hear("‘å‚«‚ȃKƒVƒƒ[ƒ“‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½I"); lev1->typ = ((lev1->drawbridgemask & DB_ICE) ? ICE : ROOM); lev1->icedpool = ((lev1->drawbridgemask & DB_ICE) ? ICED_MOAT : 0); } @@ -954,10 +1071,16 @@ int x, y; e_inview = e_canseemon(etmp2); if (!automiss(etmp2)) { if (e_inview) +/*JP pline("%s blown apart by flying debris.", +*/ + pline("%s‚Í”ò‚ÑŽU‚Á‚½Š¢âI‚Ì”j•Ð‚𗁂т½D", E_phrase(etmp2, "are")); killer.format = KILLED_BY_AN; +/*JP Strcpy(killer.name, "exploding drawbridge"); +*/ + Strcpy(killer.name, "’µ‚Ë‹´‚Ì”š”­‚Å"); e_died(etmp2, e_inview ? 3 : 2, CRUSHING); /*no corpse*/ } /* nothing which is vulnerable can survive this */ } @@ -974,20 +1097,32 @@ int x, y; } else { if (e_inview) { if (!is_u(etmp1) && Hallucination) +/*JP pline("%s into some heavy metal!", +*/ + pline("%s‚͏d‹à‘®‚É–„‚à‚ꂽI", E_phrase(etmp1, "get")); else +/*JP pline("%s hit by a huge chunk of metal!", +*/ + pline("‘å‚«‚È“S‚̉ò‚ª%s‚É–½’†‚µ‚½I", E_phrase(etmp1, "are")); } else { if (!Deaf && !is_u(etmp1) && !is_pool(x, y)) { +/*JP You_hear("a crushing sound."); +*/ + You_hear("ƒKƒ‰ƒ“‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D"); } else { debugpline1("%s from shrapnel", E_phrase(etmp1, "die")); } } killer.format = KILLED_BY_AN; +/*JP Strcpy(killer.name, "collapsing drawbridge"); +*/ + Strcpy(killer.name, "ƒoƒ‰ƒoƒ‰‚É‚È‚Á‚½’µ‚Ë‹´‚Å"); e_died(etmp1, e_inview ? 3 : 2, CRUSHING); /*no corpse*/ if (levl[etmp1->ex][etmp1->ey].typ == MOAT) do_entity(etmp1); diff --git a/src/decl.c b/src/decl.c index 944dbe3..84d9437 100644 --- a/src/decl.c +++ b/src/decl.c @@ -211,14 +211,22 @@ NEARDATA struct monst *migrating_mons = (struct monst *) 0; NEARDATA struct mvitals mvitals[NUMMONS]; +#if 0 /*JP*/ NEARDATA struct c_color_names c_color_names = { "black", "amber", "golden", "light blue", "red", "green", "silver", "blue", "purple", "white", "orange" }; +#else +NEARDATA struct c_color_names c_color_names = { + "•‚¢", "àæàߐF‚Ì", "‹àF‚Ì", "…F‚Ì", "Ô‚¢", "—ΐF‚Ì", + "‹âF‚Ì", "Â‚¢", "Ž‡F‚Ì", "”’‚¢", "žòF‚Ì" +}; +#endif struct menucoloring *menu_colorings = NULL; const char *c_obj_colors[] = { +#if 0 /*JP*/ "black", /* CLR_BLACK */ "red", /* CLR_RED */ "green", /* CLR_GREEN */ @@ -235,8 +243,27 @@ const char *c_obj_colors[] = { "bright magenta", /* CLR_BRIGHT_MAGENTA */ "bright cyan", /* CLR_BRIGHT_CYAN */ "white", /* CLR_WHITE */ +#else + "•‚¢", /* CLR_BLACK */ + "Ô‚¢", /* CLR_RED */ + "—ΐF‚Ì", /* CLR_GREEN */ + "’ƒF‚Ì", /* CLR_BROWN */ + "Â‚¢", /* CLR_BLUE */ + "ƒ}ƒ[ƒ“ƒ^F‚Ì", /* CLR_MAGENTA */ + "ƒVƒAƒ“F‚Ì", /* CLR_CYAN */ + "ŠDF‚Ì", /* CLR_GRAY */ + "“§–¾‚È", /* no_color */ + "žòF‚Ì", /* CLR_ORANGE */ + "–¾‚é‚¢—ΐF‚Ì", /* CLR_BRIGHT_GREEN */ + "‰©F‚Ì", /* CLR_YELLOW */ + "–¾‚é‚¢ÂF‚Ì", /* CLR_BRIGHT_BLUE */ + "–¾‚é‚¢ƒ}ƒ[ƒ“ƒ^F‚Ì", /* CLR_BRIGHT_MAGENTA */ + "–¾‚é‚¢ƒVƒAƒ“F‚Ì", /* CLR_BRIGHT_CYAN */ + "”’‚¢", /* CLR_WHITE */ +#endif }; +#if 0 /*JP*/ struct c_common_strings c_common_strings = { "Nothing happens.", "That's enough tries!", "That is a silly thing to %s.", @@ -247,15 +274,36 @@ struct c_common_strings c_common_strings = { "Nothing happens.", "Never mind.", "vision quickly clears.", { "the", "your" } }; +#else +struct c_common_strings c_common_strings = { "‰½‚à‹N‚«‚È‚©‚Á‚½D", + "‚¢‚¢‰ÁŒ¸‚É‚µ‚ëI", + "%sH‚»‚è‚á‚΂©‚°‚Ä‚¢‚éD", + "ˆêuk‚¦‚½D", + "‰½‚©", + "‰½‚©", + "‚Ü‚½“®‚¯‚é‚悤‚É‚È‚Á‚½D", + "‚¦H", + "Ž‹ŠE‚ª‚Í‚Á‚«‚肵‚½D", + { "", "‚ ‚È‚½‚Ì" } }; +#endif /* NOTE: the order of these words exactly corresponds to the order of oc_material values #define'd in objclass.h. */ +#if 0 /*JP*/ const char *materialnm[] = { "mysterious", "liquid", "wax", "organic", "flesh", "paper", "cloth", "leather", "wooden", "bone", "dragonhide", "iron", "metal", "copper", "silver", "gold", "platinum", "mithril", "plastic", "glass", "gemstone", "stone" }; +#else +const char *materialnm[] = { "_”é", "‰tó", "˜X", "—L‹@", + "“÷", "Ž†", "•z", "Šv", + "–Ø", "œ", "—³”ç", "“S", + "‹à‘®", "“º", "”’‹â", "‹à", + "ƒvƒ‰ƒ`ƒi", "ƒ~ƒXƒŠƒ‹", "ƒvƒ‰ƒXƒ`ƒbƒN", "ƒKƒ‰ƒX", + "•óÎ", "Î" }; +#endif /* Vision */ NEARDATA boolean vision_full_recalc = 0; diff --git a/src/detect.c b/src/detect.c index 1e5b23e..7e14252 100644 --- a/src/detect.c +++ b/src/detect.c @@ -7,6 +7,11 @@ * command. */ +/* 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" #include "artifact.h" @@ -208,12 +213,21 @@ register struct obj *sobj; if (sobj) { char buf[BUFSZ]; if (youmonst.data == &mons[PM_GOLD_GOLEM]) { +/*JP Sprintf(buf, "You feel like a million %s!", currency(2L)); +*/ + Strcpy(buf, "‚ ‚È‚½‚Í‹àŽ‚¿‚É‚È‚Á‚½‚悤‚ÉŠ´‚¶‚½I"); } else if (hidden_gold() || money_cnt(invent)) Strcpy(buf, +/*JP "You feel worried about your future financial situation."); +*/ + "‚ ‚È‚½‚͏«—ˆ‚ÌŒoÏó‹µ‚ªS”z‚É‚È‚Á‚½D"); else +/*JP Strcpy(buf, "You feel materially poor."); +*/ + Strcpy(buf, "‚ ‚È‚½‚Í‚Ð‚à‚¶‚³‚ðŠ´‚¶‚½D"); strange_feeling(sobj, buf); } return 1; @@ -221,7 +235,10 @@ register struct obj *sobj; /* only under me - no separate display required */ if (stale) docrt(); +/*JP You("notice some gold between your %s.", makeplural(body_part(FOOT))); +*/ + You("%s‚ÌŠÔ‚É‹à‰Ý‚ª—Ž‚¿‚Ä‚¢‚邱‚Æ‚É‹C‚ª‚‚¢‚½D", body_part(FOOT)); return 0; outgoldmap: @@ -271,7 +288,10 @@ outgoldmap: } newsym(u.ux, u.uy); u.uinwater = iflags.save_uinwater, u.uburied = iflags.save_uburied; +/*JP You_feel("very greedy, and sense gold!"); +*/ + You("‚Ç‚ñ—~‚É‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½C‚»‚µ‚Ä‹à‰Ý‚̈ʒu‚ðŠ´’m‚µ‚½I"); exercise(A_WIS, TRUE); display_nhwindow(WIN_MAP, TRUE); docrt(); @@ -293,7 +313,10 @@ register struct obj *sobj; register int ct = 0, ctu = 0; boolean confused = (Confusion || (sobj && sobj->cursed)), stale; char oclass = confused ? POTION_CLASS : FOOD_CLASS; +/*JP const char *what = confused ? something : "food"; +*/ + const char *what = confused ? "ƒnƒ‰ƒwƒŠ" : "H‚ו¨"; stale = clear_stale_map(oclass, 0); @@ -318,18 +341,31 @@ register struct obj *sobj; known = stale && !confused; if (stale) { docrt(); +/*JP You("sense a lack of %s nearby.", what); +*/ + You("%s‚ªŒ¸‚Á‚Ä‚¢‚é‚Ì‚É‹C‚ª‚‚¢‚½D",what); if (sobj && sobj->blessed) { if (!u.uedibility) +/*JP Your("%s starts to tingle.", body_part(NOSE)); +*/ + Your("%s‚ª‚Ò‚­‚Á‚Æ“®‚¢‚½D", body_part(NOSE)); u.uedibility = 1; } } else if (sobj) { char buf[BUFSZ]; +#if 0 /*JP*/ Sprintf(buf, "Your %s twitches%s.", body_part(NOSE), (sobj->blessed && !u.uedibility) ? " then starts to tingle" : ""); +#else + Sprintf(buf, "‚ ‚È‚½‚Ì%s‚ª‚Ђ­‚Ђ­‚Æ“®‚¢%sD", body_part(NOSE), + (sobj->blessed && !u.uedibility) + ? "‚āC‚¤‚¸‚¤‚¸‚µ‚¾‚µ‚½" + : "‚½"); +#endif if (sobj->blessed && !u.uedibility) { boolean savebeginner = flags.beginner; @@ -377,13 +413,24 @@ register struct obj *sobj; u.uinwater = iflags.save_uinwater, u.uburied = iflags.save_uburied; if (sobj) { if (sobj->blessed) { +#if 0 /*JP*/ Your("%s %s to tingle and you smell %s.", body_part(NOSE), u.uedibility ? "continues" : "starts", what); +#else + Your("%s‚Í‚¤‚¸‚¤‚¸‚µ%sC%s‚Ì“õ‚¢‚ðšk‚¬‚Æ‚Á‚½D", body_part(NOSE), + u.uedibility ? "‘±‚¯" : "Žn‚ß", what); +#endif u.uedibility = 1; } else +/*JP Your("%s tingles and you smell %s.", body_part(NOSE), what); +*/ + Your("%s‚Í‚¤‚¸‚¤‚¸‚µC%s‚Ì“õ‚¢‚ðšk‚¬‚Æ‚Á‚½D", body_part(NOSE), what); } else +/*JP You("sense %s.", what); +*/ + You("%s‚ðŠ´’m‚µ‚½D", what); display_nhwindow(WIN_MAP, TRUE); exercise(A_WIS, TRUE); docrt(); @@ -435,9 +482,15 @@ int class; /* an object class, 0 for all */ if (Hallucination || (Confusion && class == SCROLL_CLASS)) Strcpy(stuff, something); else +/*JP Strcpy(stuff, class ? def_oc_syms[class].name : "objects"); +*/ + Strcpy(stuff, class ? def_oc_syms[class].name : "•¨‘Ì"); if (boulder && class != ROCK_CLASS) +/*JP Strcat(stuff, " and/or large stones"); +*/ + Strcat(stuff, "‚Æ‹Šâ"); if (do_dknown) for (obj = invent; obj; obj = obj->nobj) @@ -486,11 +539,17 @@ int class; /* an object class, 0 for all */ if (!clear_stale_map(!class ? ALL_CLASSES : class, 0) && !ct) { if (!ctu) { if (detector) +/*JP strange_feeling(detector, "You feel a lack of something."); +*/ + strange_feeling(detector, "‚ ‚È‚½‚͉½‚©‚ªŒ‡–R‚µ‚Ä‚¢‚é‚悤‚È‹C‚ª‚µ‚½D"); return 1; } +/*JP You("sense %s nearby.", stuff); +*/ + You("‹ß‚­‚Ì%s‚ðŠ´’m‚µ‚½D", stuff); return 0; } @@ -574,7 +633,10 @@ int class; /* an object class, 0 for all */ newsym(u.ux, u.uy); u.uinwater = iflags.save_uinwater, u.uburied = iflags.save_uburied; +/*JP You("detect the %s of %s.", ct ? "presence" : "absence", stuff); +*/ + You("%s%sD", stuff, ct ? "‚ð”­Œ©‚µ‚½" : "‚͉½‚à‚È‚¢‚±‚Æ‚ª‚í‚©‚Á‚½" ); display_nhwindow(WIN_MAP, TRUE); /* * What are we going to do when the hero does an object detect while blind @@ -617,8 +679,14 @@ int mclass; /* monster class, 0 for all */ if (!mcnt) { if (otmp) strange_feeling(otmp, Hallucination +/*JP ? "You get the heebie jeebies." +*/ + ? "‚ ‚È‚½‚Í‹à’¹‚̉ĂŃLƒ“ƒ`ƒ‡[‚µ‚½D" +/*JP : "You feel threatened."); +*/ + : "‚ ‚È‚½‚Í‹°•|‚Å‚¼‚­‚¼‚­‚µ‚½D"); return 1; } else { boolean woken = FALSE; @@ -649,9 +717,15 @@ int mclass; /* monster class, 0 for all */ } } display_self(); +/*JP You("sense the presence of monsters."); +*/ + You("‰ö•¨‚Ì‘¶Ý‚ðšk‚¬‚‚¯‚½D"); if (woken) +/*JP pline("Monsters sense the presence of you."); +*/ + pline("‰ö•¨‚Í‚ ‚È‚½‚Ì‘¶Ý‚ðšk‚¬‚‚¯‚½D"); display_nhwindow(WIN_MAP, TRUE); docrt(); if (Underwater) @@ -787,12 +861,18 @@ register struct obj *sobj; if (!found) { char buf[BUFSZ]; +/*JP Sprintf(buf, "Your %s stop itching.", makeplural(body_part(TOE))); +*/ + Sprintf(buf, "‚ ‚È‚½‚Ì%s‚Ì‚Þ‚¸‚Þ‚¸‚Í‚¨‚³‚Ü‚Á‚½D", makeplural(body_part(TOE))); strange_feeling(sobj, buf); return 1; } /* traps exist, but only under me - no separate display required */ +/*JP Your("%s itch.", makeplural(body_part(TOE))); +*/ + Your("%s‚Í‚Þ‚¸‚Þ‚¸‚µ‚½D", makeplural(body_part(TOE))); return 0; outtrapmap: cls(); @@ -826,7 +906,10 @@ outtrapmap: newsym(u.ux, u.uy); u.uinwater = iflags.save_uinwater, u.uburied = iflags.save_uburied; +/*JP You_feel("%s.", cursed_src ? "very greedy" : "entrapped"); +*/ + You("%s‹CŽ‚É‚È‚Á‚½D", cursed_src ? "‚Æ‚Ä‚à‚Ç‚ñ—~‚È" : "‚¾‚Ü‚³‚ê‚Ä‚¢‚é‚悤‚È"); /* wait for user to respond, then reset map display to normal */ display_nhwindow(WIN_MAP, TRUE); docrt(); @@ -847,47 +930,101 @@ d_level *where; if (ll < 0) { if (ll < (-8 - rn2(3))) if (!indun) +/*JP return "far away"; +*/ + return "‚Í‚é‚©”Þ•û‚É"; else +/*JP return "far below"; +*/ + return "‚Í‚é‚©‰º•û‚É"; else if (ll < -1) if (!indun) +/*JP return "away below you"; +*/ + return "‚¸‚Á‚Ɖº•û‚É"; else +/*JP return "below you"; +*/ + return "‰º•û‚É"; else if (!indun) +/*JP return "in the distance"; +*/ + return "‰“‚­‚É"; else +/*JP return "just below"; +*/ + return "^‰º‚É"; } else if (ll > 0) { if (ll > (8 + rn2(3))) if (!indun) +/*JP return "far away"; +*/ + return "‚Í‚é‚©”Þ•û‚É"; else +/*JP return "far above"; +*/ + return "‚Í‚é‚©ã•û‚É"; else if (ll > 1) if (!indun) +/*JP return "away above you"; +*/ + return "‚¸‚Á‚Əã•û‚É"; else +/*JP return "above you"; +*/ + return "ã•û‚É"; else if (!indun) +/*JP return "in the distance"; +*/ + return "‰“‚­‚É"; else +/*JP return "just above"; +*/ + return "^ã‚É"; } else if (!indun) +/*JP return "in the distance"; +*/ + return "‰“‚­‚É"; else +/*JP return "near you"; +*/ + return "‹ß‚­‚É"; } static const struct { const char *what; d_level *where; } level_detects[] = { +/*JP { "Delphi", &oracle_level }, +*/ + { "ƒfƒ‹ƒtƒ@ƒC", &oracle_level }, +/*JP { "Medusa's lair", &medusa_level }, +*/ + { "ƒƒfƒ…[ƒT‚̏Z‚Ý‚©", &medusa_level }, +/*JP { "a castle", &stronghold_level }, +*/ + { "é", &stronghold_level }, +/*JP { "the Wizard of Yendor's tower", &wiz1_level }, +*/ + { "ƒCƒFƒ“ƒ_[‚Ì–‚–@Žg‚¢‚Ì“ƒ", &wiz1_level }, }; void @@ -899,41 +1036,68 @@ struct obj **optr; struct obj *obj = *optr; if (Blind) { +/*JP pline("Too bad you can't see %s.", the(xname(obj))); +*/ + pline("‚È‚ñ‚Ä‚±‚Æ‚¾D%s‚ðŒ©‚é‚±‚Æ‚ª‚Å‚«‚È‚¢D", the(xname(obj))); return; } oops = (rnd(20) > ACURR(A_INT) || obj->cursed); if (oops && (obj->spe > 0)) { switch (rnd(obj->oartifact ? 4 : 5)) { case 1: +/*JP pline("%s too much to comprehend!", Tobjnam(obj, "are")); +*/ + pline("%s‚ð”`‚¢‚½‚ª‰½‚Ì‚±‚Æ‚¾‚©‚³‚Á‚Ï‚è‚í‚©‚ç‚È‚©‚Á‚½I", xname(obj)); break; case 2: +/*JP pline("%s you!", Tobjnam(obj, "confuse")); +*/ + pline("%s‚ð”`‚¢‚Ä‚é‚Æ‚Ó‚ç‚‚¢‚Ä‚«‚½I", xname(obj)); make_confused((HConfusion & TIMEOUT) + (long) rnd(100), FALSE); break; case 3: if (!resists_blnd(&youmonst)) { +/*JP pline("%s your vision!", Tobjnam(obj, "damage")); +*/ + pline("%s‚ð”`‚¢‚Ä‚¢‚é‚ÆŽ‹Šo‚ª‚¨‚©‚µ‚­‚È‚Á‚Ä‚«‚½I", xname(obj)); make_blinded((Blinded & TIMEOUT) + (long) rnd(100), FALSE); if (!Blind) Your1(vision_clears); } else { +/*JP pline("%s your vision.", Tobjnam(obj, "assault")); +*/ + pline("%s‚ª‚ ‚È‚½‚ÌŽ‹ŠE‚É”—‚Á‚Ä‚«‚½D", xname(obj)); +/*JP You("are unaffected!"); +*/ + pline("‚µ‚©‚µC‚ ‚È‚½‚͉e‹¿‚ðŽó‚¯‚È‚©‚Á‚½I"); } break; case 4: +/*JP pline("%s your mind!", Tobjnam(obj, "zap")); +*/ + pline("%s‚ð”`‚¢‚Ä‚¢‚é‚ƌ܊´‚ª‚¨‚©‚µ‚­‚È‚Á‚Ä‚«‚½I", xname(obj)); (void) make_hallucinated( (HHallucination & TIMEOUT) + (long) rnd(100), FALSE, 0L); break; case 5: +/*JP pline("%s!", Tobjnam(obj, "explode")); +*/ + pline("%s‚Í”š”­‚µ‚½I", xname(obj)); useup(obj); *optr = obj = 0; /* it's gone */ /* physical damage cause by the shards and force */ +/*JP losehp(Maybe_Half_Phys(rnd(30)), "exploding crystal ball", +*/ + losehp(Maybe_Half_Phys(rnd(30)), "…»‹Ê‚Ì”š”­‚Å", KILLED_BY_AN); break; } @@ -944,30 +1108,54 @@ struct obj **optr; if (Hallucination) { if (!obj->spe) { +/*JP pline("All you see is funky %s haze.", hcolor((char *) 0)); +*/ + pline("‚¨‚¨Iƒtƒ@ƒ“ƒL[ƒ‚ƒ“ƒL[‚È%s‚à‚₪Œ©‚¦‚éD", hcolor((char *)0)); } else { switch (rnd(6)) { case 1: +/*JP You("grok some groovy globs of incandescent lava."); +*/ + You("…–å‚ÌŒ®‚ð‚à‚Á‚½…ŒË‰©–傪•Ç‚̉e‚ɉB‚ê‚Ä‚¢‚é‚Ì‚ªŒ©‚¦‚½D"); break; case 2: +#if 0 /*JP:T*/ pline("Whoa! Psychedelic colors, %s!", poly_gender() == 1 ? "babe" : "dude"); +#else + pline("ƒ[ƒIIƒ‰ƒŠ‚Á‚Ä‚é‚©‚¢H%sI", + poly_gender() == 1 ? "ƒxƒCƒr[" : "ƒ†["); +#endif break; case 3: +/*JP pline_The("crystal pulses with sinister %s light!", +*/ + pline("…»‚Í•s‹g‚È%sƒpƒ‹ƒX‚ð”­‚µ‚½I", hcolor((char *) 0)); break; case 4: +/*JP You_see("goldfish swimming above fluorescent rocks."); +*/ + You("ŒuŒõŠâ‚̏ã‚ð‹à‹›‚ª‰j‚¢‚Å‚¢‚é‚Ì‚ðŒ©‚½D"); break; case 5: +#if 0 /*JP*/ You_see( "tiny snowflakes spinning around a miniature farmhouse."); +#else + You("¬‚³‚¢á•Ð‚ªƒ~ƒjƒ`ƒ…ƒA‚Ì”_‰Æ‚̉Ƃ̂܂í‚è‚ð•‘‚Á‚Ä‚é‚Ì‚ðŒ©‚½D"); +#endif break; default: +/*JP pline("Oh wow... like a kaleidoscope!"); - break; +*/ + pline("ƒ[ƒID–œ‰Ø‹¾‚̂悤‚¾I"); + break; } consume_obj_charge(obj, TRUE); } @@ -976,20 +1164,32 @@ struct obj **optr; /* read a single character */ if (flags.verbose) +/*JP You("may look for an object or monster symbol."); +*/ + You("•¨‘Ì‚â‰ö•¨‚Ì‹L†‚ð’T‚¹‚éD"); +/*JP ch = yn_function("What do you look for?", (char *) 0, '\0'); +*/ + ch = yn_function("‰½‚ð’T‚µ‚Ü‚·‚©H", (char *)0, '\0'); /* Don't filter out ' ' here; it has a use */ if ((ch != def_monsyms[S_GHOST].sym) && index(quitchars, ch)) { if (flags.verbose) pline1(Never_mind); return; } +/*JP You("peer into %s...", the(xname(obj))); +*/ + You("%s‚ð”`‚«‚±‚ñ‚¾DDD", the(xname(obj))); nomul(-rnd(10)); multi_reason = "gazing into a crystal ball"; nomovemsg = ""; if (obj->spe <= 0) +/*JP pline_The("vision is unclear."); +*/ + pline("‰f‘œ‚Í•s‘N–¾‚¾‚Á‚½D"); else { int class; int ret = 0; @@ -1016,8 +1216,13 @@ struct obj **optr; break; default: { int i = rn2(SIZE(level_detects)); +#if 0 /*JP*/ You_see("%s, %s.", level_detects[i].what, level_distance(level_detects[i].where)); +#else + You_see("%s‚ð%sŒ©‚½D", level_detects[i].what, + level_distance(level_detects[i].where)); +#endif } ret = 0; break; @@ -1025,9 +1230,15 @@ struct obj **optr; if (ret) { if (!rn2(100)) /* make them nervous */ +/*JP You_see("the Wizard of Yendor gazing out at you."); +*/ + You("ƒCƒFƒ“ƒ_[‚Ì–‚–@Žg‚¢‚ª‚ ‚È‚½‚ð‚É‚ç‚ñ‚Å‚¢‚é‚Ì‚ðŒ©‚½D"); else +/*JP pline_The("vision is unclear."); +*/ + pline("‰f‘œ‚Í•s‘N–¾‚É‚È‚Á‚½D"); } } return; @@ -1206,11 +1417,20 @@ genericptr_t num; cvt_sdoor_to_door(&levl[zx][zy]); /* .typ = DOOR */ if (levl[zx][zy].doormask & D_TRAPPED) { if (distu(zx, zy) < 3) +/*JP b_trapped("door", 0); +*/ + b_trapped("”à", 0); else +#if 0 /*JP*/ Norep("You %s an explosion!", cansee(zx, zy) ? "see" : (!Deaf ? "hear" : "feel the shock of")); +#else + Norep("‚ ‚È‚½‚Í”š”­%sI", + cansee(zx, zy) ? "‚ðŒ©‚½" : (!Deaf ? "‰¹‚ð•·‚¢‚½" + : "‚̏Ռ‚‚ðŠ´‚¶‚½")); +#endif wake_nearto(zx, zy, 11 * 11); levl[zx][zy].doormask = D_NODOOR; } else @@ -1264,9 +1484,15 @@ openit() if (u.uswallow) { if (is_animal(u.ustuck->data)) { if (Blind) +/*JP pline("Its mouth opens!"); +*/ + pline("‰½ŽÒ‚©‚ÌŒû‚ªŠJ‚¢‚½I"); else +/*JP pline("%s opens its mouth!", Monnam(u.ustuck)); +*/ + pline("%s‚ÍŒû‚ðŠJ‚¢‚½I", Monnam(u.ustuck)); } expels(u.ustuck, u.ustuck->data, TRUE); return -1; @@ -1303,7 +1529,10 @@ struct trap *trap; cleared = TRUE; } +/*JP You("find %s.", an(defsyms[trap_to_defsym(tt)].explanation)); +*/ + You("%s‚ðŒ©‚Â‚¯‚½D", defsyms[trap_to_defsym(tt)].explanation); if (cleared) { display_nhwindow(WIN_MAP, TRUE); /* wait */ @@ -1330,7 +1559,10 @@ register int aflag; /* intrinsic autosearch vs explicit searching */ if (u.uswallow) { if (!aflag) +/*JP pline("What are you looking for? The exit?"); +*/ + pline("‰½‚ð’T‚·‚ñ‚¾‚¢H”ñíŒûH"); } else { int fund = (uwep && uwep->oartifact && spec_ability(uwep, SPFX_SEARCH)) ? uwep->spe : 0; @@ -1383,11 +1615,17 @@ register int aflag; /* intrinsic autosearch vs explicit searching */ */ continue; } else { +/*JP You_feel("an unseen monster!"); +*/ + You("Œ©‚¦‚È‚¢‰ö•¨‚Ì‹C”z‚ðŠ´‚¶‚½I"); map_invisible(x, y); } } else if (!sensemon(mtmp)) +/*JP You("find %s.", mtmp->mtame +*/ + You("%s‚ðŒ©‚Â‚¯‚½D", mtmp->mtame ? y_monnam(mtmp) : a_monnam(mtmp)); return 1; diff --git a/src/dig.c b/src/dig.c index bbfef5d..1b7babe 100644 --- a/src/dig.c +++ b/src/dig.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" static NEARDATA boolean did_dig_msg; @@ -95,10 +100,18 @@ register boolean rockit; register boolean waslit = rm_waslit(); if (rockit) +/*JP pline("Crash! The ceiling collapses around you!"); +*/ + pline("‚°‚°‚ñI‚ ‚È‚½‚Ì‚Ü‚í‚è‚Ì“Vˆä‚ª•ö‚ꂽI"); else +#if 0 /*JP*/ pline("A mysterious force %s cave around you!", (levl[u.ux][u.uy].typ == CORR) ? "creates a" : "extends the"); +#else + pline("_”é“I‚È—Í‚É‚æ‚è‚ ‚È‚½‚Ì‚Ü‚í‚è%s‚½I", + (levl[u.ux][u.uy].typ == CORR) ? "‚É“´ŒA‚ª‚Å‚«" : "‚Ì“´ŒA‚ªL‚ª‚Á"); +#endif display_nhwindow(WIN_MESSAGE, TRUE); for (dist = 1; dist <= 2; dist++) { @@ -184,32 +197,53 @@ int x, y; { struct trap *ttmp = t_at(x, y); const char *verb = +/*JP (madeby == BY_YOU && uwep && is_axe(uwep)) ? "chop" : "dig in"; +*/ + (madeby == BY_YOU && uwep && is_axe(uwep)) ? "Ó‚¯‚È‚¢" : "Œ@‚ê‚È‚¢"; if (On_stairs(x, y)) { if (x == xdnladder || x == xupladder) { if (verbose) +/*JP pline_The("ladder resists your effort."); +*/ + pline("‚Í‚µ‚²‚ªŽ×–‚‚ð‚µ‚½D"); } else if (verbose) +/*JP pline_The("stairs are too hard to %s.", verb); +*/ + pline("ŠK’i‚Í‚Æ‚Ä‚àŒÅ‚­‚Ä%sD", verb); return FALSE; } else if (IS_THRONE(levl[x][y].typ) && madeby != BY_OBJECT) { if (verbose) +/*JP pline_The("throne is too hard to break apart."); +*/ + pline("‹ÊÀ‚Í‚Æ‚Ä‚àŒÅ‚­‚čӂ¯‚È‚¢D"); return FALSE; } else if (IS_ALTAR(levl[x][y].typ) && (madeby != BY_OBJECT || Is_astralevel(&u.uz) || Is_sanctum(&u.uz))) { if (verbose) +/*JP pline_The("altar is too hard to break apart."); +*/ + pline_The("Õ’d‚Í‚Æ‚Ä‚àŒÅ‚­‚čӂ¯‚È‚¢D"); return FALSE; } else if (Is_airlevel(&u.uz)) { if (verbose) +/*JP You("cannot %s thin air.", verb); +*/ + You("‰½‚à‚È‚¢‹óŠÔ‚Í%sD", verb); return FALSE; } else if (Is_waterlevel(&u.uz)) { if (verbose) +/*JP pline_The("water splashes and subsides."); +*/ + pline("…‚ªƒsƒVƒƒƒb‚Æ’µ‚Ë‚½D"); return FALSE; } else if ((IS_ROCK(levl[x][y].typ) && levl[x][y].typ != SDOOR && (levl[x][y].wall_info & W_NONDIGGABLE) != 0) @@ -218,11 +252,17 @@ int x, y; || ttmp->ttyp == VIBRATING_SQUARE || (!Can_dig_down(&u.uz) && !levl[x][y].candig)))) { if (verbose) +/*JP pline_The("%s here is too hard to %s.", surface(x, y), verb); +*/ + pline_The("%s‚Í‚Æ‚Ä‚àŒÅ‚­‚Ä%sD", surface(x,y), verb); return FALSE; } else if (sobj_at(BOULDER, x, y)) { if (verbose) +/*JP There("isn't enough room to %s here.", verb); +*/ + pline("\•ª‚ȏꏊ‚ª‚È‚¢‚Ì‚Å%sD", verb); return FALSE; } else if (madeby == BY_OBJECT /* the block against existing traps is mainly to @@ -240,7 +280,10 @@ dig(VOID_ARGS) register struct rm *lev; register xchar dpx = context.digging.pos.x, dpy = context.digging.pos.y; register boolean ispick = uwep && is_pick(uwep); +/*JP const char *verb = (!uwep || is_pick(uwep)) ? "dig into" : "chop through"; +*/ + const char *verb = (!uwep || is_pick(uwep)) ? "Œ@‚ê‚È‚¢" : "Ó‚¯‚È‚¢"; lev = &levl[dpx][dpy]; /* perhaps a nymph stole your pick-axe while you were busy digging */ @@ -257,13 +300,21 @@ dig(VOID_ARGS) } else { /* !context.digging.down */ if (IS_TREE(lev->typ) && !may_dig(dpx, dpy) && dig_typ(uwep, dpx, dpy) == DIGTYP_TREE) { +/*JP pline("This tree seems to be petrified."); +*/ + pline("‚±‚̖؂͐Ή»‚µ‚Ä‚¢‚é‚悤‚¾D"); return 0; } if (IS_ROCK(lev->typ) && !may_dig(dpx, dpy) && dig_typ(uwep, dpx, dpy) == DIGTYP_ROCK) { +#if 0 /*JP*/ pline("This %s is too hard to %s.", is_db_wall(dpx, dpy) ? "drawbridge" : "wall", verb); +#else + pline("‚±‚Ì%s‚Í‚Æ‚Ä‚àŒÅ‚­‚Ä%sD", + is_db_wall(dpx, dpy) ? "’µ‚Ë‹´" : "•Ç", verb); +#endif return 0; } } @@ -271,24 +322,43 @@ dig(VOID_ARGS) switch (rn2(3)) { case 0: if (!welded(uwep)) { +/*JP You("fumble and drop %s.", yname(uwep)); +*/ + You("Žè‚ªŠŠ‚è%s‚ð—Ž‚µ‚½D", yname(uwep)); dropx(uwep); } else { if (u.usteed) +#if 0 /*JP:T*/ pline("%s and %s %s!", Yobjnam2(uwep, "bounce"), otense(uwep, "hit"), mon_nam(u.usteed)); +#else + pline("%s‚Í’µ‚Ë‚©‚¦‚è%s‚É–½’†‚µ‚½I", + xname(uwep), mon_nam(u.usteed)); +#endif else +#if 0 /*JP:T*/ pline("Ouch! %s and %s you!", Yobjnam2(uwep, "bounce"), otense(uwep, "hit")); +#else + pline("‚¢‚Ä‚ÁI%s‚Í’µ‚Ë‚©‚¦‚è‚ ‚È‚½‚É–½’†‚µ‚½I", + xname(uwep)); +#endif set_wounded_legs(RIGHT_SIDE, 5 + rnd(5)); } break; case 1: +/*JP pline("Bang! You hit with the broad side of %s!", +*/ + pline("ƒoƒ“I%s‚Ì•¿‚Å‘Å‚Á‚Ä‚µ‚Ü‚Á‚½I", the(xname(uwep))); break; default: +/*JP Your("swing misses its mark."); +*/ + You("‘_‚¢‚ð’è‚߂ĐU‚肨‚낵‚½‚ª‚Í‚¸‚µ‚½D"); break; } return 0; @@ -365,7 +435,10 @@ dig(VOID_ARGS) if ((obj = sobj_at(STATUE, dpx, dpy)) != 0) { if (break_statue(obj)) +/*JP digtxt = "The statue shatters."; +*/ + digtxt = "’¤‘œ‚Í‚±‚È‚²‚È‚É‚È‚Á‚½D"; else /* it was a statue trap; break_statue() * printed a message and updated the screen @@ -380,7 +453,10 @@ dig(VOID_ARGS) obj_extract_self(bobj); place_object(bobj, dpx, dpy); } +/*JP digtxt = "The boulder falls apart."; +*/ + digtxt = "Šâ‚Í‚±‚È‚²‚È‚É‚È‚Á‚½D"; } else if (lev->typ == STONE || lev->typ == SCORR || IS_TREE(lev->typ)) { if (Is_earthlevel(&u.uz)) { @@ -394,18 +470,27 @@ dig(VOID_ARGS) } } if (IS_TREE(lev->typ)) { +/*JP digtxt = "You cut down the tree."; +*/ + digtxt = "–Ø‚ðØ‚è“|‚µ‚½D"; lev->typ = ROOM; if (!rn2(5)) (void) rnd_treefruit_at(dpx, dpy); } else { +/*JP digtxt = "You succeed in cutting away some rock."; +*/ + digtxt = "Šâ‚ð­‚µØ‚è‚Æ‚Á‚½D"; lev->typ = CORR; } } else if (IS_WALL(lev->typ)) { if (shopedge) { add_damage(dpx, dpy, 10L * ACURRSTR); +/*JP dmgtxt = "damage"; +*/ + dmgtxt = "‚‚¯‚é"; } if (level.flags.is_maze_lev) { lev->typ = ROOM; @@ -415,17 +500,29 @@ dig(VOID_ARGS) lev->typ = DOOR; lev->doormask = D_NODOOR; } +/*JP digtxt = "You make an opening in the wall."; +*/ + digtxt = "•Ç‚ÉŒŠ‚ð‹ó‚¯‚½D"; } else if (lev->typ == SDOOR) { cvt_sdoor_to_door(lev); /* ->typ = DOOR */ +/*JP digtxt = "You break through a secret door!"; +*/ + digtxt = "”é–§‚Ì”à‚ð’ʂ蔲‚¯‚½I"; if (!(lev->doormask & D_TRAPPED)) lev->doormask = D_BROKEN; } else if (closed_door(dpx, dpy)) { +/*JP digtxt = "You break through the door."; +*/ + digtxt = "”à‚ð’ʂ蔲‚¯‚½D"; if (shopedge) { add_damage(dpx, dpy, 400L); +/*JP dmgtxt = "break"; +*/ + dmgtxt = "‰ó‚·"; } if (!(lev->doormask & D_TRAPPED)) lev->doormask = D_BROKEN; @@ -453,11 +550,17 @@ dig(VOID_ARGS) break; } if (mtmp) +/*JP pline_The("debris from your digging comes to life!"); +*/ + pline("Šâ‚Ì”j•Ð‚ª¶–½‚ð‘Ñ‚Ñ‚½I"); } if (IS_DOOR(lev->typ) && (lev->doormask & D_TRAPPED)) { lev->doormask = D_NODOOR; +/*JP b_trapped("door", 0); +*/ + b_trapped("”à", 0); newsym(dpx, dpy); } cleanup: @@ -467,14 +570,24 @@ dig(VOID_ARGS) context.digging.level.dlevel = -1; return 0; } else { /* not enough effort has been spent yet */ +#if 0 /*JP:T*/ static const char *const d_target[6] = { "", "rock", "statue", "boulder", "door", "tree" }; +#else + static const char *const d_target[6] = { "", "Î", "’¤‘œ", + "Šâ", "”à", "–Ø" }; +#endif int dig_target = dig_typ(uwep, dpx, dpy); if (IS_WALL(lev->typ) || dig_target == DIGTYP_DOOR) { if (*in_rooms(dpx, dpy, SHOPBASE)) { +#if 0 /*JP:T*/ pline("This %s seems too hard to %s.", IS_DOOR(lev->typ) ? "door" : "wall", verb); +#else + pline("‚±‚Ì%s‚Í‚Æ‚Ä‚àŒÅ‚­‚Ä%sD", + IS_DOOR(lev->typ) ? "”à" : "•Ç", verb); +#endif return 0; } } else if (dig_target == DIGTYP_UNDIGGABLE @@ -482,7 +595,10 @@ dig(VOID_ARGS) return 0; /* statue or boulder got taken */ if (!did_dig_msg) { +/*JP You("hit the %s with all your might.", d_target[dig_target]); +*/ + You("%s‚ð—͈ê”t‘Å‚¿‚‚¯‚½D", d_target[dig_target]); did_dig_msg = TRUE; } } @@ -586,7 +702,10 @@ int ttyp; /* maketrap() might change it, also, in this situation, surface() returns an inappropriate string for a grave */ if (IS_GRAVE(lev->typ)) +/*JP Strcpy(surface_type, "grave"); +*/ + Strcpy(surface_type, "•æ"); else Strcpy(surface_type, surface(x, y)); shopdoor = IS_DOOR(lev->typ) && *in_rooms(x, y, SHOPBASE); @@ -607,13 +726,25 @@ int ttyp; if (x != u.ux || y != u.uy) You("dig an adjacent pit."); else +/*JP You("dig a pit in the %s.", surface_type); +*/ + You("%s‚É—Ž‚µŒŠ‚ðŒ@‚Á‚½D", surface_type); if (shopdoor) +/*JP pay_for_damage("ruin", FALSE); +*/ + pay_for_damage("‰ó‚·", FALSE); } else if (!madeby_obj && canseemon(madeby)) +/*JP pline("%s digs a pit in the %s.", Monnam(madeby), surface_type); +*/ + pline("%s‚Í%s‚É—Ž‚µŒŠ‚ðŒ@‚Á‚½D", Monnam(madeby), surface_type); else if (cansee(x, y) && flags.verbose) +/*JP pline("A pit appears in the %s.", surface_type); +*/ + pline("—Ž‚µŒŠ‚ª%s‚ÉŒ»‚í‚ꂽD", surface_type); if (at_u) { if (!wont_fall) { @@ -627,24 +758,43 @@ int ttyp; } else if (mtmp) { if (is_flyer(mtmp->data) || is_floater(mtmp->data)) { if (canseemon(mtmp)) +#if 0 /*JP*/ pline("%s %s over the pit.", Monnam(mtmp), (is_flyer(mtmp->data)) ? "flies" : "floats"); +#else + pline("%s‚Í%s—Ž‚µŒŠ‚ð‰z‚¦‚½D", Monnam(mtmp), + (is_flyer(mtmp->data)) ? "”ò‚ñ‚Å" : "•‚‚¢‚Ä"); +#endif } else if (mtmp != madeby) (void) mintrap(mtmp); } } else { /* was TRAPDOOR now a HOLE*/ if (madeby_u) +/*JP You("dig a hole through the %s.", surface_type); +*/ + You("%s‚ÉŒŠ‚ðŠJ‚¯‚½D", surface_type); else if (!madeby_obj && canseemon(madeby)) +#if 0 /*JP:T*/ pline("%s digs a hole through the %s.", Monnam(madeby), surface_type); +#else + pline("%s‚Í%s‚ÉŒŠ‚ðŠJ‚¯‚½D", Monnam(madeby), + surface_type); +#endif else if (cansee(x, y) && flags.verbose) +/*JP pline("A hole appears in the %s.", surface_type); +*/ + pline("%s‚ÉŒŠ‚ªŒ»‚í‚ꂽD", surface_type); if (at_u) { if (!u.ustuck && !wont_fall && !next_to_u()) { +/*JP You("are jerked back by your pet!"); +*/ + You("ƒyƒbƒg‚É‚æ‚Á‚Ĉø‚«–ß‚³‚ꂽI"); wont_fall = TRUE; } @@ -658,7 +808,10 @@ int ttyp; if (oldobjs != newobjs) (void) pickup(1); if (shopdoor && madeby_u) +/*JP pay_for_damage("ruin", FALSE); +*/ + pay_for_damage("‚ß‚¿‚á‚ß‚¿‚á‚É‚·‚é", FALSE); } else { d_level newlevel; @@ -667,9 +820,15 @@ int ttyp; shopdig(1); /* shk might snatch pack */ /* handle earlier damage, eg breaking wand of digging */ else if (!madeby_u) +/*JP pay_for_damage("dig into", TRUE); +*/ + pay_for_damage("ŒŠ‚ð‚ ‚¯‚é", TRUE); +/*JP You("fall through..."); +*/ + You("—Ž‚¿‚½DDD"); /* Earlier checks must ensure that the destination * level exists and is in the present dungeon. */ @@ -681,7 +840,10 @@ int ttyp; } } else { if (shopdoor && madeby_u) +/*JP pay_for_damage("ruin", FALSE); +*/ + pay_for_damage("‚ß‚¿‚á‚ß‚¿‚á‚É‚·‚é", FALSE); if (newobjs) impact_drop((struct obj *) 0, x, y, 0); if (mtmp) { @@ -701,7 +863,10 @@ int ttyp; assign_level(&tolevel, &valley_level); } else if (Is_botlevel(&u.uz)) { if (canseemon(mtmp)) +/*JP pline("%s avoids the trap.", Monnam(mtmp)); +*/ + pline("%s‚Í㩂ð”ð‚¯‚½D", Monnam(mtmp)); return; } else { get_level(&tolevel, depth(&u.uz) + 1); @@ -735,7 +900,10 @@ const char *fillmsg; unearth_objs(x, y); if (fillmsg) +/*JP pline(fillmsg, typ == LAVAPOOL ? "lava" : "water"); +*/ + pline(fillmsg, typ == LAVAPOOL ? "—nŠâ" : "…"); if (u_spot && !(Levitation || Flying)) { if (typ == LAVAPOOL) (void) lava_effects(); @@ -775,12 +943,21 @@ coord *cc; || ttmp->ttyp == VIBRATING_SQUARE || nohole)) || (IS_ROCK(lev->typ) && lev->typ != SDOOR && (lev->wall_info & W_NONDIGGABLE) != 0)) { +#if 0 /*JP:T*/ pline_The("%s %shere is too hard to dig in.", surface(dig_x, dig_y), (dig_x != u.ux || dig_y != u.uy) ? "t" : ""); +#else + pline("%s‚Í‚Æ‚Ä‚àŒÅ‚­‚ÄŒ@‚ê‚È‚¢D", surface(dig_x, dig_y)); +#endif } else if (is_pool_or_lava(dig_x, dig_y)) { +#if 0 /*JP:T*/ pline_The("%s sloshes furiously for a moment, then subsides.", is_lava(dig_x, dig_y) ? "lava" : "water"); +#else + pline("%s‚ÍŒƒ‚µ‚­”g‚¤‚Á‚½D", + is_lava(dig_x, dig_y) ? "—nŠâ" : "…"); +#endif wake_nearby(); /* splashing */ } else if (lev->typ == DRAWBRIDGE_DOWN @@ -789,7 +966,10 @@ coord *cc; bridge is extended; drawbridge_wall is the open "doorway" or closed "door" where the portcullis/mechanism is located */ if (pit_only) { +/*JP pline_The("drawbridge seems too hard to dig through."); +*/ + pline("’µ‚Ë‹´‚Í‚Æ‚Ä‚àŒÅ‚­‚ÄŒ@‚ê‚»‚¤‚É‚È‚¢D"); return FALSE; } else { int x = dig_x, y = dig_y; @@ -802,15 +982,23 @@ coord *cc; } else if ((boulder_here = sobj_at(BOULDER, dig_x, dig_y)) != 0) { if (ttmp && (ttmp->ttyp == PIT || ttmp->ttyp == SPIKED_PIT) && rn2(2)) { +#if 0 /*JP*/ pline_The("boulder settles into the %spit.", (dig_x != u.ux || dig_y != u.uy) ? "adjacent " : ""); +#else + pline("Šâ‚Í%s—Ž‚µŒŠ‚ð–„‚ß‚½D", + (dig_x != u.ux || dig_y != u.uy) ? "—ׂÌ" : ""); +#endif ttmp->ttyp = PIT; /* crush spikes */ } else { /* * digging makes a hole, but the boulder immediately * fills it. Final outcome: no hole, no boulder. */ +/*JP pline("KADOOM! The boulder falls in!"); +*/ + pline("‚ǂǁ[‚ñIŠâ‚Í—Ž‚¿‚½I"); (void) delfloortrap(ttmp); } delobj(boulder_here); @@ -830,32 +1018,52 @@ coord *cc; * We can't dig a hole here since that will destroy * the drawbridge. The following is a cop-out. --dlc */ +#if 0 /*JP*/ pline_The("%s %shere is too hard to dig in.", surface(dig_x, dig_y), (dig_x != u.ux || dig_y != u.uy) ? "t" : ""); +#else + pline("%s‚Í‚Æ‚Ä‚àŒÅ‚­‚ÄŒ@‚ê‚È‚¢D", surface(dig_x, dig_y)); +#endif return FALSE; } lev->drawbridgemask &= ~DB_UNDER; lev->drawbridgemask |= (typ == LAVAPOOL) ? DB_LAVA : DB_MOAT; +#if 0 /*JP:T*/ liquid_flow(dig_x, dig_y, typ, ttmp, "As you dig, the hole fills with %s!"); +#else + liquid_flow(dig_x, dig_y, typ, ttmp, + "‚ ‚È‚½‚ªŒ@‚é‚ƁC%s‚ª—N‚¢‚Ä‚«‚½I"); +#endif return TRUE; /* the following two are here for the wand of digging */ } else if (IS_THRONE(lev->typ)) { +/*JP pline_The("throne is too hard to break apart."); +*/ + pline("‹ÊÀ‚Í‚Æ‚Ä‚àŒÅ‚­‚čӂ¯‚È‚¢D"); } else if (IS_ALTAR(lev->typ)) { +/*JP pline_The("altar is too hard to break apart."); +*/ + pline("Õ’d‚Í‚Æ‚Ä‚àŒÅ‚­‚čӂ¯‚È‚¢D"); } else { typ = fillholetyp(dig_x, dig_y, FALSE); if (typ != ROOM) { lev->typ = typ; +#if 0 /*JP*/ liquid_flow(dig_x, dig_y, typ, ttmp, "As you dig, the hole fills with %s!"); +#else + liquid_flow(dig_x, dig_y, typ, ttmp, + "‚ ‚È‚½‚ªŒ@‚é‚ƁC%s‚ª—N‚¢‚Ä‚«‚½I"); +#endif return TRUE; } @@ -901,38 +1109,65 @@ coord *cc; exercise(A_WIS, FALSE); if (Role_if(PM_ARCHEOLOGIST)) { adjalign(-sgn(u.ualign.type) * 3); +/*JP You_feel("like a despicable grave-robber!"); +*/ + pline("‚±‚ê‚Å‚Í‚Ü‚é‚Å•æ“D–_‚¾I"); } else if (Role_if(PM_SAMURAI)) { adjalign(-sgn(u.ualign.type)); +/*JP You("disturb the honorable dead!"); +*/ + You("–¼—_‚ ‚鎀ŽÒ‚Ì–°‚è‚ð–W‚°‚¾I"); } else if ((u.ualign.type == A_LAWFUL) && (u.ualign.record > -10)) { adjalign(-sgn(u.ualign.type)); +/*JP You("have violated the sanctity of this grave!"); +*/ + You("¹‚È‚é•æ’n‚ð”Æ‚µ‚½I"); } switch (rn2(5)) { case 0: case 1: +/*JP You("unearth a corpse."); +*/ + You("Ž€‘Ì‚ðŒ@‚è‹N‚µ‚½D"); if (!!(otmp = mk_tt_object(CORPSE, dig_x, dig_y))) otmp->age -= 100; /* this is an *OLD* corpse */ ; break; case 2: if (!Blind) +/*JP pline(Hallucination ? "Dude! The living dead!" +*/ + pline(Hallucination ? "ƒ]ƒ“ƒr‚ª‚­‚é‚è‚Æ—Ö‚ð•`‚¢‚½I" +/*JP : "The grave's owner is very upset!"); +*/ + : "•æ‚̏Š—LŽÒ‚Í‚Æ‚Ä‚à‹Á‚¢‚½I"); (void) makemon(mkclass(S_ZOMBIE, 0), dig_x, dig_y, NO_MM_FLAGS); break; case 3: if (!Blind) +/*JP pline(Hallucination ? "I want my mummy!" +*/ + pline(Hallucination ? "ƒ}ƒ~[‚ª•K—v‚¾I" +/*JP : "You've disturbed a tomb!"); +*/ + : "•æ‚ðr‚µ‚Ä‚µ‚Ü‚Á‚½I"); (void) makemon(mkclass(S_MUMMY, 0), dig_x, dig_y, NO_MM_FLAGS); break; default: /* No corpse */ +/*JP pline_The("grave seems unused. Strange...."); +*/ + pline("‚±‚Ì•æ‚Í–¢Žg—p‚̂悤‚¾DŠï–­‚¾DDD"); break; } levl[dig_x][dig_y].typ = ROOM; @@ -958,13 +1193,21 @@ struct obj *obj; res = 1; } ispick = is_pick(obj); +/*JP verb = ispick ? "dig" : "chop"; +*/ + verb = ispick ? "Œ@‚é" : "Ó‚­"; if (u.utrap && u.utraptype == TT_WEB) { +#if 0 /*JP:T*/ pline("%s you can't %s while entangled in a web.", /* res==0 => no prior message; res==1 => just got "You now wield a pick-axe." message */ !res ? "Unfortunately," : "But", verb); +#else + pline("%s‚­‚à‚Ì‘ƒ‚ɂЂÁ‚©‚©‚Á‚Ä‚¢‚éŠÔ‚Í%sD", + !res ? "Žc”O‚È‚ª‚ç" : "‚µ‚©‚µ", jconj(verb, "‚È‚¢")); +#endif return res; } @@ -997,7 +1240,10 @@ struct obj *obj; *dsp++ = *sdp; } *dsp = 0; +/*JP Sprintf(qbuf, "In what direction do you want to %s? [%s]", verb, dirsyms); +*/ + Sprintf(qbuf, "‚Ç‚Ì•ûŒü‚ð%sH[%s]", verb, dirsyms); if (!getdir(qbuf)) return res; @@ -1016,17 +1262,29 @@ struct obj *obj; struct trap *trap, *trap_with_u; int dig_target; boolean ispick = is_pick(obj); +/*JP const char *verbing = ispick ? "digging" : "chopping"; +*/ + const char *verbing = ispick ? "Œ@‚é" : "Ó‚­"; if (u.uswallow && attack(u.ustuck)) { ; /* return 1 */ } else if (Underwater) { +/*JP pline("Turbulence torpedoes your %s attempts.", verbing); +*/ + pline("%s‚Æ‚·‚é‚Æ—…—¬‚ª‹N‚«‚½D", jconj(verbing, "‚悤")); } else if (u.dz < 0) { if (Levitation) +/*JP You("don't have enough leverage."); +*/ + You("•‚‚¢‚Ä‚¢‚é‚Ì‚Å‚Ó‚ñ‚΂肪‚«‚©‚È‚¢D"); else +/*JP You_cant("reach the %s.", ceiling(u.ux, u.uy)); +*/ + You("%s‚É“Í‚©‚È‚¢D", ceiling(u.ux,u.uy)); } else if (!u.dx && !u.dy && !u.dz) { char buf[BUFSZ]; int dam; @@ -1034,8 +1292,14 @@ struct obj *obj; dam = rnd(2) + dbon() + obj->spe; if (dam <= 0) dam = 1; +/*JP You("hit yourself with %s.", yname(uwep)); +*/ + You("Ž©•ªŽ©g‚ð%s‚Å’@‚¢‚½D", yname(uwep)); +/*JP Sprintf(buf, "%s own %s", uhis(), OBJ_NAME(objects[obj->otyp])); +*/ + Sprintf(buf, "Ž©•ªŽ©g‚ð%s‚Å’@‚¢‚Ä", yname(uwep)); losehp(Maybe_Half_Phys(dam), buf, KILLED_BY); context.botl = 1; return 1; @@ -1045,7 +1309,10 @@ struct obj *obj; rx = u.ux + u.dx; ry = u.uy + u.dy; if (!isok(rx, ry)) { +/*JP pline("Clash!"); +*/ + pline("ƒKƒ‰ƒKƒ‰I"); return 1; } lev = &levl[rx][ry]; @@ -1058,29 +1325,56 @@ struct obj *obj; if (trap && trap->ttyp == WEB) { if (!trap->tseen) { seetrap(trap); +/*JP There("is a spider web there!"); +*/ + pline("‚»‚±‚É‚Í‚­‚à‚Ì‘ƒ‚ª‚ ‚éI"); } +/*JP pline("%s entangled in the web.", Yobjnam2(obj, "become")); +*/ + Your("%s‚Í‚­‚à‚Ì‘ƒ‚É‚©‚ç‚Ü‚Á‚½D", xname(obj)); /* you ought to be able to let go; tough luck */ /* (maybe `move_into_trap()' would be better) */ nomul(-d(2, 2)); multi_reason = "stuck in a spider web"; +/*JP nomovemsg = "You pull free."; +*/ + nomovemsg = "‚Ђ«‚Í‚È‚µ‚½D"; } else if (lev->typ == IRONBARS) { +/*JP pline("Clang!"); +*/ + pline("ƒKƒcƒ“I"); wake_nearby(); } else if (IS_TREE(lev->typ)) +/*JP You("need an axe to cut down a tree."); +*/ + You("–Ø‚ðØ‚é‚É‚Í•€‚ª•K—v‚¾D"); else if (IS_ROCK(lev->typ)) +/*JP You("need a pick to dig rock."); +*/ + You("Œ@‚é‚ɂ͂‚é‚Í‚µ‚ª•K—v‚¾D"); else if (!ispick && (sobj_at(STATUE, rx, ry) || sobj_at(BOULDER, rx, ry))) { boolean vibrate = !rn2(3); +#if 0 /*JP:T*/ pline("Sparks fly as you whack the %s.%s", sobj_at(STATUE, rx, ry) ? "statue" : "boulder", vibrate ? " The axe-handle vibrates violently!" : ""); +#else + pline("%s‚ðØ‚낤‚Æ‚µ‚½‚ç‰Î‰Ô‚ªŽU‚Á‚½I%s", + sobj_at(STATUE, rx, ry) ? "’¤‘œ" : "Šâ", + vibrate ? "•€‚ÍŒƒ‚µ‚­U“®‚µ‚½I" : ""); +#endif if (vibrate) +/*JP losehp(Maybe_Half_Phys(2), "axing a hard object", +*/ + losehp(Maybe_Half_Phys(2), "ŒÅ‚¢‚à‚Ì‚É•€‚ðŽg‚¨‚¤‚Æ‚µ‚Ä", KILLED_BY); } else if (u.utrap && u.utraptype == TT_PIT && trap && (trap_with_u = t_at(u.ux, u.uy)) @@ -1105,11 +1399,30 @@ struct obj *obj; } else You("swing %s through thin air.", yobjnam(obj, (char *) 0)); } else { +#if 0 /*JP*/ static const char *const d_action[6] = { "swinging", "digging", "chipping the statue", "hitting the boulder", "chopping at the door", "cutting the tree" }; +#else + static const char * const d_action1[6] = { + "U‚è", + "Œ@‚è", + "’¤‘œ‚ðí‚è", + "Šâ‚ð‘Å‚¿‚‚¯", + "”à‚ðí‚è", + "–Ø‚ðØ‚è" + }; + static const char * const d_action2[6] = { + "U‚é", + "Œ@‚é", + "’¤‘œ‚ðí‚é", + "Šâ‚ð‘Å‚¿‚‚¯‚é", + "”à‚ðí‚é", + "–Ø‚ðØ‚é" + }; +#endif did_dig_msg = FALSE; context.digging.quiet = FALSE; if (context.digging.pos.x != rx || context.digging.pos.y != ry @@ -1131,23 +1444,39 @@ struct obj *obj; assign_level(&context.digging.level, &u.uz); context.digging.effort = 0; if (!context.digging.quiet) +/*JP You("start %s.", d_action[dig_target]); +*/ + You("%s‚Í‚¶‚ß‚½D", d_action1[dig_target]); } else { +#if 0 /*JP*/ You("%s %s.", context.digging.chew ? "begin" : "continue", d_action[dig_target]); +#else + You("%s‚Ì‚ð%s‚µ‚½D", d_action2[dig_target], + context.digging.chew ? "ŠJŽn" : "ÄŠJ"); +#endif context.digging.chew = FALSE; } set_occupation(dig, verbing, 0); } } else if (Is_airlevel(&u.uz) || Is_waterlevel(&u.uz)) { /* it must be air -- water checked above */ +/*JP You("swing %s through thin air.", yobjnam(obj, (char *) 0)); +*/ + You("‰½‚à‚È‚¢‹óŠÔ‚Å%s‚ðU‚è‚܂킵‚½D", xname(obj)); } else if (!can_reach_floor(FALSE)) { cant_reach_floor(u.ux, u.uy, FALSE, FALSE); } else if (is_pool_or_lava(u.ux, u.uy)) { /* Monsters which swim also happen not to be able to dig */ +#if 0 /*JP:T*/ You("cannot stay under%s long enough.", is_pool(u.ux, u.uy) ? "water" : " the lava"); +#else + You("%s‚É‚Í’·ŽžŠÔ‚¢‚ç‚ê‚È‚¢D", + is_pool(u.ux, u.uy) ? "…–ʉº" : "—nŠâ‚Ì’†"); +#endif } else if ((trap = t_at(u.ux, u.uy)) != 0 && uteetering_at_seen_pit(trap)) { dotrap(trap, FORCEBUNGLE); @@ -1159,8 +1488,13 @@ struct obj *obj; trigger or disarm a trap here */ && (!trap || (trap->ttyp != LANDMINE && trap->ttyp != BEAR_TRAP))) { +#if 0 /*JP:T*/ pline("%s merely scratches the %s.", Yobjnam2(obj, (char *) 0), surface(u.ux, u.uy)); +#else + Your("%s‚Í%s‚É‚©‚·‚菝‚ð‚‚¯‚½‚¾‚¯‚¾‚Á‚½D", aobjnam(obj, (char *)0), + surface(u.ux,u.uy)); +#endif u_wipe_engr(3); } else { if (context.digging.pos.x != u.ux || context.digging.pos.y != u.uy @@ -1173,11 +1507,17 @@ struct obj *obj; context.digging.pos.y = u.uy; assign_level(&context.digging.level, &u.uz); context.digging.effort = 0; +/*JP You("start %s downward.", verbing); +*/ + You("‰ºŒü‚«‚ÉŒ@‚è‚Í‚¶‚ß‚½D"); if (*u.ushops) shopdig(0); } else +/*JP You("continue %s downward.", verbing); +*/ + You("‰ºŒü‚«‚ÉŒ@‚é‚Ì‚ðÄŠJ‚µ‚½D"); did_dig_msg = FALSE; set_occupation(dig, verbing, 0); } @@ -1213,20 +1553,38 @@ boolean zap; if (mtmp) { if (zap || context.digging.warned) { +/*JP verbalize("Halt, vandal! You're under arrest!"); +*/ + verbalize("Ž~‚Ü‚ê–ì”ؐlI‚¨‚Ü‚¦‚ð‘ß•ß‚·‚éI"); (void) angry_guards(!!Deaf); } else { const char *str; if (IS_DOOR(lev->typ)) +/*JP str = "door"; +*/ + str = "”à"; else if (IS_TREE(lev->typ)) +/*JP str = "tree"; +*/ + str = "–Ø"; else if (IS_ROCK(lev->typ)) +/*JP str = "wall"; +*/ + str = "•Ç"; else +/*JP str = "fountain"; +*/ + str = "ò"; +/*JP verbalize("Hey, stop damaging that %s!", str); +*/ + verbalize("‚¨‚¢C%s‚ð”j‰ó‚·‚é‚Ì‚ð‚â‚ß‚ëI", str); context.digging.warned = TRUE; } if (is_digging()) @@ -1286,7 +1644,10 @@ register struct monst *mtmp; if (IS_WALL(here->typ)) { /* KMH -- Okay on arboreal levels (room walls are still stone) */ if (flags.verbose && !rn2(5)) +/*JP You_hear("crashing rock."); +*/ + You_hear("Šâ‚Ì‚­‚¾‚¯‚鉹‚ð•·‚¢‚½D"); if (*in_rooms(mtmp->mx, mtmp->my, SHOPBASE)) add_damage(mtmp->mx, mtmp->my, 0L); if (level.flags.is_maze_lev) { @@ -1332,7 +1693,10 @@ boolean unexpected; if (unexpected) { if (!Hallucination) +/*JP You_feel("an unexpected draft."); +*/ + You("Žv‚¢‚à‚æ‚炸C‚·‚«‚Ü•—‚ðŠ´‚¶‚½D"); else /* U.S. classification system uses 1-A for eligible to serve and 4-F for ineligible due to physical or mental defect; @@ -1389,8 +1753,13 @@ zap_dig() if (!is_whirly(mtmp->data)) { if (is_animal(mtmp->data)) +#if 0 /*JP*/ You("pierce %s %s wall!", s_suffix(mon_nam(mtmp)), mbodypart(mtmp, STOMACH)); +#else + You("%s‚Ì%s‚Ì•Ç‚ÉŒŠ‚ðŠJ‚¯‚½I", s_suffix(mon_nam(mtmp)), + mbodypart(mtmp, STOMACH)); +#endif mtmp->mhp = 1; /* almost dead */ expels(mtmp, mtmp->data, !is_animal(mtmp->data)); } @@ -1402,15 +1771,32 @@ zap_dig() if (u.dz < 0 || On_stairs(u.ux, u.uy)) { int dmg; if (On_stairs(u.ux, u.uy)) +#if 0 /*JP*/ pline_The("beam bounces off the %s and hits the %s.", (u.ux == xdnladder || u.ux == xupladder) ? "ladder" : "stairs", ceiling(u.ux, u.uy)); +#else + pline("Œõü‚Í%s‚Å”½ŽË‚µ%s‚É–½’†‚µ‚½D", + (u.ux == xdnladder || u.ux == xupladder) + ? "‚Í‚µ‚²" + : "ŠK’i", + ceiling(u.ux, u.uy)); +#endif +/*JP You("loosen a rock from the %s.", ceiling(u.ux, u.uy)); +*/ + pline("%s‚̊₪ƒKƒ^ƒKƒ^‚µ‚Í‚¶‚ß‚½D", ceiling(u.ux, u.uy)); +/*JP pline("It falls on your %s!", body_part(HEAD)); +*/ + pline("‚»‚ê‚Í‚ ‚È‚½‚Ì%s‚É—Ž‚¿‚Ä‚«‚½I", body_part(HEAD)); dmg = rnd((uarmh && is_metallic(uarmh)) ? 2 : 6); +/*JP losehp(Maybe_Half_Phys(dmg), "falling rock", KILLED_BY_AN); +*/ + losehp(Maybe_Half_Phys(dmg), "—ŽŠâ‚Å", KILLED_BY_AN); otmp = mksobj_at(ROCK, u.ux, u.uy, FALSE, FALSE); if (otmp) { (void) xname(otmp); /* set dknown, maybe bknown */ @@ -1491,7 +1877,10 @@ zap_dig() if (room->typ == SDOOR) room->typ = DOOR; else if (cansee(zx, zy)) +/*JP pline_The("door is razed!"); +*/ + pline("”à‚Í•ö‚ê—Ž‚¿‚½I"); watch_dig((struct monst *) 0, zx, zy, TRUE); room->doormask = D_NODOOR; unblock_point(zx, zy); /* vision */ @@ -1508,21 +1897,30 @@ zap_dig() room->typ = ROOM; unblock_point(zx, zy); /* vision */ } else if (!Blind) +/*JP pline_The("wall glows then fades."); +*/ + pline("•Ç‚͈êu‹P‚¢‚½D"); break; } else if (IS_TREE(room->typ)) { /* check trees before stone */ if (!(room->wall_info & W_NONDIGGABLE)) { room->typ = ROOM; unblock_point(zx, zy); /* vision */ } else if (!Blind) +/*JP pline_The("tree shudders but is unharmed."); +*/ + pline("–Ø‚Í‚ä‚ꂽ‚ª‚‚©‚È‚©‚Á‚½D"); break; } else if (room->typ == STONE || room->typ == SCORR) { if (!(room->wall_info & W_NONDIGGABLE)) { room->typ = CORR; unblock_point(zx, zy); /* vision */ } else if (!Blind) +/*JP pline_The("rock glows then fades."); +*/ + pline("Î‚͈êu‹P‚¢‚½D"); break; } } else if (IS_ROCK(room->typ)) { @@ -1565,7 +1963,10 @@ zap_dig() } if (shopdoor || shopwall) +/*JP pay_for_damage(shopdoor ? "destroy" : "dig into", FALSE); +*/ + pay_for_damage(shopdoor ? "”j‰ó‚·‚é" : "ŒŠ‚ð‚ ‚¯‚é", FALSE); return; } @@ -1955,8 +2356,14 @@ long timeout; if (flags.verbose) { char *cname = corpse_xname(obj, (const char *) 0, CXN_NO_PFX); +#if 0 /*JP:T*/ Your("%s%s %s away%c", obj == uwep ? "wielded " : "", cname, otense(obj, "rot"), obj == uwep ? '!' : '.'); +#else + pline("‚ ‚È‚½‚Ì%s%s‚Í•…‚Á‚Ä‚µ‚Ü‚Á‚½%s", + obj == uwep ? "Žè‚É‚µ‚Ä‚¢‚é" : "", cname, + obj == uwep ? "I" : "D"); +#endif } if (obj == uwep) { uwepgone(); /* now bare handed */ @@ -2018,9 +2425,15 @@ bury_you() debugpline0("bury_you"); if (!Levitation && !Flying) { if (u.uswallow) +/*JP You_feel("a sensation like falling into a trap!"); +*/ + You("㩂ɗŽ‚¿‚é‚悤‚ÈŠ´Šo‚É‚¨‚»‚í‚ꂽI"); else +/*JP pline_The("%s opens beneath you and you fall in!", +*/ + pline("%s‚ª‰º•û‚ÉŠJ‚«C‚ ‚È‚½‚Í—Ž‚¿‚½I", surface(u.ux, u.uy)); u.uburied = TRUE; @@ -2047,7 +2460,10 @@ escape_tomb() debugpline0("escape_tomb"); if ((Teleportation || can_teleport(youmonst.data)) && (Teleport_control || rn2(3) < Luck+2)) { +/*JP You("attempt a teleport spell."); +*/ + You("uŠÔˆÚ“®‚ðŽŽ‚Ý‚½D"); (void) dotele(); /* calls unearth_you() */ } else if (u.uburied) { /* still buried after 'port attempt */ boolean good; @@ -2057,6 +2473,7 @@ escape_tomb() || (unsolid(youmonst.data) && youmonst.data != &mons[PM_WATER_ELEMENTAL]) || (tunnels(youmonst.data) && !needspick(youmonst.data))) { +#if 0 /*JP*/ You("%s up through the %s.", (tunnels(youmonst.data) && !needspick(youmonst.data)) ? "try to tunnel" @@ -2064,6 +2481,15 @@ escape_tomb() ? "ooze" : "phase", surface(u.ux, u.uy)); +#else + You("%s‚É%s‚낤‚Æ‚µ‚½D", + surface(u.ux, u.uy), + (tunnels(youmonst.data) && !needspick(youmonst.data)) + ? "ƒgƒ“ƒlƒ‹‚ðŒ@" + : (amorphous(youmonst.data)) + ? "‚É‚¶‚Ý‚Ì‚Ú" + : "™X‚É‚Í‚¢‚ ‚ª"); +#endif good = (tunnels(youmonst.data) && !needspick(youmonst.data)) ? dighole(TRUE, FALSE, (coord *)0) : TRUE; @@ -2079,7 +2505,10 @@ struct obj *otmp; { debugpline0("bury_obj"); if (cansee(otmp->ox, otmp->oy)) +/*JP pline_The("objects on the %s tumble into a hole!", +*/ + pline_The("%s‚Ì•¨‘Ì‚ÍŒŠ‚É“]‚ª‚Á‚½I", surface(otmp->ox, otmp->oy)); bury_objs(otmp->ox, otmp->oy); diff --git a/src/do.c b/src/do.c index 2081016..401a997 100644 --- a/src/do.c +++ b/src/do.c @@ -4,6 +4,11 @@ /* Contains code for 'd', 'D' (drop), '>', '<' (up, down) */ +/* 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" #include "lev.h" @@ -75,24 +80,44 @@ boolean pushing; if (pushing) { char whobuf[BUFSZ]; +/*JP Strcpy(whobuf, "you"); +*/ + Strcpy(whobuf, "‚ ‚È‚½"); if (u.usteed) Strcpy(whobuf, y_monnam(u.usteed)); +#if 0 /*JP*/ pline("%s %s %s into the %s.", upstart(whobuf), vtense(whobuf, "push"), the(xname(otmp)), what); +#else + pline("%s‚Í%s‚ð%s‚Ì’†‚Ö‰Ÿ‚µ‚±‚ñ‚¾D", whobuf, + xname(otmp), what); +#endif if (flags.verbose && !Blind) +/*JP pline("Now you can cross it!"); +*/ + pline("‚³‚Ÿ“n‚ê‚邼I"); /* no splashing in this case */ } } if (!fills_up || !pushing) { /* splashing occurs */ if (!u.uinwater) { if (pushing ? !Blind : cansee(rx, ry)) { +#if 0 /*JP*/ There("is a large splash as %s %s the %s.", the(xname(otmp)), fills_up ? "fills" : "falls into", what); +#else + pline("%s‚ð%s‚É%s‚Æ‘å‚«‚È‚µ‚Ô‚«‚ª‚ ‚ª‚Á‚½D", + xname(otmp), what, + fills_up ? "–„‚ߍž‚Þ" : "—Ž‚·" ); +#endif } else if (!Deaf) +/*JP You_hear("a%s splash.", lava ? " sizzling" : ""); +*/ + You_hear("%s‚ÆŒ¾‚¤‰¹‚ð•·‚¢‚½D",lava ? "ƒVƒ…[ƒb" : "ƒpƒVƒƒƒb"); wake_nearto(rx, ry, 40); } @@ -100,17 +125,31 @@ boolean pushing; u.uinwater = 0; docrt(); vision_full_recalc = 1; +/*JP You("find yourself on dry land again!"); +*/ + You("‚¢‚‚̂܂ɂ©Š£‚¢‚½êŠ‚É‚¢‚½I"); } else if (lava && distu(rx, ry) <= 2) { int dmg; +/*JP You("are hit by molten lava%c", Fire_resistance ? '.' : '!'); +*/ + You("‚Ç‚ë‚Ç‚ë‚Ì—nŠâ‚Ń_ƒ[ƒW‚ðŽó‚¯‚½%s", Fire_resistance ? "D" : "I"); burn_away_slime(); dmg = d((Fire_resistance ? 1 : 3), 6); +#if 0 /*JP:T*/ losehp(Maybe_Half_Phys(dmg), /* lava damage */ "molten lava", KILLED_BY); +#else + losehp(Maybe_Half_Phys(dmg), /* lava damage */ + "‚Ç‚ë‚Ç‚ë‚Ì—nŠâ‚Å", KILLED_BY); +#endif } else if (!fills_up && flags.verbose && (pushing ? !Blind : cansee(rx, ry))) +/*JP pline("It sinks without a trace!"); +*/ + pline("‚»‚ê‚Í‚ ‚Æ‚©‚½‚à‚È‚­’¾‚ñ‚¾I"); } /* boulder is now gone */ @@ -133,6 +172,9 @@ struct obj *obj; int x, y; const char *verb; { +#if 1 /*JP*//* trap.c */ + extern const char *set_you[2]; +#endif struct trap *t; struct monst *mtmp; struct obj *otmp; @@ -151,9 +193,15 @@ const char *verb; if (((mtmp = m_at(x, y)) && mtmp->mtrapped) || (u.utrap && u.ux == x && u.uy == y)) { if (*verb) +#if 0 /*JP*/ pline_The("boulder %s into the pit%s.", vtense((const char *) 0, verb), (mtmp) ? "" : " with you"); +#else + pline("Šâ‚Í%s—Ž‚µŒŠ‚Ö%sD", + (mtmp) ? "" : "‚ ‚È‚½‚Æ‚¢‚Á‚µ‚å‚É", + jpast(verb)); +#endif if (mtmp) { if (!passes_walls(mtmp->data) && !throws_rocks(mtmp->data)) { if (hmon(mtmp, obj, TRUE) && !is_whirly(mtmp->data)) @@ -162,8 +210,13 @@ const char *verb; mtmp->mtrapped = 0; } else { if (!Passes_walls && !throws_rocks(youmonst.data)) { +#if 0 /*JP*/ losehp(Maybe_Half_Phys(rnd(15)), "squished under a boulder", NO_KILLER_PREFIX); +#else + losehp(Maybe_Half_Phys(rnd(15)), + "Šâ‚̉º‚Œׂ³‚ê‚Ä", KILLED_BY); +#endif return FALSE; /* player remains trapped */ } else u.utrap = 0; @@ -171,15 +224,28 @@ const char *verb; } if (*verb) { if (Blind && (x == u.ux) && (y == u.uy)) { +/*JP You_hear("a CRASH! beneath you."); +*/ + You_hear("‘«Œ³‚ʼn½‚©‚ªÓ‚¯‚鉹‚ð•·‚¢‚½D"); } else if (!Blind && cansee(x, y)) { +#if 0 /*JP*/ pline_The("boulder %s%s.", t->tseen ? "" : "triggers and ", t->ttyp == TRAPDOOR ? "plugs a trap door" : t->ttyp == HOLE ? "plugs a hole" : "fills a pit"); +#else + pline_The("Šâ‚Í%s%sD", t->tseen ? "" : "㩂ð‹N“®‚µ‚āC", + t->ttyp == TRAPDOOR ? "—Ž‚µ”à‚ð–„‚ß‚½" : + t->ttyp == HOLE ? "ŒŠ‚ð–„‚ß‚½" : + "—Ž‚µŒŠ‚ð–„‚ß‚½"); +#endif } else { +/*JP You_hear("a boulder %s.", verb); +*/ + You_hear("Šâ‚ª%s‰¹‚ð•·‚¢‚½D", verb); } } deltrap(t); @@ -197,9 +263,15 @@ const char *verb; && ((x == u.ux) && (y == u.uy))) { if (!Underwater) { if (weight(obj) > 9) { +/*JP pline("Splash!"); +*/ + pline("ƒoƒVƒƒƒbI"); } else if (Levitation || Flying) { +/*JP pline("Plop!"); +*/ + pline("ƒ|ƒ`ƒƒƒ“I"); } } map_background(x, y, 0); @@ -209,10 +281,18 @@ const char *verb; } else if (u.ux == x && u.uy == y && (t = t_at(x, y)) != 0 && uteetering_at_seen_pit(t)) { if (Blind && !Deaf) +/*JP You_hear("%s tumble downwards.", the(xname(obj))); +*/ + You_hear("%s‚ª‰º‚Ì•û‚Ö“]‚ª‚Á‚Ä‚¢‚­‰¹‚ð•·‚¢‚½D", xname(obj)); else +#if 0 /*JP*/ pline("%s %s into %s pit.", The(xname(obj)), otense(obj, "tumble"), the_your[t->madeby_u]); +#else + pline("%s‚Í%s—Ž‚Æ‚µŒŠ‚É“]‚ª‚肨‚¿‚½D", xname(obj), + set_you[t->madeby_u]); +#endif } else if (obj->globby) { /* Globby things like puddings might stick together */ while (obj @@ -245,13 +325,22 @@ register struct obj *obj; } if (obj->blessed || obj->cursed) { +#if 0 /*JP*/ There("is %s flash as %s %s the altar.", an(hcolor(obj->blessed ? NH_AMBER : NH_BLACK)), doname(obj), otense(obj, "hit")); +#else + pline("%s‚ªÕ’d‚ɐG‚ê‚é‚Æ%sŒõ‚Á‚½D", + doname(obj), + jconj_adj(hcolor(obj->blessed ? NH_AMBER : NH_BLACK))); +#endif if (!Hallucination) obj->bknown = 1; } else { +/*JP pline("%s %s on the altar.", Doname2(obj), otense(obj, "land")); +*/ + pline("%s‚ðÕ’d‚̏ã‚É’u‚¢‚½D", Doname2(obj)); if (obj->oclass != COIN_CLASS) obj->bknown = 1; } @@ -340,53 +429,102 @@ register struct obj *obj; boolean ideed = TRUE; boolean nosink = FALSE; +/*JP You("drop %s down the drain.", doname(obj)); +*/ + You("%s‚ð”r…Œû‚É—Ž‚µ‚½D", doname(obj)); obj->in_use = TRUE; /* block free identification via interrupt */ switch (obj->otyp) { /* effects that can be noticed without eyes */ case RIN_SEARCHING: +/*JP You("thought %s got lost in the sink, but there it is!", yname(obj)); +*/ + You("%s‚ðŽ¸‚Á‚½‹C‚ª‚µ‚½‚ªC‹C‚Ì‚¹‚¢‚¾‚Á‚½I", yname(obj)); goto giveback; case RIN_SLOW_DIGESTION: +/*JP pline_The("ring is regurgitated!"); +*/ + pline("Žw—Ö‚Í‹t—¬‚µ‚½I"); giveback: obj->in_use = FALSE; dropx(obj); trycall(obj); return; case RIN_LEVITATION: +/*JP pline_The("sink quivers upward for a moment."); +*/ + pline("—¬‚µ‘ä‚͈êuCã‰º‚ɐk‚¦‚½D"); break; case RIN_POISON_RESISTANCE: +/*JP You("smell rotten %s.", makeplural(fruitname(FALSE))); +*/ + pline("•…‚Á‚½%s‚̂悤‚È“õ‚¢‚ª‚µ‚½D", fruitname(FALSE)); break; case RIN_AGGRAVATE_MONSTER: +#if 0 /*JP:T*/ pline("Several %s buzz angrily around the sink.", Hallucination ? makeplural(rndmonnam(NULL)) : "flies"); +#else + pline("”•C‚Ì%s‚ªƒuƒ“ƒuƒ“—¬‚µ‘ä‚̉ñ‚è‚ð”ò‚Ñ‚Ü‚í‚Á‚½D", + Hallucination ? rndmonnam(NULL) : "ƒnƒG"); +#endif break; case RIN_SHOCK_RESISTANCE: +/*JP pline("Static electricity surrounds the sink."); +*/ + pline("—¬‚µ‘䂪ƒsƒŠƒsƒŠ‚µ‚Í‚¶‚ß‚½D"); break; case RIN_CONFLICT: +/*JP You_hear("loud noises coming from the drain."); +*/ + You_hear("”r…Œû‚©‚ç‚Ì‘å‚«‚ȉ¹‚ð•·‚¢‚½D"); break; case RIN_SUSTAIN_ABILITY: /* KMH */ +/*JP pline_The("water flow seems fixed."); +*/ + pline("…‚Ì—¬‚ꂪˆê’è‚É‚È‚Á‚½‚悤‚¾D"); break; case RIN_GAIN_STRENGTH: +#if 0 /*JP*/ pline_The("water flow seems %ser now.", (obj->spe < 0) ? "weak" : "strong"); +#else + pline("…‚Ì—¬‚ꂪ%s‚È‚Á‚½‚悤‚¾D", + (obj->spe<0) ? "Žã‚­" : "‹­‚­"); +#endif break; case RIN_GAIN_CONSTITUTION: +#if 0 /*JP*/ pline_The("water flow seems %ser now.", (obj->spe < 0) ? "less" : "great"); +#else + pline("—¬‚ê‚鐅‚Ì—Ê‚ª%s‚È‚Á‚½‚悤‚¾D", + (obj->spe < 0) ? "­‚È‚­" : "‘½‚­"); +#endif break; case RIN_INCREASE_ACCURACY: /* KMH */ +#if 0 /*JP*/ pline_The("water flow %s the drain.", (obj->spe < 0) ? "misses" : "hits"); +#else + pline_The("…‚ª”r…Œû%s‚悤‚É‚È‚Á‚½D", + (obj->spe < 0) ? "‚©‚甽‚ê‚é" : "‚ß‚ª‚¯‚Ä—¬‚ê‚é"); +#endif break; case RIN_INCREASE_DAMAGE: +#if 0 /*JP*/ pline_The("water's force seems %ser now.", (obj->spe < 0) ? "small" : "great"); +#else + pline_The("…‚̐¨‚¢‚ª%s‚È‚Á‚½‚悤‚¾D", + (obj->spe < 0) ? "Žã‚­" : "‹­‚­"); +#endif break; case RIN_HUNGER: ideed = FALSE; @@ -395,8 +533,12 @@ register struct obj *obj; if (otmp != uball && otmp != uchain && !obj_resists(otmp, 1, 99)) { if (!Blind) { +#if 0 /*JP*/ pline("Suddenly, %s %s from the sink!", doname(otmp), otense(otmp, "vanish")); +#else + pline("“Ë‘RC%s‚Í—¬‚µ‘ä‚©‚çÁ‚¦‚½I", doname(otmp)); +#endif ideed = TRUE; } delobj(otmp); @@ -405,7 +547,10 @@ register struct obj *obj; break; case MEAT_RING: /* Not the same as aggravate monster; besides, it's obvious. */ +/*JP pline("Several flies buzz around the sink."); +*/ + pline("”•C‚̃nƒG‚ªƒuƒ“ƒuƒ“—¬‚µ‘ä‚̉ñ‚è‚ð”ò‚Ñ‚Ü‚í‚Á‚½D"); break; default: ideed = FALSE; @@ -415,46 +560,91 @@ register struct obj *obj; ideed = TRUE; switch (obj->otyp) { /* effects that need eyes */ case RIN_ADORNMENT: +/*JP pline_The("faucets flash brightly for a moment."); +*/ + pline("ŽÖŒû‚͈êu–¾‚é‚­‹P‚¢‚½D"); break; case RIN_REGENERATION: +/*JP pline_The("sink looks as good as new."); +*/ + pline("—¬‚µ‘䂪V•i‚̂悤‚É‚È‚Á‚½D"); break; case RIN_INVISIBILITY: +/*JP You("don't see anything happen to the sink."); +*/ + pline("—¬‚µ‘ä‚ɉ½‚ª‹N‚«‚½‚Ì‚©Œ©‚¦‚È‚©‚Á‚½D"); break; case RIN_FREE_ACTION: +/*JP You_see("the ring slide right down the drain!"); +*/ + pline("Žw—Ö‚ª”r…Œû‚ð‚·‚é‚è‚Æ”ð‚¯‚é‚Ì‚ðŒ©‚½I"); break; case RIN_SEE_INVISIBLE: +#if 0 /*JP*/ You_see("some %s in the sink.", Hallucination ? "oxygen molecules" : "air"); +#else + pline("—¬‚µ‘ä‚̏ã‚Ì%s‚ªŒ©‚¦‚½D", + Hallucination ? "Ž_‘f•ªŽq" : "‹ó‹C"); +#endif break; case RIN_STEALTH: +/*JP pline_The("sink seems to blend into the floor for a moment."); +*/ + pline("ˆêuC—¬‚µ‘䂪°‚É—n‚¯‚±‚ñ‚¾‚悤‚ÉŒ©‚¦‚½D"); break; case RIN_FIRE_RESISTANCE: +/*JP pline_The("hot water faucet flashes brightly for a moment."); +*/ + pline("ˆêuC”M“’‚ÌŽÖŒû‚ª–¾‚é‚­‹P‚¢‚½D"); break; case RIN_COLD_RESISTANCE: +/*JP pline_The("cold water faucet flashes brightly for a moment."); +*/ + pline("ˆêuC—␅‚ÌŽÖŒû‚ª–¾‚é‚­‹P‚¢‚½D"); break; case RIN_PROTECTION_FROM_SHAPE_CHAN: +/*JP pline_The("sink looks nothing like a fountain."); +*/ + pline("—¬‚µ‘ä‚͐ò‚Æ‚Í‚Ü‚Á‚½‚­ˆá‚¤‚à‚̂̂悤‚ÉŒ©‚¦‚½D"); break; case RIN_PROTECTION: +#if 0 /*JP*/ pline_The("sink glows %s for a moment.", hcolor((obj->spe < 0) ? NH_BLACK : NH_SILVER)); +#else + pline("—¬‚µ‘ä‚͈êu%s‹P‚¢‚½D", + jconj_adj(hcolor((obj->spe<0) ? NH_BLACK : NH_SILVER))); +#endif break; case RIN_WARNING: +#if 0 /*JP*/ pline_The("sink glows %s for a moment.", hcolor(NH_WHITE)); +#else + pline("—¬‚µ‘ä‚͈êu%s‹P‚¢‚½D", jconj_adj(hcolor(NH_WHITE))); +#endif break; case RIN_TELEPORTATION: nosink = teleport_sink(); +/*JP pline_The("sink %svanishes.", nosink ? "" : "momentarily "); +*/ + pline_The("—¬‚µ‘ä‚Í%sÁ‚¦‚½D", nosink ? "" : "ˆêu"); break; case RIN_TELEPORT_CONTROL: +/*JP: "beam aboard" ‚̓Xƒ^[ƒgƒŒƒbƒN‚́u“]‘—v*/ +/*JP pline_The("sink looks like it is being beamed aboard somewhere."); +*/ + pline("—¬‚µ‘ä‚Í‚Ç‚±‚©‚É“]‘—‚³‚ê‚悤‚Æ‚µ‚Ä‚¢‚é‚悤‚ÉŒ©‚¦‚½D"); break; case RIN_POLYMORPH: polymorph_sink(); @@ -462,17 +652,26 @@ register struct obj *obj; break; case RIN_POLYMORPH_CONTROL: pline_The( +/*JP "sink momentarily looks like a regularly erupting geyser."); +*/ + "—¬‚µ‘ä‚͈êu‹K‘¥³‚µ‚­•¬o‚·‚éŠÔŒ‡ò‚̂悤‚ÉŒ©‚¦‚½D"); break; } } if (ideed) trycall(obj); else if (!nosink) +/*JP You_hear("the ring bouncing down the drainpipe."); +*/ + You_hear("Žw—Ö‚ª”r…Œû‚É“–‚½‚è‚È‚ª‚ç—Ž‚¿‚鉹‚ð•·‚¢‚½D"); if (!rn2(20) && !nosink) { +/*JP pline_The("sink backs up, leaving %s.", doname(obj)); +*/ + pline("—¬‚µ‘䂪‹t—¬‚µ‚āC%s‚ª–ß‚Á‚Ä‚«‚½D", doname(obj)); obj->in_use = FALSE; dropx(obj); } else @@ -487,7 +686,10 @@ const char *word; { if (obj->owornmask & (W_ARMOR | W_ACCESSORY)) { if (*word) +/*JP Norep("You cannot %s %s you are wearing.", word, something); +*/ + Norep("‚ ‚È‚½‚ªg‚ɂ‚¯‚Ä‚¢‚é‚à‚Ì‚ð%s‚±‚Æ‚Í‚Å‚«‚È‚¢D", word); return FALSE; } if (obj->otyp == LOADSTONE && obj->cursed) { @@ -498,8 +700,13 @@ const char *word; implicitly forced to be 1; replicate its kludge... */ if (!strcmp(word, "throw") && obj->quan > 1L) obj->corpsenm = 1; +#if 0 /*JP*/ pline("For some reason, you cannot %s%s the stone%s!", word, obj->corpsenm ? " any of" : "", plur(obj->quan)); +#else + pline("‚Ç‚¤‚¢‚¤‚킯‚©C‚ ‚È‚½‚͐΂ð%s‚±‚Æ‚Í‚Å‚«‚È‚¢I", + word); +#endif } obj->corpsenm = 0; /* reset */ obj->bknown = 1; @@ -507,12 +714,18 @@ const char *word; } if (obj->otyp == LEASH && obj->leashmon != 0) { if (*word) +/*JP pline_The("leash is tied around your %s.", body_part(HAND)); +*/ + pline("•R‚Í‚ ‚È‚½‚Ì%s‚ÉŒ‹‚т‚¯‚ç‚ê‚Ä‚¢‚éD", body_part(HAND)); return FALSE; } if (obj->owornmask & W_SADDLE) { if (*word) +/*JP You("cannot %s %s you are sitting on.", word, something); +*/ + You("æ‚Á‚Ä‚¢‚éŠÔ‚Í%s‚±‚Æ‚Í‚Å‚«‚È‚¢D", word); return FALSE; } return TRUE; @@ -524,7 +737,10 @@ register struct obj *obj; { if (!obj) return 0; +/*JP if (!canletgo(obj, "drop")) +*/ + if (!canletgo(obj, "’u‚­")) return 0; if (obj == uwep) { if (welded(uwep)) { @@ -547,8 +763,13 @@ register struct obj *obj; /* doname can call s_suffix, reusing its buffer */ Strcpy(buf, s_suffix(mon_nam(u.ustuck))); +#if 0 /*JP*/ You("drop %s into %s %s.", doname(obj), buf, mbodypart(u.ustuck, STOMACH)); +#else + You("%s‚ð%s‚Ì%s‚É’u‚¢‚½D", doname(obj), buf, + mbodypart(u.ustuck, STOMACH)); +#endif } } else { if ((obj->oclass == RING_CLASS || obj->otyp == MEAT_RING) @@ -565,7 +786,10 @@ register struct obj *obj; if (levhack) ELevitation = W_ART; /* other than W_ARTI */ if (flags.verbose) +/*JP You("drop %s.", doname(obj)); +*/ + You("%s‚ð’u‚¢‚½D", doname(obj)); /* Ensure update when we drop gold objects */ if (obj->oclass == COIN_CLASS) context.botl = 1; @@ -576,7 +800,10 @@ register struct obj *obj; return 1; } if (!IS_ALTAR(levl[u.ux][u.uy].typ) && flags.verbose) +/*JP You("drop %s.", doname(obj)); +*/ + You("%s‚ð’u‚¢‚½D", doname(obj)); } dropx(obj); return 1; @@ -623,7 +850,10 @@ boolean with_impact; if (obj == uswapwep) setuswapwep((struct obj *) 0); +/*JP if (!u.uswallow && flooreffects(obj, u.ux, u.uy, "drop")) +*/ + if (!u.uswallow && flooreffects(obj,u.ux,u.uy,"—Ž‚¿‚é")) return; /* uswallow check done by GAN 01/29/87 */ if (u.uswallow) { @@ -746,7 +976,10 @@ int retry; all_categories = (retry == -2); } else if (flags.menu_style == MENU_FULL) { all_categories = FALSE; +/*JP n = query_category("Drop what type of items?", invent, +*/ + n = query_category("‚Ç‚ÌŽí—ނ̃AƒCƒeƒ€‚ð’u‚«‚Ü‚·‚©H", invent, UNPAID_TYPES | ALL_TYPES | CHOOSE_ALL | BUC_BLESSED | BUC_CURSED | BUC_UNCURSED | BUC_UNKNOWN, &pick_list, PICK_ANY); @@ -797,7 +1030,10 @@ int retry; bypass_objlist(invent, FALSE); } else { /* should coordinate with perm invent, maybe not show worn items */ +/*JP n = query_objlist("What would you like to drop?", invent, +*/ + n = query_objlist("‚Ç‚ê‚ð’u‚«‚Ü‚·‚©H", invent, USE_INVLET | INVORDER_SORT, &pick_list, PICK_ANY, all_categories ? allow_all : allow_category); if (n > 0) { @@ -901,9 +1137,15 @@ dodown() ladder_down = (glyph_to_cmap(levl[u.ux][u.uy].glyph) == S_dnladder); } +#if 0 /*JP*/ floating_above(stairs_down ? "stairs" : ladder_down ? "ladder" : surface(u.ux, u.uy)); +#else + floating_above(stairs_down ? "ŠK’i" : ladder_down + ? "‚Í‚µ‚²" + : surface(u.ux, u.uy)); +#endif return 0; /* didn't move */ } if (!stairs_down && !ladder_down) { @@ -916,36 +1158,66 @@ dodown() if (flags.autodig && !context.nopick && uwep && is_pick(uwep)) { return use_pick_axe2(uwep); } else { +/*JP You_cant("go down here."); +*/ + pline("‚±‚±‚ł͍~‚è‚邱‚Æ‚ª‚Å‚«‚È‚¢D"); return 0; } } } if (u.ustuck) { +#if 0 /*JP*/ You("are %s, and cannot go down.", !u.uswallow ? "being held" : is_animal(u.ustuck->data) ? "swallowed" : "engulfed"); +#else + You("%s~‚è‚邱‚Æ‚ª‚Å‚«‚È‚¢D", + !u.uswallow ? "‚‚©‚Ü‚¦‚ç‚ê‚Ä‚¢‚Ä" : is_animal(u.ustuck->data) + ? "ˆù‚ݍž‚Ü‚ê‚Ä‚¢‚Ä" + : "Šª‚«ž‚Ü‚ê‚Ä‚¢‚Ä"); +#endif return 1; } if (on_level(&valley_level, &u.uz) && !u.uevent.gehennom_entered) { +/*JP You("are standing at the gate to Gehennom."); +*/ + You("ƒQƒwƒi‚Ì–å‚Ì‘O‚É—§‚Á‚Ä‚¢‚éD"); +/*JP pline("Unspeakable cruelty and harm lurk down there."); +*/ + pline("Œ¾—t‚É‚·‚ç‚Å‚«‚È‚¢Žc‹s‚ÆŽSŽ–‚ª‚±‚̉º‚ɐö‚ñ‚Å‚¢‚éD"); +/*JP if (yn("Are you sure you want to enter?") != 'y') +*/ + if (yn("–{“–‚É“ü‚è‚Ü‚·‚©H") != 'y') return 0; else +/*JP pline("So be it."); +*/ + pline("‚È‚çD‚«‚É‚·‚ê‚΂悢D"); u.uevent.gehennom_entered = 1; /* don't ask again */ } if (!next_to_u()) { +/*JP You("are held back by your pet!"); +*/ + You("ƒyƒbƒg‚Ɉø‚«‚à‚Ç‚³‚ꂽI"); return 0; } if (trap) +#if 0 /*JP*/ You("%s %s.", Flying ? "fly" : locomotion(youmonst.data, "jump"), trap->ttyp == HOLE ? "down the hole" : "through the trap door"); +#else + You("%sD", + trap->ttyp == HOLE ? "ŒŠ‚ð~‚肽" : "—Ž‚µ”à‚ð’ʂ蔲‚¯‚½"); +#endif if (trap && Is_stronghold(&u.uz)) { goto_hell(FALSE, TRUE); @@ -974,31 +1246,52 @@ doup() && (!xupladder || u.ux != xupladder || u.uy != yupladder) && (!sstairs.sx || u.ux != sstairs.sx || u.uy != sstairs.sy || !sstairs.up)) { +/*JP You_cant("go up here."); +*/ + You("‚±‚±‚ł͏ã‚邱‚Æ‚ª‚Å‚«‚È‚¢D"); return 0; } if (stucksteed(TRUE)) { return 0; } if (u.ustuck) { +#if 0 /*JP*/ You("are %s, and cannot go up.", !u.uswallow ? "being held" : is_animal(u.ustuck->data) ? "swallowed" : "engulfed"); +#else + You("%sã‚邱‚Æ‚ª‚Å‚«‚È‚¢D", + !u.uswallow ? "‚‚©‚Ü‚¦‚ç‚ê‚Ä‚¢‚Ä" : is_animal(u.ustuck->data) + ? "ˆù‚ݍž‚Ü‚ê‚Ä‚¢‚Ä" + : "Šª‚«ž‚Ü‚ê‚Ä‚¢‚Ä"); +#endif return 1; } if (near_capacity() > SLT_ENCUMBER) { /* No levitation check; inv_weight() already allows for it */ +#if 0 /*JP*/ Your("load is too heavy to climb the %s.", levl[u.ux][u.uy].typ == STAIRS ? "stairs" : "ladder"); +#else + You("•¨‚ðŽ‚¿‚·‚¬‚Ä%s‚ðã‚邱‚Æ‚ª‚Å‚«‚È‚¢D", + levl[u.ux][u.uy].typ == STAIRS ? "ŠK’i" : "‚Í‚µ‚²"); +#endif return 1; } if (ledger_no(&u.uz) == 1) { +/*JP if (yn("Beware, there will be no return! Still climb?") != 'y') +*/ + if (yn("‹C‚ð‚‚¯‚ëC–ß‚ê‚È‚¢‚¼I‚»‚ê‚Å‚àã‚éH") != 'y') return 0; } if (!next_to_u()) { +/*JP You("are held back by your pet!"); +*/ + You("ƒyƒbƒg‚Ɉø‚«‚à‚Ç‚³‚ꂽI"); return 0; } at_ladder = (boolean) (levl[u.ux][u.uy].typ == LADDER); @@ -1037,8 +1330,14 @@ currentlevel_rewrite() if (!savelev(fd, ledger_no(&u.uz), COUNT_SAVE)) { (void) nhclose(fd); delete_levelfile(ledger_no(&u.uz)); +/*JP pline("NetHack is out of disk space for making levels!"); +*/ + pline("V‚µ‚¢ƒŒƒxƒ‹‚ðì‚邽‚߂̃fƒBƒXƒN—e—Ê‚ª‘«‚è‚È‚¢I"); +/*JP You("can save, quit, or continue playing."); +*/ + You("ƒZ[ƒu‚·‚é‚©I—¹‚·‚é‚©C‚ ‚é‚¢‚̓vƒŒƒC‚𑱍s‚Å‚«‚éD"); return -1; } #endif @@ -1138,7 +1437,10 @@ boolean at_stairs, falling, portal; new_ledger = ledger_no(newlevel); +/*JP pline("A mysterious force momentarily surrounds you..."); +*/ + pline("ˆêuŠï–­‚È—Í‚ª‚ ‚È‚½‚ð•ï‚ñ‚¾DDD"); if (on_level(newlevel, &u.uz)) { (void) safe_teleds(FALSE); (void) next_to_u(); @@ -1152,7 +1454,10 @@ boolean at_stairs, falling, portal; * (s)he has been given the go-ahead by the leader. */ if (on_level(&u.uz, &qstart_level) && !newdungeon && !ok_to_quest()) { +/*JP pline("A mysterious force prevents you from descending."); +*/ + pline("Šï–­‚È—Í‚ª‚ ‚È‚½‚ª~‚è‚é‚Ì‚ð–W‚°‚½D"); return; } @@ -1290,11 +1595,17 @@ boolean at_stairs, falling, portal; u_on_dnstairs(); /* you climb up the {stairs|ladder}; fly up the stairs; fly up along the ladder */ +#if 0 /*JP*/ pline("%s %s up%s the %s.", (Punished && !Levitation) ? "With great effort you" : "You", Flying ? "fly" : "climb", (Flying && at_ladder) ? " along" : "", at_ladder ? "ladder" : "stairs"); +#else + pline("%s%s‚ðã‚Á‚½D", + (Punished && !Levitation) ? "‚â‚Á‚Æ‚±‚³" : "", + at_ladder ? "‚Í‚µ‚²" : "ŠK’i"); +#endif } else { /* down */ if (at_ladder) u_on_newpos(xupladder, yupladder); @@ -1306,11 +1617,19 @@ boolean at_stairs, falling, portal; ; /* stayed on same level? (no transit effects) */ } else if (Flying) { if (flags.verbose) +#if 0 /*JP*/ You("fly down %s.", at_ladder ? "along the ladder" : "the stairs"); +#else + You("%s”ò‚ñ‚ō~‚肽D", + at_ladder ? "‚Í‚µ‚²‚ɉˆ‚Á‚Ä" : "ŠK’i‚ð"); +#endif } else if (near_capacity() > UNENCUMBERED || Punished || Fumbling) { +/*JP You("fall down the %s.", at_ladder ? "ladder" : "stairs"); +*/ + You("%s‚ð“]‚°—Ž‚¿‚½D", at_ladder ? "‚Í‚µ‚²" : "ŠK’i"); if (Punished) { drag_down(); ballrelease(FALSE); @@ -1320,14 +1639,28 @@ boolean at_stairs, falling, portal; dismount_steed(DISMOUNT_FELL); else losehp(Maybe_Half_Phys(rnd(3)), +/*JP at_ladder ? "falling off a ladder" +*/ + at_ladder ? "‚Í‚µ‚²‚©‚ç—Ž‚¿‚Ä" +/*JP : "tumbling down a flight of stairs", +*/ + : "ŠK’i‚ð“]‚°—Ž‚¿‚Ä", KILLED_BY); +/*JP selftouch("Falling, you"); +*/ + selftouch("—Ž‚¿‚È‚ª‚çC‚ ‚È‚½‚Í"); } else { /* ordinary descent */ if (flags.verbose) +#if 0 /*JP*/ You("%s.", at_ladder ? "climb down the ladder" : "descend the stairs"); +#else + You("%s‚ð~‚肽D", at_ladder ? "‚Í‚µ‚²" + : "ŠK’i"); +#endif } } } else { /* trap door or level_tele or In_endgame */ @@ -1335,7 +1668,10 @@ boolean at_stairs, falling, portal; if (falling) { if (Punished) ballfall(); +/*JP selftouch("Falling, you"); +*/ + selftouch("—Ž‚¿‚È‚ª‚çC‚ ‚È‚½‚Í"); } } @@ -1414,14 +1750,26 @@ boolean at_stairs, falling, portal; /* Check whether we just entered Gehennom. */ if (!In_hell(&u.uz0) && Inhell) { if (Is_valley(&u.uz)) { +/*JP You("arrive at the Valley of the Dead..."); +*/ + You("Ž€‚Ì’J‚É“ž’B‚µ‚½DDD"); +/*JP pline_The("odor of burnt flesh and decay pervades the air."); +*/ + pline("Å‚°‚鎀“÷‚â•…“÷‚̈«L‚ª‚½‚¾‚æ‚Á‚Ä‚¢‚éD"); #ifdef MICRO display_nhwindow(WIN_MESSAGE, FALSE); #endif +/*JP You_hear("groans and moans everywhere."); +*/ + You_hear("‚»‚±‚©‚µ‚±‚©‚ç‚Ì‚¤‚ß‚«º‚₤‚Ȃ萺‚ð•·‚¢‚½D"); } else +/*JP pline("It is hot here. You smell smoke..."); +*/ + pline("‚±‚±‚͏‹‚¢D‰Œ‚Ì“õ‚¢‚ª‚·‚éDDD"); u.uachieve.enter_gehennom = 1; } /* in case we've managed to bypass the Valley's stairway down */ @@ -1430,14 +1778,34 @@ boolean at_stairs, falling, portal; if (familiar) { static const char *const fam_msgs[4] = { +/*JP "You have a sense of deja vu.", +*/ + "ŠùŽ‹Š´‚É‚¨‚»‚í‚ꂽD", +/*JP "You feel like you've been here before.", +*/ + "‘O‚É‚±‚±‚É—ˆ‚½‚±‚Æ‚ª‚ ‚é‚悤‚È‹C‚ª‚µ‚½D", +#if 0 /*JP*/ "This place %s familiar...", 0 /* no message */ +#else + "‚±‚̏ꏊ‚͉ù‚©‚µ‚¢DDD", 0 /* no message */ +#endif }; static const char *const halu_fam_msgs[4] = { +/*JP "Whoa! Everything %s different.", +*/ + "ƒIƒƒbI‚Ü‚Á‚½‚­•Ï‚í‚Á‚¿‚Ü‚Á‚Ä‚éD", +/*JP "You are surrounded by twisty little passages, all alike.", +*/ + "‚ ‚È‚½‚Í‚Ü‚ª‚è‚­‚Ë‚Á‚½’ʘH‚É‚©‚±‚Ü‚ê‚Ä‚¢‚½DDD", +#if 0 /*JP*/ "Gee, this %s like uncle Conan's place...", 0 /* no message */ +#else + "ƒQ[IƒRƒiƒ“‚¨‚¶‚³‚ñ‚̏ꏊ‚ÉŽ—‚Ä‚¢‚éDDD", 0 /* no message */ +#endif }; const char *mesg; char buf[BUFSZ]; @@ -1447,10 +1815,12 @@ boolean at_stairs, falling, portal; mesg = halu_fam_msgs[which]; else mesg = fam_msgs[which]; +#if 0 /*JP:“ú–{Œê‚Å‚Í‚»‚±‚Ü‚Å‚µ‚È‚¢*/ if (mesg && index(mesg, '%')) { Sprintf(buf, mesg, !Blind ? "looks" : "seems"); mesg = buf; } +#endif if (mesg) pline1(mesg); } @@ -1465,12 +1835,21 @@ boolean at_stairs, falling, portal; onquest(); /* might be reaching locate|goal level */ } else if (In_V_tower(&u.uz)) { if (newdungeon && In_hell(&u.uz0)) +/*JP pline_The("heat and smoke are gone."); +*/ + pline("”M‚ƉŒ‚è‚͏Á‚¦‚³‚Á‚½D"); } else if (Is_knox(&u.uz)) { /* alarm stops working once Croesus has died */ if (new || !mvitals[PM_CROESUS].died) { +/*JP You("have penetrated a high security area!"); +*/ + You("Å‚‹@–§‚̏ꏊ‚Ö“¥‚ݍž‚ñ‚¾I"); +/*JP pline("An alarm sounds!"); +*/ + pline("Œx•ñ‚ª‚È‚Á‚½I"); for (mtmp = fmon; mtmp; mtmp = mtmp->nmon) { if (DEADMONSTER(mtmp)) continue; @@ -1479,9 +1858,15 @@ boolean at_stairs, falling, portal; } } else { if (new && Is_rogue_level(&u.uz)) +/*JP You("enter what seems to be an older, more primitive world."); +*/ + You("ŒÃ‚­‚³‚­C‚¸‚¢‚Ô‚ñ’Pƒ‚Ȑ¢ŠE‚ÉŒ©‚¦‚é•”‰®‚É“ü‚Á‚½D"); /* main dungeon message from your quest leader */ +/*JP if (!In_quest(&u.uz0) && at_dgn_entrance("The Quest") +*/ + if (!In_quest(&u.uz0) && at_dgn_entrance("ƒNƒGƒXƒg") && !(u.uevent.qcompleted || u.uevent.qexpelled || quest_status.leader_is_dead)) { if (!u.uevent.qcalled) { @@ -1607,7 +1992,10 @@ struct obj *corpse; is_uwep = (corpse == uwep); chewed = (corpse->oeaten != 0); Strcpy(cname, +/*JP corpse_xname(corpse, chewed ? "bite-covered" : (const char *) 0, +*/ + corpse_xname(corpse, chewed ? "Ž•Œ^‚̂‚¢‚½" : (const char *) 0, CXN_SINGULAR)); mcarry = (where == OBJ_MINVENT) ? corpse->ocarry : 0; @@ -1628,27 +2016,50 @@ struct obj *corpse; switch (where) { case OBJ_INVENT: if (is_uwep) +/*JP pline_The("%s writhes out of your grasp!", cname); +*/ + pline_The("%s‚Í‚à‚ª‚¢‚½I", cname); else +/*JP You_feel("squirming in your backpack!"); +*/ + pline("”w•‰‚¢‘܂ʼn½‚©‚ª‚à‚ª‚¢‚Ä‚¢‚é‚悤‚È‹C‚ª‚µ‚½I"); break; case OBJ_FLOOR: if (cansee(mtmp->mx, mtmp->my)) +#if 0 /*JP*/ pline("%s rises from the dead!", chewed ? Adjmonnam(mtmp, "bite-covered") : Monnam(mtmp)); +#else + pline("%s‚ª‘h‚Á‚½I", + chewed ? Adjmonnam(mtmp, "Ž•Œ^‚̂‚¢‚½") + : Monnam(mtmp)); +#endif break; case OBJ_MINVENT: /* probably a nymph's */ if (cansee(mtmp->mx, mtmp->my)) { if (canseemon(mcarry)) +#if 0 /*JP*/ pline("Startled, %s drops %s as it revives!", mon_nam(mcarry), an(cname)); +#else + pline("%s‚ª¶‚«‚©‚¦‚Á‚½‚Ì‚É‚Ñ‚Á‚­‚肵‚āC%s‚Í%s‚ð—Ž‚µ‚½I", + cname, mon_nam(mcarry), cname); +#endif else +#if 0 /*JP*/ pline("%s suddenly appears!", chewed ? Adjmonnam(mtmp, "bite-covered") : Monnam(mtmp)); +#else + pline("%s‚ª“Ë‘RŒ»‚í‚ꂽI", + chewed ? Adjmonnam(mtmp, "Ž•Œ^‚̂‚¢‚½") + : Monnam(mtmp)); +#endif } break; case OBJ_CONTAINED: { @@ -1656,17 +2067,29 @@ struct obj *corpse; if (container_where == OBJ_MINVENT && cansee(mtmp->mx, mtmp->my) && mcarry && canseemon(mcarry) && container) { +/*JP pline("%s writhes out of %s!", Amonnam(mtmp), +*/ + pline("%s‚Í%s‚©‚瓦‚ê‚悤‚Æ‚à‚ª‚¢‚½I", Amonnam(mtmp), yname(container)); } else if (container_where == OBJ_INVENT && container) { Strcpy(sackname, an(xname(container))); +#if 0 /*JP*/ pline("%s %s out of %s in your pack!", Blind ? Something : Amonnam(mtmp), locomotion(mtmp->data, "writhes"), sackname); +#else + pline("%s‚Í‘Ü‚Ì’†‚Å%s‚©‚瓦‚ê‚悤‚Æ‚à‚ª‚¢‚½I", + Blind ? Something : Amonnam(mtmp), + sackname); +#endif } else if (container_where == OBJ_FLOOR && container && cansee(mtmp->mx, mtmp->my)) { Strcpy(sackname, an(xname(container))); +/*JP pline("%s escapes from %s!", Amonnam(mtmp), sackname); +*/ + pline("%s‚Í%s‚©‚瓦‚ꂽI", Amonnam(mtmp), sackname); } break; } @@ -1720,7 +2143,10 @@ long timeout UNUSED; if (!rn2(3)) break; } else { /* rot this corpse away */ +/*JP You_feel("%sless hassled.", is_rider(mptr) ? "much " : ""); +*/ + You("”Y‚ÝŽ–‚ª%sŒ¸‚Á‚½‹C‚ª‚µ‚½D", is_rider(mptr) ? "‚Æ‚Ä‚à" : ""); action = ROT_CORPSE; when = 250L - (monstermoves - body->age); if (when < 1L) @@ -1748,7 +2174,10 @@ wipeoff(VOID_ARGS) else Blinded -= 4; if (!Blinded) { +/*JP pline("You've got the glop off."); +*/ + You("%s‚©‚çƒlƒoƒlƒo‚ª‚ƂꂽD", body_part(FACE)); u.ucreamed = 0; if (!gulp_blnd_check()) { Blinded = 1; @@ -1756,7 +2185,10 @@ wipeoff(VOID_ARGS) } return 0; } else if (!u.ucreamed) { +/*JP Your("%s feels clean now.", body_part(FACE)); +*/ + Your("%s‚Í‚«‚ê‚¢‚É‚È‚Á‚½D", body_part(FACE)); return 0; } return 1; /* still busy */ @@ -1768,14 +2200,20 @@ dowipe() if (u.ucreamed) { static NEARDATA char buf[39]; +/*JP Sprintf(buf, "wiping off your %s", body_part(FACE)); +*/ + Sprintf(buf, "%s‚ð@‚¢‚Ä‚¢‚é", body_part(FACE)); set_occupation(wipeoff, buf, 0); /* Not totally correct; what if they change back after now * but before they're finished wiping? */ return 1; } +/*JP Your("%s is already clean.", body_part(FACE)); +*/ + Your("%s‚͉˜‚ê‚Ä‚¢‚È‚¢D", body_part(FACE)); return 1; } @@ -1813,11 +2251,15 @@ heal_legs() if (!u.usteed) { const char *legs = body_part(LEG); +#if 0 /*JP*/ if ((EWounded_legs & BOTH_SIDES) == BOTH_SIDES) legs = makeplural(legs); /* this used to say "somewhat better" but that was misleading since legs are being fully healed */ Your("%s %s better.", legs, vtense(legs, "feel")); +#else + Your("%s‚͉ñ•œ‚µ‚½D", body_part(LEG)); +#endif } HWounded_legs = EWounded_legs = 0; diff --git a/src/do_name.c b/src/do_name.c index 2e2dfd1..af5a1c8 100644 --- a/src/do_name.c +++ b/src/do_name.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" STATIC_DCL char *NDECL(nextmbuf); @@ -48,23 +53,50 @@ const char *goal; boolean doing_what_is; winid tmpwin = create_nhwindow(NHW_MENU); +#if 0 /*JP*/ Sprintf(sbuf, "Use [%c%c%c%c] to move the cursor to %s.", /* hjkl */ +#else + Sprintf(sbuf, "[%c%c%c%c]‚Å%s‚ÖˆÚ“®‚Å‚«‚éD", +#endif Cmd.move_W, Cmd.move_S, Cmd.move_N, Cmd.move_E, goal); putstr(tmpwin, 0, sbuf); +/*JP putstr(tmpwin, 0, "Use [HJKL] to move the cursor 8 units at a time."); +*/ + putstr(tmpwin, 0, "[HJKL]‚ňê“x‚É8•àˆÚ“®‚Å‚«‚éD"); +/*JP putstr(tmpwin, 0, "Or enter a background symbol (ex. <)."); +*/ + putstr(tmpwin, 0, "”wŒi‚̃Vƒ“ƒ{ƒ‹‚ð“ü—Í‚·‚é‚Æ‚»‚̈ʒu‚Ɉړ®‚·‚é(—áF<)D"); +/*JP putstr(tmpwin, 0, "Use @ to move the cursor on yourself."); +*/ + putstr(tmpwin, 0, "@‚ÅŽ©•ªŽ©g‚̈ʒu‚Ɉړ®‚·‚éD"); if (getpos_hilitefunc != NULL) +/*JP putstr(tmpwin, 0, "Use $ to display valid locations."); +*/ + putstr(tmpwin, 0, "$‚ʼn”\‚Ȉʒu‚ð•\Ž¦‚·‚éD"); +/*JP putstr(tmpwin, 0, "Use # to toggle automatic description."); +*/ + putstr(tmpwin, 0, "#‚Åà–¾‚ÌŽ©“®•\Ž¦‚ðØ‚è‘Ö‚¦‚éD"); /* disgusting hack; the alternate selection characters work for any getpos call, but they only matter for dowhatis (and doquickwhatis) */ doing_what_is = (goal == what_is_an_unknown_object); +#if 0 /*JP:T*/ Sprintf(sbuf, "Type a .%s when you are at the right place.", doing_what_is ? " or , or ; or :" : ""); +#else + Sprintf(sbuf, "[.]%s‚ÅŒˆ’èD", + doing_what_is ? "[,][;][:]" : ""); +#endif putstr(tmpwin, 0, sbuf); if (!force) +/*JP putstr(tmpwin, 0, "Type Space or Escape when you're done."); +*/ + putstr(tmpwin, 0, "ƒXƒy[ƒX‚Ü‚½‚̓GƒXƒP[ƒv‚ŏI—¹D"); putstr(tmpwin, 0, ""); display_nhwindow(tmpwin, TRUE); destroy_nhwindow(tmpwin); @@ -89,7 +121,10 @@ const char *goal; if (!goal) goal = "desired location"; if (flags.verbose) { +/*JP pline("(For instructions type a ?)"); +*/ + pline("(?‚Ńwƒ‹ƒv)"); msg_given = TRUE; } cx = ccp->x; @@ -266,26 +301,42 @@ const char *goal; } /* column */ } /* row */ } /* pass */ +/*JP pline("Can't find dungeon feature '%c'.", c); +*/ + pline("'%c'H", c); msg_given = TRUE; goto nxtc; } else { char note[QBUFSZ]; if (!force) +/*JP Strcpy(note, "aborted"); +*/ + Strcpy(note, "’†’f‚µ‚½"); else +#if 0 /*JP*/ Sprintf(note, "use %c%c%c%c or .", /* hjkl */ +#else + Sprintf(note, "%c%c%c%c‚ňړ®C.‚ŏI—¹", /* hjkl */ +#endif Cmd.move_W, Cmd.move_S, Cmd.move_N, Cmd.move_E); +/*JP pline("Unknown direction: '%s' (%s).", visctrl((char) c), +*/ + pline("‚»‚Ì•ûŒü‚Í‚È‚¢F'%s' (%s)", visctrl((char) c), note); msg_given = TRUE; } /* k => matching */ } /* !quitchars */ if (force) goto nxtc; +/*JP pline("Done."); +*/ + pline("ˆÈãD"); msg_given = FALSE; /* suppress clear */ cx = -1; cy = 0; @@ -400,6 +451,10 @@ const char *name; /* dogname & catname are PL_PSIZ arrays; object names have same limit */ lth = (name && *name) ? ((int) strlen(name) + 1) : 0; if (lth > PL_PSIZ) { +#if 1 /*JP*/ + if (is_kanji2(buf, lth - 1)) + --lth; +#endif lth = PL_PSIZ; name = strncpy(buf, name, PL_PSIZ - 1); buf[PL_PSIZ - 1] = '\0'; @@ -421,12 +476,18 @@ do_mname() char qbuf[QBUFSZ]; if (Hallucination) { +/*JP You("would never recognize it anyway."); +*/ + You("‚»‚ê‚ð”FŽ¯‚Å‚«‚È‚¢D"); return; } cc.x = u.ux; cc.y = u.uy; +/*JP if (getpos(&cc, FALSE, "the monster you want to name") < 0 +*/ + if (getpos(&cc, FALSE, "‚ ‚È‚½‚ª–¼‚¯‚½‚¢‰ö•¨") < 0 || (cx = cc.x) < 0) return; cy = cc.y; @@ -435,7 +496,10 @@ do_mname() if (u.usteed && canspotmon(u.usteed)) mtmp = u.usteed; else { +/*JP pline("This %s creature is called %s and cannot be renamed.", +*/ + pline("‚±‚Ì%s¶‚«•¨‚Í%s‚ƌĂ΂ê‚Ä‚¢‚āC–¼‘O‚͕ύX‚Å‚«‚È‚¢D", beautiful(), plname); return; } @@ -448,11 +512,17 @@ do_mname() || mtmp->mundetected || mtmp->m_ap_type == M_AP_FURNITURE || mtmp->m_ap_type == M_AP_OBJECT || (mtmp->minvis && !See_invisible)))) { +/*JP pline("I see no monster there."); +*/ + pline("‚»‚±‚ɉö•¨‚Í‚¢‚È‚¢D"); return; } /* special case similar to the one in lookat() */ +/*JP Sprintf(qbuf, "What do you want to call %s?", +*/ + Sprintf(qbuf, "%s‚ð‰½‚ÆŒÄ‚Ñ‚Ü‚·‚©H", distant_monnam(mtmp, ARTICLE_THE, monnambuf)); getlin(qbuf, buf); if (!*buf || *buf == '\033') @@ -464,13 +534,22 @@ do_mname() shopkeepers, temple priests and other minions use alternate name formatting routines which ignore any user-supplied name */ if (mtmp->data->geno & G_UNIQ) +/*JP pline("%s doesn't like being called names!", upstart(monnambuf)); +*/ + pline("%s‚Í‚ ‚¾–¼‚ŌĂ΂ê‚é‚Ì‚ªŒ™‚¢‚Ȃ悤‚¾I", Monnam(mtmp)); else if (mtmp->isshk && !(Deaf || mtmp->msleeping || !mtmp->mcanmove || mtmp->data->msound <= MS_ANIMAL)) +/*JP verbalize("I'm %s, not %s.", shkname(mtmp), buf); +*/ + verbalize("Ž„‚Í%s‚¾C%s‚Å‚Í‚È‚¢D", shkname(mtmp), buf); else if (mtmp->ispriest || mtmp->isminion || mtmp->isshk) +/*JP pline("%s will not accept the name %s.", upstart(monnambuf), buf); +*/ + pline("%s‚Í%s‚Æ‚¢‚¤–¼‘O‚ðŽó‚¯‚¢‚ê‚È‚©‚Á‚½D", monnambuf, buf); else (void) christen_monst(mtmp, buf); } @@ -488,16 +567,26 @@ register struct obj *obj; char *bufp, buf[BUFSZ], bufcpy[BUFSZ], qbuf[QBUFSZ]; const char *aname; short objtyp; +#if 1 /*JP*/ + boolean is_japanese = FALSE; +#endif /* Do this now because there's no point in even asking for a name */ if (obj->otyp == SPE_NOVEL) { +/*JP pline("%s already has a published name.", Ysimple_name2(obj)); +*/ + pline("%s‚É‚Í‚·‚łɏo”ÅŽž‚Ì–¼‘O‚ª‚ ‚éD", Ysimple_name2(obj)); return; } +#if 0 /*JP*/ Sprintf(qbuf, "What do you want to name %s ", is_plural(obj) ? "these" : "this"); (void) safe_qbuf(qbuf, qbuf, "?", obj, xname, simpleonames, "item"); +#else + (void) safe_qbuf(qbuf, "", "‚ð‰½‚Æ–¼‚¯‚Ü‚·‚©H", obj, xname, simpleonames, "item"); +#endif getlin(qbuf, buf); if (!*buf || *buf == '\033') return; @@ -506,10 +595,20 @@ register struct obj *obj; /* relax restrictions over proper capitalization for artifacts */ if ((aname = artifact_name(buf, &objtyp)) != 0 && objtyp == obj->otyp) +#if 0 /*JP*/ Strcpy(buf, aname); +#else + { + is_japanese = is_kanji(*buf); + Strcpy(buf, aname); + } +#endif if (obj->oartifact) { +/*JP pline_The("artifact seems to resist the attempt."); +*/ + pline("¹Ší‚Í–¼‚¯‚ð‹‘”Û‚µ‚Ä‚¢‚é‚悤‚¾D"); return; } else if (restrict_name(obj, buf) || exist_artifact(obj->otyp, buf)) { /* this used to change one letter, substituting a value @@ -529,9 +628,15 @@ register struct obj *obj; do { wipeout_text(bufp, rnd(2), (unsigned) 0); } while (!strcmp(buf, bufcpy)); +/*JP pline("While engraving, your %s slips.", body_part(HAND)); +*/ + pline("‚ñ‚Å‚¢‚éŠÔ‚É%s‚ªŠŠ‚Á‚Ä‚µ‚Ü‚Á‚½D", body_part(HAND)); display_nhwindow(WIN_MESSAGE, FALSE); +/*JP You("engrave: \"%s\".", buf); +*/ + You("‚ñ‚¾: u%svD",buf); } obj = oname(obj, buf); } @@ -547,8 +652,15 @@ const char *name; lth = *name ? (int) (strlen(name) + 1) : 0; if (lth > PL_PSIZ) { lth = PL_PSIZ; +#if 0 /*JP*/ name = strncpy(buf, name, PL_PSIZ - 1); buf[PL_PSIZ - 1] = '\0'; +#else + if (is_kanji2(name, lth - 1)) + --lth; + name = strncpy(buf, name, lth - 1); + buf[lth - 1] = '\0'; +#endif } /* If named artifact exists in the game, do not create another. * Also trying to create an artifact shouldn't de-artifact @@ -610,27 +722,48 @@ docallcmd() any = zeroany; any.a_char = 'm'; /* group accelerator 'C' */ add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, 'C', ATR_NONE, +/*JP "a monster", MENU_UNSELECTED); +*/ + "‰ö•¨", MENU_UNSELECTED); if (invent) { /* we use y and n as accelerators so that we can accept user's response keyed to old "name an individual object?" prompt */ any.a_char = 'i'; /* group accelerator 'y' */ add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, 'y', ATR_NONE, +/*JP "a particular object in inventory", MENU_UNSELECTED); +*/ + "Ž‚¿•¨‚Ì’†‚̈ê‚‚̃AƒCƒeƒ€", MENU_UNSELECTED); any.a_char = 'o'; /* group accelerator 'n' */ add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, 'n', ATR_NONE, +/*JP "the type of an object in inventory", MENU_UNSELECTED); +*/ + "Ž‚¿•¨‚Ì’†‚̈ê‚‚̃AƒCƒeƒ€‚ÌŽí—Þ", MENU_UNSELECTED); } any.a_char = 'f'; /* group accelerator ',' (or ':' instead?) */ add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, ',', ATR_NONE, +/*JP "the type of an object upon the floor", MENU_UNSELECTED); +*/ + "°‚̏ã‚É‚ ‚éˆê‚‚̃AƒCƒeƒ€‚ÌŽí—Þ", MENU_UNSELECTED); any.a_char = 'd'; /* group accelerator '\' */ add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, '\\', ATR_NONE, +/*JP "the type of an object on discoveries list", MENU_UNSELECTED); +*/ + "”­Œ©•¨ˆê——‚É‚ ‚éˆê‚‚̃AƒCƒeƒ€‚ÌŽí—Þ", MENU_UNSELECTED); any.a_char = 'a'; /* group accelerator 'l' */ add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, 'l', ATR_NONE, +/*JP "record an annotation for the current level", MENU_UNSELECTED); +*/ + "Œ»Ý‚ÌŠK‚ɑ΂·‚郁ƒ‚‚Ì‹L˜^", MENU_UNSELECTED); +/*JP end_menu(win, "What do you want to name?"); +*/ + end_menu(win, "‚Ç‚ê‚É–¼‘O‚ð‚‚¯‚Ü‚·‚©H"); if (select_menu(win, PICK_ONE, &pick_list) > 0) { ch = pick_list[0].item.a_char; free((genericptr_t) pick_list); @@ -661,7 +794,10 @@ docallcmd() (void) xname(obj); if (!obj->dknown) { +/*JP You("would never recognize another one."); +*/ + You("‘¼‚É”FŽ¯‚Å‚«‚È‚¢D"); #if 0 } else if (!objtyp_is_callable(obj->otyp)) { You("know those as well as you ever will."); @@ -700,10 +836,16 @@ register struct obj *obj; if (objects[otemp.otyp].oc_class == POTION_CLASS && otemp.fromsink) /* kludge, meaning it's sink water */ +/*JP Sprintf(qbuf, "Call a stream of %s fluid:", +*/ + Sprintf(qbuf, "%s‰t‘Ì:", OBJ_DESCR(objects[otemp.otyp])); else +/*JP Sprintf(qbuf, "Call %s:", an(xname(&otemp))); +*/ + Sprintf(qbuf, "%s‚ɉ½‚Æ–¼‘O‚ð‚‚¯‚éH", an(xname(&otemp))); getlin(qbuf, buf); if (!*buf || *buf == '\033') return; @@ -861,8 +1003,10 @@ boolean called; struct permonst *mdat = mtmp->data; const char *pm_name = mdat->mname; boolean do_hallu, do_invis, do_it, do_saddle; +#if 0 /*JP*/ boolean name_at_start, has_adjectives; char *bp; +#endif if (program_state.gameover) suppress |= SUPPRESS_HALLUCINATION; @@ -880,7 +1024,10 @@ boolean called; /* unseen monsters, etc. Use "it" */ if (do_it) { +/*JP Strcpy(buf, "it"); +*/ + Strcpy(buf, "‰½ŽÒ‚©"); return buf; } @@ -899,8 +1046,10 @@ boolean called; name = priestname(mtmp, priestnambuf); EHalluc_resistance = save_prop; mtmp->minvis = save_invis; +#if 0 /*JP*/ if (article == ARTICLE_NONE && !strncmp(name, "the ", 4)) name += 4; +#endif return strcpy(buf, name); } /* an "aligned priest" not flagged as a priest or minion should be @@ -916,6 +1065,7 @@ boolean called; * none of this applies. */ if (mtmp->isshk && !do_hallu) { +#if 0 /*JP*/ if (adjective && article == ARTICLE_THE) { /* pathological case: "the angry Asidonhopo the blue dragon" sounds silly */ @@ -932,20 +1082,41 @@ boolean called; Strcat(buf, "invisible "); Strcat(buf, pm_name); return buf; +#else + if (mdat == &mons[PM_SHOPKEEPER] && !do_invis){ + Strcpy(buf, shkname(mtmp)); + } else { + Sprintf(buf, "%s‚Æ‚¢‚¤–¼‚Ì%s%s", + shkname(mtmp), do_invis ? "Žp‚ÌŒ©‚¦‚È‚¢" : "", + pm_name); + } + return buf; +#endif } /* Put the adjectives in the buffer */ if (adjective) +/*JP Strcat(strcat(buf, adjective), " "); +*/ + Strcat(buf, adjective); if (do_invis) +/*JP Strcat(buf, "invisible "); +*/ + Strcat(buf, "Žp‚ÌŒ©‚¦‚È‚¢"); if (do_saddle && (mtmp->misc_worn_check & W_SADDLE) && !Blind && !Hallucination) +/*JP Strcat(buf, "saddled "); +*/ + Strcat(buf, "ˆÆ‚̂‚¢‚Ä‚¢‚é"); +#if 0 /*JP*/ if (buf[0] != 0) has_adjectives = TRUE; else has_adjectives = FALSE; +#endif /* Put the actual monster name or type into the buffer now */ /* Be sure to remember whether the buffer starts with a name */ @@ -954,16 +1125,29 @@ boolean called; char *rname = rndmonnam(&rnamecode); Strcat(buf, rname); +#if 0 /*JP*/ name_at_start = bogon_is_pname(rnamecode); +#endif } else if (has_mname(mtmp)) { char *name = MNAME(mtmp); if (mdat == &mons[PM_GHOST]) { +/*JP Sprintf(eos(buf), "%s ghost", s_suffix(name)); +*/ + Sprintf(buf, "%s‚Ì—H—ì", name); +#if 0 /*JP*/ name_at_start = TRUE; +#endif } else if (called) { +/*JP Sprintf(eos(buf), "%s called %s", pm_name, name); +*/ + Sprintf(eos(buf), "%s‚Æ‚¢‚¤–¼‚Ì%s", name, pm_name); +#if 0 /*JP*/ name_at_start = (boolean) type_is_pname(mdat); +#endif +#if 0 /*JP*//*’芥ŽŒ‚̏ˆ—‚Í•s—v*/ } else if (is_mplayer(mdat) && (bp = strstri(name, " the ")) != 0) { /* the */ char pbuf[BUFSZ]; @@ -976,22 +1160,34 @@ boolean called; Strcpy(buf, pbuf); article = ARTICLE_NONE; name_at_start = TRUE; +#endif } else { Strcat(buf, name); +#if 0 /*JP*/ name_at_start = TRUE; +#endif } } else if (is_mplayer(mdat) && !In_endgame(&u.uz)) { char pbuf[BUFSZ]; Strcpy(pbuf, rank_of((int) mtmp->m_lev, monsndx(mdat), (boolean) mtmp->female)); +#if 0 /*JP*/ Strcat(buf, lcase(pbuf)); +#else + Strcat(buf, pbuf); +#endif +#if 0 /*JP*/ name_at_start = FALSE; +#endif } else { Strcat(buf, pm_name); +#if 0 /*JP*/ name_at_start = (boolean) type_is_pname(mdat); +#endif } +#if 0 /*JP*//*“ú–{Œê‚ÉŠ¥ŽŒ‚Í‚È‚¢*/ if (name_at_start && (article == ARTICLE_YOUR || !has_adjectives)) { if (mdat == &mons[PM_WIZARD_OF_YENDOR]) article = ARTICLE_THE; @@ -1022,6 +1218,9 @@ boolean called; return buf; } } +#else + return buf; +#endif } char * @@ -1142,8 +1341,12 @@ char *outbuf; its own obfuscation) */ if (mon->data == &mons[PM_HIGH_PRIEST] && !Hallucination && Is_astralevel(&u.uz) && distu(mon->mx, mon->my) > 2) { +#if 0 /*JP*/ Strcpy(outbuf, article == ARTICLE_THE ? "the " : ""); Strcat(outbuf, mon->female ? "high priestess" : "high priest"); +#else + Strcpy(outbuf, "–@‰¤"); +#endif } else { Strcpy(outbuf, x_monnam(mon, article, (char *) 0, 0, TRUE)); } @@ -1227,6 +1430,7 @@ roguename() } static NEARDATA const char *const hcolors[] = { +#if 0 /*JP*/ "ultraviolet", "infrared", "bluish-orange", "reddish-green", "dark white", "light black", "sky blue-pink", "salty", "sweet", "sour", "bitter", "striped", "spiral", "swirly", "plaid", "checkered", "argyle", "paisley", @@ -1234,6 +1438,15 @@ static NEARDATA const char *const hcolors[] = { "triangular", "cabernet", "sangria", "fuchsia", "wisteria", "lemon-lime", "strawberry-banana", "peppermint", "romantic", "incandescent", "octarine", /* Discworld: the Colour of Magic */ +#else + "Ž‡ŠOF‚Ì", "ÔŠOF‚Ì", "ÂF‚ª‚©‚Á‚½ƒIƒŒƒ“ƒWF‚Ì", "Ô‚Ý‚ª‚©‚Á‚½—ΐF‚Ì", "ˆÃ‚¢”’F‚Ì", + "–¾‚é‚¢•‚Ì", "…F‚ª‚©‚Á‚½ƒsƒ“ƒNF‚Ì", "‰–h‚¢", "ŠÃ‚¢", "‚·‚Á‚Ï‚¢", "‹ê‚¢", + "‚µ‚Ü–Í—l‚Ì", "‚点‚ñó‚Ì", "”gó‚Ì", "ŠiŽq–Í—ló‚Ì", "ƒ`ƒFƒbƒNó‚Ì", "•úŽËó‚Ì", "ƒy[ƒYƒŠ[–Í—l‚Ì", + "‚µ‚ݏó‚Ì", "ÂF‚Ì”Á“_ó‚Ì", "“_ó‚Ì", "ŽlŠpŒ`ó‚Ì", "ŠÛó‚Ì", + "ŽOŠpó‚Ì", "ƒJƒxƒ‹ƒlF‚Ì", "ƒTƒ“ƒOƒŠƒAF‚Ì", "‘N‚â‚©‚ȐԎ‡F‚Ì", "“¡F‚Ì", "ƒŒƒ‚ƒ“ƒ‰ƒCƒ€F‚Ì", + "䕃oƒiƒiF‚Ì", "ƒyƒp[ƒ~ƒ“ƒgF‚Ì", "ƒƒ}ƒ“ƒ`ƒbƒN‚ȐF‚Ì", "”’”MF‚Ì", + "ƒIƒNƒ^ƒŠƒ“F‚Ì", +#endif }; const char * @@ -1251,7 +1464,10 @@ rndcolor() int k = rn2(CLR_MAX); return Hallucination ? hcolor((char *) 0) +/*JP : (k == NO_COLOR) ? "colorless" +*/ + : (k == NO_COLOR) ? "–³F‚Ì" : c_obj_colors[k]; } diff --git a/src/do_wear.c b/src/do_wear.c index ea73cac..dad2e32 100644 --- a/src/do_wear.c +++ b/src/do_wear.c @@ -2,16 +2,30 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" static NEARDATA const char see_yourself[] = "see yourself"; static NEARDATA const char unknown_type[] = "Unknown type of %s (%d)"; +#if 0 /*JP*/ static NEARDATA const char c_armor[] = "armor", c_suit[] = "suit", c_shirt[] = "shirt", c_cloak[] = "cloak", c_gloves[] = "gloves", c_boots[] = "boots", c_helmet[] = "helmet", c_shield[] = "shield", c_weapon[] = "weapon", c_sword[] = "sword", c_axe[] = "axe", c_that_[] = "that"; +#else +static NEARDATA const char c_armor[] = "ŠZ", c_suit[] = "•ž", + c_shirt[] = "ƒVƒƒƒc", c_cloak[] = "ƒNƒ[ƒN", + c_gloves[] = "¬Žè", c_boots[] = "ŒC", + c_helmet[] = "Š•", c_shield[] = "‚", + c_weapon[] = "•Ší", c_sword[] = "Œ•", + c_axe[] = "•€", c_that_[] = "‚»‚ê"; +#endif static NEARDATA const long takeoff_order[] = { WORN_BLINDF, W_WEP, WORN_SHIELD, WORN_GLOVES, LEFT_RING, @@ -40,15 +54,27 @@ STATIC_DCL int FDECL(menu_remarm, (int)); STATIC_DCL void FDECL(count_worn_stuff, (struct obj **, BOOLEAN_P)); STATIC_PTR int FDECL(armor_or_accessory_off, (struct obj *)); STATIC_PTR int FDECL(accessory_or_armor_on, (struct obj *)); +#if 0 /*JP*/ STATIC_DCL void FDECL(already_wearing, (const char *)); +#else +STATIC_DCL void FDECL(already_wearing, (const char*, struct obj *)); +#endif STATIC_DCL void FDECL(already_wearing2, (const char *, const char *)); void off_msg(otmp) struct obj *otmp; { +#if 0 /*JP*/ if (flags.verbose) You("were wearing %s.", doname(otmp)); +#else + const char *j; + const char *m; + m = joffmsg(otmp, &j); + if(flags.verbose) + You("%s%s%sD", doname(otmp), j, jpast(m)); +#endif } /* for items that involve no delay */ @@ -57,6 +83,7 @@ on_msg(otmp) struct obj *otmp; { if (flags.verbose) { +#if 0 /*JP*/ char how[BUFSZ]; /* call xname() before obj_is_pname(); formatting obj's name might set obj->dknown and that affects the pname test */ @@ -67,6 +94,12 @@ struct obj *otmp; Sprintf(how, " around your %s", body_part(HEAD)); You("are now wearing %s%s.", obj_is_pname(otmp) ? the(otmp_name) : an(otmp_name), how); +#else + const char *j; + const char *m; + m = jonmsg(otmp, &j); + You("%s%s%sD", xname(otmp), j, jpast(m)); +#endif } } @@ -96,13 +129,22 @@ boolean on; if (on) { if (!is_boots(obj)) +/*JP You("move very quietly."); +*/ + Your("Ã‚©‚É“®‚¯‚é‚悤‚É‚È‚Á‚½D"); else if (Levitation || Flying) You("float imperceptibly."); else +/*JP You("walk very quietly."); +*/ + Your("‘«‰¹‚͏¬‚³‚­‚È‚Á‚½D"); } else { +/*JP You("sure are noisy."); +*/ + Your("‘«‰¹‚Í‘å‚«‚­‚È‚Á‚½D"); } } } @@ -173,8 +215,13 @@ Boots_on(VOID_ARGS) /* though not better than potion speed */ if (!oldprop && !(HFast & TIMEOUT)) { makeknown(uarmf->otyp); +#if 0 /*JP*/ You_feel("yourself speed up%s.", (oldprop || HFast) ? " a bit more" : ""); +#else + You("%s‘f‘‚­‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½D", + (oldprop || HFast) ? "‚³‚ç‚É" : ""); +#endif } break; case ELVEN_BOOTS: @@ -215,7 +262,10 @@ Boots_off(VOID_ARGS) case SPEED_BOOTS: if (!Very_fast && !context.takeoff.cancelled_don) { makeknown(otyp); +/*JP You_feel("yourself slow down%s.", Fast ? " a bit" : ""); +*/ + You("%s‚Ì‚ë‚­‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½D", Fast ? "‚¿‚å‚Á‚Æ" : ""); } break; case WATER_WALKING_BOOTS: @@ -285,8 +335,14 @@ Cloak_on(VOID_ARGS) /* Note: it's already being worn, so we have to cheat here. */ if ((HInvis || EInvis) && !Blind) { newsym(u.ux, u.uy); +#if 0 /*JP*/ You("can %s!", See_invisible ? "no longer see through yourself" : see_yourself); +#else + pline("%sI", + See_invisible ? "‚ ‚È‚½‚Í“§–¾‚Å‚È‚­‚È‚Á‚½" : + "Ž©•ªŽ©g‚ªŒ©‚¦‚é‚悤‚É‚È‚Á‚½"); +#endif } break; case CLOAK_OF_INVISIBILITY: @@ -295,12 +351,20 @@ Cloak_on(VOID_ARGS) if (!oldprop && !HInvis && !Blind) { makeknown(uarmc->otyp); newsym(u.ux, u.uy); +#if 0 /*JP*/ pline("Suddenly you can%s yourself.", See_invisible ? " see through" : "not see"); +#else + pline("“Ë‘RC%s‚È‚Á‚½D", + See_invisible ? "‚ ‚È‚½‚Í“§–¾‚É" : "Ž©•ªŽ©g‚ªŒ©‚¦‚È‚­"); +#endif } break; case OILSKIN_CLOAK: +/*JP pline("%s very tightly.", Tobjnam(uarmc, "fit")); +*/ + pline("%s‚Í‚Æ‚Ä‚à‚Ò‚Á‚¿‚荇‚¤D",xname(uarmc)); break; /* Alchemy smock gives poison _and_ acid resistance */ case ALCHEMY_SMOCK: @@ -340,17 +404,28 @@ Cloak_off(VOID_ARGS) case MUMMY_WRAPPING: if (Invis && !Blind) { newsym(u.ux, u.uy); +#if 0 /*JP*/ You("can %s.", See_invisible ? "see through yourself" : "no longer see yourself"); +#else + pline("%sD", See_invisible ? "‚ ‚È‚½‚Í“§–¾‚É‚È‚Á‚½" + : "Ž©•ªŽ©g‚ªŒ©‚¦‚È‚­‚È‚Á‚½"); +#endif } break; case CLOAK_OF_INVISIBILITY: if (!oldprop && !HInvis && !Blind) { makeknown(CLOAK_OF_INVISIBILITY); newsym(u.ux, u.uy); +#if 0 /*JP*/ pline("Suddenly you can %s.", See_invisible ? "no longer see through yourself" : see_yourself); +#else + pline("“Ë‘RC%sD", + See_invisible ? "‚ ‚È‚½‚Í“§–¾‚Å‚È‚­‚È‚Á‚½" + : "Ž©•ªŽ©g‚ªŒ©‚¦‚é‚悤‚É‚È‚Á‚½"); +#endif } break; /* Alchemy smock gives poison _and_ acid resistance */ @@ -401,21 +476,41 @@ Helmet_on(VOID_ARGS) case DUNCE_CAP: if (uarmh && !uarmh->cursed) { if (Blind) +/*JP pline("%s for a moment.", Tobjnam(uarmh, "vibrate")); +*/ + pline("%s‚͈êuk‚¦‚½D", xname(uarmh)); else +#if 0 /*JP*/ pline("%s %s for a moment.", Tobjnam(uarmh, "glow"), hcolor(NH_BLACK)); +#else + pline("%s‚͈êu%s‹P‚¢‚½D", + xname(uarmh), jconj_adj(hcolor(NH_BLACK))); +#endif curse(uarmh); } context.botl = 1; /* reveal new alignment or INT & WIS */ if (Hallucination) { +#if 0 /*JP*/ pline("My brain hurts!"); /* Monty Python's Flying Circus */ +#else + pline("‚́[‚Ý‚»ƒo[ƒ“I"); /*ƒ‚ƒ“ƒeƒBƒpƒCƒ\ƒ“‚Æ‚Í‚¿‚å‚Á‚ƈႤ‚¯‚Ç*/ +#endif } else if (uarmh && uarmh->otyp == DUNCE_CAP) { +#if 0 /*JP*/ You_feel("%s.", /* track INT change; ignore WIS */ ACURR(A_INT) <= (ABASE(A_INT) + ABON(A_INT) + ATEMP(A_INT)) ? "like sitting in a corner" : "giddy"); +#else + You("%s‚悤‚È‹C‚ª‚µ‚½D", + ACURR(A_INT) + <= (ABASE(A_INT) + ABON(A_INT) + ATEMP(A_INT)) + ? "ŠXŠp‚ɍÀ‚Á‚Ä‚¢‚é" + : "–Ú‚ª‚Ü‚í‚Á‚½"); +#endif } else { /* [message moved to uchangealign()] */ makeknown(HELM_OF_OPPOSITE_ALIGNMENT); @@ -512,11 +607,22 @@ boolean voluntary; /* taking gloves off on purpose? */ return; if (touch_petrifies(&mons[obj->corpsenm]) && !Stone_resistance) { +#if 0 /*JP*/ You("now wield %s in your bare %s.", corpse_xname(obj, (const char *) 0, CXN_ARTICLE), makeplural(body_part(HAND))); +#else + You("%s‚ð‘f%s‚ÅŽ‚Á‚½D", + corpse_xname(obj, (const char *) 0, CXN_ARTICLE), + body_part(HAND)); +#endif +#if 0 /*JP*/ Sprintf(kbuf, "%s gloves while wielding %s", voluntary ? "removing" : "losing", killer_xname(obj)); +#else + Sprintf(kbuf, "%s‚ðŽ‚Á‚Ä‚¢‚é‚Æ‚«‚ÉŽè‘Ü‚ð%s", + killer_xname(obj), voluntary ? "ŠO‚µ‚Ä" : "Ž¸‚Á‚Ä"); +#endif instapetrify(kbuf); /* life-saved; can't continue wielding cockatrice corpse though */ remove_worn_item(obj, FALSE); @@ -712,14 +818,25 @@ Amulet_on() /* Don't use same message as polymorph */ if (orig_sex != poly_gender()) { makeknown(AMULET_OF_CHANGE); +#if 0 /*JP*/ You("are suddenly very %s!", flags.female ? "feminine" : "masculine"); +#else + You("“Ë‘R%s‚Á‚Û‚­‚È‚Á‚½I", + flags.female ? "—" : "’j"); +#endif context.botl = 1; } else /* already polymorphed into single-gender monster; only changed the character's base sex */ +/*JP You("don't feel like yourself."); +*/ + You("Ž©•ªŽ©g‚¶‚á‚È‚­‚È‚Á‚½‹C‚ª‚µ‚½D"); +/*JP pline_The("amulet disintegrates!"); +*/ + pline("–‚œ‚¯‚Í‚±‚È‚²‚È‚É‚È‚Á‚½I"); if (orig_sex == poly_gender() && uamul->dknown && !objects[AMULET_OF_CHANGE].oc_name_known && !objects[AMULET_OF_CHANGE].oc_uname) @@ -730,7 +847,10 @@ Amulet_on() case AMULET_OF_STRANGULATION: if (can_be_strangled(&youmonst)) { makeknown(AMULET_OF_STRANGULATION); +/*JP pline("It constricts your throat!"); +*/ + pline("–‚œ‚¯‚Í‚ ‚È‚½‚̍A‚ði‚߂‚¯‚½I"); Strangled = 6L; } break; @@ -772,7 +892,10 @@ Amulet_off() setworn((struct obj *) 0, W_AMUL); if (!breathless(youmonst.data) && !amphibious(youmonst.data) && !Swimming) { +/*JP You("suddenly inhale an unhealthy amount of water!"); +*/ + You("“Ë‘RC‘å—ʂ̐…‚ðˆù‚ݍž‚ñ‚¾I"); (void) drown(); } return; @@ -781,9 +904,15 @@ Amulet_off() case AMULET_OF_STRANGULATION: if (Strangled) { if (Breathless) +/*JP Your("%s is no longer constricted!", body_part(NECK)); +*/ + pline("%s‚ªŠy‚É‚È‚Á‚½I", body_part(NECK)); else +/*JP You("can breathe more easily!"); +*/ + You("Šy‚Ɍċz‚Å‚«‚é‚悤‚É‚È‚Á‚½I"); Strangled = 0L; } break; @@ -887,7 +1016,10 @@ register struct obj *obj; if (Invis && !oldprop && !HSee_invisible && !Blind) { newsym(u.ux, u.uy); +/*JP pline("Suddenly you are transparent, but there!"); +*/ + pline("“Ë‘R“§–¾‚É‚È‚Á‚½D‚µ‚©‚µ‘¶Ý‚Í‚µ‚Ä‚¢‚éI"); learnring(obj, TRUE); } break; @@ -1000,15 +1132,23 @@ boolean gone; if (Invisible && !Blind) { newsym(u.ux, u.uy); +/*JP pline("Suddenly you cannot see yourself."); +*/ + pline("“Ë‘RCŽ©•ªŽ©g‚ªŒ©‚¦‚È‚­‚È‚Á‚½D"); learnring(obj, TRUE); } break; case RIN_INVISIBILITY: if (!Invis && !BInvis && !Blind) { newsym(u.ux, u.uy); +#if 0 /*JP*/ Your("body seems to unfade%s.", See_invisible ? " completely" : ".."); +#else + Your("‘Ì‚ª%sD", + See_invisible ? "Š®‘S‚ÉŒ»‚í‚ꂽ" : "ŽŸ‘æ‚ÉŒ»‚í‚ê‚Ä‚«‚½DD"); +#endif learnring(obj, TRUE); } break; @@ -1090,7 +1230,10 @@ register struct obj *otmp; if (Blind && !already_blind) { changed = TRUE; if (flags.verbose) +/*JP You_cant("see any more."); +*/ + You("‰½‚àŒ©‚¦‚È‚­‚È‚Á‚½D"); /* set ball&chain variables before the hero goes blind */ if (Punished) set_bc(0); @@ -1101,10 +1244,16 @@ register struct obj *otmp; /* this can only happen by putting on the Eyes of the Overworld; that shouldn't actually produce a permanent cure, but we can't let the "blind from birth" conduct remain intact */ +/*JP pline("For the first time in your life, you can see!"); +*/ + pline("l¶‚ŏ‰‚߂āC–Ú‚ªŒ©‚¦‚é‚悤‚É‚È‚Á‚½I"); u.uroleplay.blind = FALSE; } else +/*JP You("can see!"); +*/ + You("–Ú‚ªŒ©‚¦‚é‚悤‚É‚È‚Á‚½I"); } if (changed) { /* blindness has just been toggled */ @@ -1136,11 +1285,17 @@ register struct obj *otmp; /* "still cannot see" makes no sense when removing lenses since they can't have been the cause of your blindness */ if (otmp->otyp != LENSES) +/*JP You("still cannot see."); +*/ + You("‚Ü‚¾–Ú‚ªŒ©‚¦‚È‚¢D"); } else { changed = TRUE; /* !was_blind */ /* "You were wearing the Eyes of the Overworld." */ +/*JP You_cant("see anything now!"); +*/ + You("¡‚͉½‚àŒ©‚邱‚Æ‚ª‚Å‚«‚È‚¢I"); /* set ball&chain variables before the hero goes blind */ if (Punished) set_bc(0); @@ -1148,7 +1303,10 @@ register struct obj *otmp; } else if (was_blind) { if (!gulp_blnd_check()) { changed = TRUE; /* !Blind */ +/*JP You("can see again."); +*/ + You("‚Ó‚½‚½‚Ñ–Ú‚ªŒ©‚¦‚é‚悤‚É‚È‚Á‚½D"); } } if (changed) { @@ -1415,17 +1573,30 @@ int dotakeoff() { struct obj *otmp = (struct obj *) 0; +#if 1 /*JP*/ + const char *j; + const char *m; +#endif count_worn_stuff(&otmp, FALSE); if (!Narmorpieces && !Naccessories) { /* assert( GRAY_DRAGON_SCALES > YELLOW_DRAGON_SCALE_MAIL ); */ if (uskin) +#if 0 /*JP*/ pline_The("%s merged with your skin!", uskin->otyp >= GRAY_DRAGON_SCALES ? "dragon scales are" : "dragon scale mail is"); +#else + pline("ƒhƒ‰ƒSƒ“‚Ì—Ø%s‚Í‚ ‚È‚½‚Ì”§‚Æ—Z‡‚µ‚Ä‚µ‚Ü‚Á‚Ä‚¢‚éI", + uskin->otyp >= GRAY_DRAGON_SCALES + ? "" : "ŠZ"); +#endif else +/*JP pline("Not wearing any armor or accessories."); +*/ + pline("ŠZ‚â‘•ü•i‚ðg‚ɂ‚¯‚Ä‚¢‚È‚¢D"); return 0; } if (Narmorpieces != 1 || ParanoidRemove) @@ -1448,7 +1619,12 @@ dotakeoff() } Sprintf(why, " without taking off your %s first", what); } +#if 0 /*JP*/ You_cant("take that off%s.", why); +#else + m = joffmsg(otmp, &j); + You("‚»‚ê%s%s‚±‚Æ‚Í‚Å‚«‚È‚¢D", j, m); +#endif return 0; } @@ -1463,7 +1639,10 @@ doremring() count_worn_stuff(&otmp, TRUE); if (!Naccessories && !Narmorpieces) { +/*JP pline("Not wearing any accessories or armor."); +*/ + pline("‘•ü•i‚âŠZ‚ðg‚ɂ‚¯‚Ä‚¢‚È‚¢D"); return 0; } if (Naccessories != 1 || ParanoidRemove) @@ -1481,10 +1660,14 @@ register struct obj *otmp; { /* Curses, like chickens, come home to roost. */ if ((otmp == uwep) ? welded(otmp) : (int) otmp->cursed) { +#if 0 /*JP*/ boolean use_plural = (is_boots(otmp) || is_gloves(otmp) || otmp->otyp == LENSES || otmp->quan > 1L); You("can't. %s cursed.", use_plural ? "They are" : "It is"); +#else + pline("–³—‚¾D‚»‚ê‚ÍŽô‚í‚ê‚Ä‚¢‚éD"); +#endif otmp->bknown = TRUE; return 1; } @@ -1504,18 +1687,36 @@ register struct obj *otmp; multi_reason = "disrobing"; if (is_helmet(otmp)) { /* ick... */ +/*JP nomovemsg = !strcmp(helm_simple_name(otmp), "hat") +*/ + nomovemsg = !strcmp(helm_simple_name(otmp), "–XŽq") +/*JP ? "You finish taking off your hat." +*/ + ? "‚ ‚È‚½‚ÍŠ•‚ð’E‚¬‚¨‚¦‚½D" +/*JP : "You finish taking off your helmet."; +*/ + : "‚ ‚È‚½‚Í–XŽq‚ð’E‚¬‚¨‚¦‚½D"; afternmv = Helmet_off; } else if (is_gloves(otmp)) { +/*JP nomovemsg = "You finish taking off your gloves."; +*/ + nomovemsg = "‚ ‚È‚½‚͏¬Žè‚ð’E‚¬‚¨‚¦‚½D"; afternmv = Gloves_off; } else if (is_boots(otmp)) { +/*JP nomovemsg = "You finish taking off your boots."; +*/ + nomovemsg = "‚ ‚È‚½‚ÍŒC‚ð’E‚¬‚¨‚¦‚½D"; afternmv = Boots_off; } else { +/*JP nomovemsg = "You finish taking off your suit."; +*/ + nomovemsg = "‚ ‚È‚½‚Í’…‚Ä‚¢‚镨‚ð’E‚¬‚¨‚¦‚½D"; afternmv = Armor_off; } } else { @@ -1548,18 +1749,38 @@ register struct obj *otmp; return 1; } +/*JP +** •¨‚É‚æ‚Á‚Ä“®ŽŒ‚ª•Ï‰»‚·‚é‚Ì‚Å otmp‚ð’ljÁ +*/ STATIC_OVL void +#if 0 /*JP*/ already_wearing(cc) const char *cc; +#else +already_wearing(cc, otmp) +const char *cc; +struct obj *otmp; +#endif { +#if 1 /*JP*/ + const char *j; + const char *m; + m = jconj(jonmsg(otmp, &j), "‚Ä‚¢‚é"); +#endif +/*JP You("are already wearing %s%c", cc, (cc == c_that_) ? '!' : '.'); +*/ + You("‚à‚¤%s%s%s%s", cc, j, m, (cc == c_that_) ? "I" : "D"); } STATIC_OVL void already_wearing2(cc1, cc2) const char *cc1, *cc2; { +/*JP You_cant("wear %s because you're wearing %s there already.", cc1, cc2); +*/ + You_cant("%s‚ðg‚É•t‚¯‚Ä‚¢‚é‚Ì‚Å%s‚ðg‚ɂ‚¯‚ç‚ê‚È‚¢D", cc2, cc1); } /* @@ -1577,6 +1798,10 @@ boolean noisy; { int err = 0; const char *which; +#if 1 /*JP*/ + const char *m; + const char *j; +#endif which = is_cloak(otmp) ? c_cloak @@ -1590,17 +1815,27 @@ boolean noisy; && (which != c_cloak || youmonst.data->msize != MZ_SMALL) && (racial_exception(&youmonst, otmp) < 1)) { if (noisy) +/*JP pline_The("%s will not fit on your body.", which); +*/ + pline("%s‚Í‚ ‚È‚½‚̑̂ɍ‡‚í‚È‚¢D", which); return 0; } else if (otmp->owornmask & W_ARMOR) { if (noisy) +#if 0 /*JP*/ already_wearing(c_that_); +#else + already_wearing(c_that_, otmp); +#endif return 0; } if (welded(uwep) && bimanual(uwep) && (is_suit(otmp) || is_shirt(otmp))) { if (noisy) +/*JP You("cannot do that while holding your %s.", +*/ + pline("%s‚ðŽ‚Á‚½‚Ü‚Ü‚Å‚Í‚»‚ê‚͏o—ˆ‚È‚¢D", is_sword(uwep) ? c_sword : c_weapon); return 0; } @@ -1608,51 +1843,89 @@ boolean noisy; if (is_helmet(otmp)) { if (uarmh) { if (noisy) +#if 0 /*JP*/ already_wearing(an(helm_simple_name(uarmh))); +#else + already_wearing(helm_simple_name(uarmh), uarmh); +#endif err++; } else if (Upolyd && has_horns(youmonst.data) && !is_flimsy(otmp)) { /* (flimsy exception matches polyself handling) */ if (noisy) +#if 0 /*JP*/ pline_The("%s won't fit over your horn%s.", helm_simple_name(otmp), plur(num_horns(youmonst.data))); +#else + pline("Šp‚ª‚¶‚á‚Ü‚Å%s‚ðg‚ɂ‚¯‚ç‚ê‚È‚¢D", + helm_simple_name(otmp)); +#endif err++; } else *mask = W_ARMH; } else if (is_shield(otmp)) { if (uarms) { if (noisy) +#if 0 /*JP*/ already_wearing(an(c_shield)); +#else + already_wearing(c_shield, uarms); +#endif err++; } else if (uwep && bimanual(uwep)) { if (noisy) +#if 0 /*JP*/ You("cannot wear a shield while wielding a two-handed %s.", is_sword(uwep) ? c_sword : (uwep->otyp == BATTLE_AXE) ? c_axe : c_weapon); +#else + { + m = jconj(jonmsg(uwep, &j), "‚Ä‚¢‚é"); + You("—¼ŽèŽ‚¿‚Ì%s%s%s‚̂ŏ‚‚Őg‚ðŽç‚ê‚È‚¢D", + is_sword(uwep) ? c_sword : + uwep->otyp == BATTLE_AXE ? c_axe : c_weapon, + j, m); + } +#endif err++; } else if (u.twoweap) { if (noisy) +/*JP You("cannot wear a shield while wielding two weapons."); +*/ + You("“ñ“—¬‚ð‚µ‚Ä‚¢‚é‚̂ŏ‚‚Őg‚ðŽç‚ê‚È‚¢D"); err++; } else *mask = W_ARMS; } else if (is_boots(otmp)) { if (uarmf) { if (noisy) +#if 0 /*JP*/ already_wearing(c_boots); +#else + already_wearing(c_boots, uarmf); +#endif err++; } else if (Upolyd && slithy(youmonst.data)) { if (noisy) +#if 0 /*JP*/ You("have no feet..."); /* not body_part(FOOT) */ +#else + You("‘«‚ª‚È‚¢DDD"); /* not body_part(FOOT) */ +#endif err++; } else if (Upolyd && youmonst.data->mlet == S_CENTAUR) { /* break_armor() pushes boots off for centaurs, so don't let dowear() put them back on... */ if (noisy) +#if 0 /*JP*/ pline("You have too many hooves to wear %s.", c_boots); /* makeplural(body_part(FOOT)) yields "rear hooves" which sounds odd */ +#else + pline("%s‚ð—š‚­‚É‚Í‘«‚ª‘½‚·‚¬‚éD", c_boots); +#endif err++; } else if (u.utrap && (u.utraptype == TT_BEARTRAP || u.utraptype == TT_INFLOOR @@ -1660,15 +1933,28 @@ boolean noisy; || u.utraptype == TT_BURIEDBALL)) { if (u.utraptype == TT_BEARTRAP) { if (noisy) +/*JP Your("%s is trapped!", body_part(FOOT)); +*/ + Your("%s‚Í㩂ɂ©‚©‚Á‚Ä‚¢‚éI", body_part(FOOT)); } else if (u.utraptype == TT_INFLOOR || u.utraptype == TT_LAVA) { if (noisy) +#if 0 /*JP*/ Your("%s are stuck in the %s!", makeplural(body_part(FOOT)), surface(u.ux, u.uy)); +#else + Your("%s‚Í%s‚É‚Í‚Ü‚Á‚Ä‚¢‚éI", + body_part(FOOT), surface(u.ux, u.uy)); +#endif } else { /*TT_BURIEDBALL*/ if (noisy) +#if 0 /*JP*/ Your("%s is attached to the buried ball!", body_part(LEG)); +#else + Your("%s‚Í–„‚Ü‚Á‚Ä‚¢‚é‹…‚ɂ‚Ȃª‚Á‚Ä‚¢‚éI", + body_part(LEG)); +#endif } err++; } else @@ -1676,11 +1962,18 @@ boolean noisy; } else if (is_gloves(otmp)) { if (uarmg) { if (noisy) +#if 0 /*JP*/ already_wearing(c_gloves); +#else + already_wearing(c_gloves, uarmg); +#endif err++; } else if (welded(uwep)) { if (noisy) +/*JP You("cannot wear gloves over your %s.", +*/ + You("%s‚̏ォ‚珬Žè‚ð‘•”õ‚Å‚«‚È‚¢D", is_sword(uwep) ? c_sword : c_weapon); err++; } else @@ -1689,10 +1982,17 @@ boolean noisy; if (uarm || uarmc || uarmu) { if (uarmu) { if (noisy) +#if 0 /*JP*/ already_wearing(an(c_shirt)); +#else + already_wearing(c_shirt, uarmu); +#endif } else { if (noisy) +/*JP You_cant("wear that over your %s.", +*/ + You("%s‚̏ォ‚ç’…‚邱‚Æ‚Í‚Å‚«‚È‚¢D", (uarm && !uarmc) ? c_armor : cloak_simple_name(uarmc)); } @@ -1702,18 +2002,27 @@ boolean noisy; } else if (is_cloak(otmp)) { if (uarmc) { if (noisy) +/*JP already_wearing(an(cloak_simple_name(uarmc))); +*/ + already_wearing(cloak_simple_name(uarmc), otmp); err++; } else *mask = W_ARMC; } else if (is_suit(otmp)) { if (uarmc) { if (noisy) +/*JP You("cannot wear armor over a %s.", cloak_simple_name(uarmc)); +*/ + You("%s‚̏ォ‚ç’…‚邱‚Æ‚Í‚Å‚«‚È‚¢D", cloak_simple_name(uarmc)); err++; } else if (uarm) { if (noisy) +/*JP already_wearing("some armor"); +*/ + already_wearing("ŠZ", uarm); err++; } else *mask = W_ARM; @@ -1722,7 +2031,10 @@ boolean noisy; happens if you have armor for slots that are covered up or extra armor for slots that are filled */ if (noisy) +/*JP silly_thing("wear", otmp); +*/ + silly_thing("g‚ɂ‚¯‚é", otmp); err++; } /* Unnecessary since now only weapons and special items like pick-axes get @@ -1744,7 +2056,11 @@ struct obj *obj; boolean armor, ring, eyewear; if (obj->owornmask & (W_ACCESSORY | W_ARMOR)) { +#if 0 /*JP*/ already_wearing(c_that_); +#else + already_wearing(c_that_, obj); +#endif return 0; } armor = (obj->oclass == ARMOR_CLASS); @@ -1759,9 +2075,15 @@ struct obj *obj; if (obj->otyp == HELM_OF_OPPOSITE_ALIGNMENT && qstart_level.dnum == u.uz.dnum) { /* in quest */ if (u.ualignbase[A_CURRENT] == u.ualignbase[A_ORIGINAL]) +/*JP You("narrowly avoid losing all chance at your goal."); +*/ + You("–Ú“I‚ð’B¬‚·‚é‰Â”\«‚ðŽ¸‚¤‚±‚Æ‚ð‚È‚ñ‚Æ‚©‰ñ”ð‚µ‚½D"); else /* converted */ +/*JP You("are suddenly overcome with shame and change your mind."); +*/ + You("“Ë‘R’p‚¸‚©‚µ‚­‚È‚Á‚čl‚¦‚ð•Ï‚¦‚½D"); u.ublessed = 0; /* lose your god's protection */ makeknown(obj->otyp); context.botl = 1; /*for AC after zeroing u.ublessed */ @@ -1774,13 +2096,22 @@ struct obj *obj; int res = 0; if (nolimbs(youmonst.data)) { +/*JP You("cannot make the ring stick to your body."); +*/ + You("Žw—Ö‚ð‚Í‚ß‚ê‚È‚¢‘Ì‚¾D"); return 0; } if (uleft && uright) { +#if 0 /*JP*/ There("are no more %s%s to fill.", humanoid(youmonst.data) ? "ring-" : "", makeplural(body_part(FINGER))); +#else + pline("‚͂߂邱‚Æ‚Ì‚Å‚«‚é%s%s‚ª‚È‚¢D", + humanoid(youmonst.data) ? "–ò" : "", + body_part(FINGER)); +#endif return 0; } if (uleft) { @@ -1789,9 +2120,15 @@ struct obj *obj; mask = LEFT_RING; } else { do { +#if 0 /*JP*/ Sprintf(qbuf, "Which %s%s, Right or Left?", humanoid(youmonst.data) ? "ring-" : "", body_part(FINGER)); +#else + Sprintf(qbuf, "‚Ç‚¿‚ç‚Ì%s%sC‰E(r)‚»‚ê‚Æ‚à¶(l)H", + humanoid(youmonst.data) ? "–ò" : "", + body_part(FINGER)); +#endif answer = yn_function(qbuf, "rl", '\0'); switch (answer) { case '\0': @@ -1810,7 +2147,10 @@ struct obj *obj; if (uarmg && uarmg->cursed) { res = !uarmg->bknown; uarmg->bknown = 1; +/*JP You("cannot remove your gloves to put on the ring."); +*/ + You("Žw—Ö‚ð‚͂߂悤‚Æ‚µ‚½‚ª¬Žè‚ª’E‚°‚È‚¢D"); return res; /* uses move iff we learned gloves are cursed */ } if (uwep) { @@ -1821,38 +2161,70 @@ struct obj *obj; /* welded will set bknown */ if (bimanual(uwep)) hand = makeplural(hand); +/*JP You("cannot free your weapon %s to put on the ring.", +*/ + You("Žw—Ö‚ð‚͂߂悤‚Æ‚µ‚½‚ª—˜%s‚ÌŽ©—R‚ª‚«‚©‚È‚¢D", hand); return res; /* uses move iff we learned weapon is cursed */ } } } else if (obj->oclass == AMULET_CLASS) { if (uamul) { +#if 0 /*JP*/ already_wearing("an amulet"); +#else + already_wearing("–‚œ‚¯", uamul); +#endif return 0; } } else if (eyewear) { if (ublindf) { if (ublindf->otyp == TOWEL) +#if 0 /*JP:T*/ Your("%s is already covered by a towel.", body_part(FACE)); +#else + You("Šù‚Ƀ^ƒIƒ‹‚ðg‚ɂ‚¯‚Ä‚¢‚éD"); +#endif else if (ublindf->otyp == BLINDFOLD) { if (obj->otyp == LENSES) +/*JP already_wearing2("lenses", "a blindfold"); +*/ + already_wearing2("ƒŒƒ“ƒY", "–Ú‰B‚µ"); else +#if 0 /*JP*/ already_wearing("a blindfold"); +#else + already_wearing("–Ú‰B‚µ", ublindf); +#endif } else if (ublindf->otyp == LENSES) { if (obj->otyp == BLINDFOLD) +/*JP already_wearing2("a blindfold", "some lenses"); +*/ + already_wearing2("–Ú‰B‚µ", "ƒŒƒ“ƒY"); else +#if 0 /*JP*/ already_wearing("some lenses"); +#else + already_wearing("ƒŒƒ“ƒY", ublindf); +#endif } else { +#if 0 /*JP*/ already_wearing(something); /* ??? */ +#else + already_wearing("‰½‚©", ublindf); /* ??? */ +#endif } return 0; } } else { /* neither armor nor accessory */ +/*JP + You_cant("wear that!"); +*/ You_cant("wear that!"); return 0; } @@ -1881,7 +2253,10 @@ struct obj *obj; afternmv = Gloves_on; if (obj == uarm) afternmv = Armor_on; +/*JP nomovemsg = "You finish your dressing maneuver."; +*/ + nomovemsg = "‘•”õ‚µI‚¦‚½D"; } else { if (is_cloak(obj)) (void) Cloak_on(); @@ -1926,7 +2301,10 @@ dowear() /* cantweararm() checks for suits of armor, not what we want here; verysmall() or nohands() checks for shields, gloves, etc... */ if ((verysmall(youmonst.data) || nohands(youmonst.data))) { +/*JP pline("Don't even bother."); +*/ + pline("‚»‚ñ‚Ȃ‚܂ç‚È‚¢‚±‚Æ‚É‚±‚¾‚í‚é‚ȁD"); return 0; } if (uarm && uarmu && uarmc && uarmh && uarms && uarmg && uarmf @@ -1948,10 +2326,17 @@ doputon() if (uleft && uright && uamul && ublindf && uarm && uarmu && uarmc && uarmh && uarms && uarmg && uarmf) { /* 'P' message doesn't mention armor */ +#if 0 /*JP*/ Your("%s%s are full, and you're already wearing an amulet and %s.", humanoid(youmonst.data) ? "ring-" : "", makeplural(body_part(FINGER)), (ublindf->otyp == LENSES) ? "some lenses" : "a blindfold"); +#else + Your("%s%s‚Í‚Ó‚³‚ª‚Á‚Ă邵C‚·‚Å‚É–‚œ‚¯‚Æ%s‚àg‚ɂ‚¯‚Ä‚¢‚éD", + humanoid(youmonst.data) ? "–ò" : "", + body_part(FINGER), + ublindf->otyp==LENSES ? "ƒŒƒ“ƒY" : "–Ú‰B‚µ"); +#endif return 0; } otmp = getobj(accessories, "put on"); @@ -2018,10 +2403,14 @@ glibr() rightfall = (uright && !uright->cursed && (!welded(uwep))); if (!uarmg && (leftfall || rightfall) && !nolimbs(youmonst.data)) { /* changed so cursed rings don't fall off, GAN 10/30/86 */ +#if 0 /*JP*/ Your("%s off your %s.", (leftfall && rightfall) ? "rings slip" : "ring slips", (leftfall && rightfall) ? makeplural(body_part(FINGER)) : body_part(FINGER)); +#else + Your("Žw—Ö‚Í%s‚©‚犊‚è—Ž‚¿‚½D", body_part(FINGER)); +#endif xfl++; if (leftfall) { otmp = uleft; @@ -2047,8 +2436,13 @@ glibr() otherwep = makeplural(otherwep); hand = body_part(HAND); which = "left "; +#if 0 /*JP*/ Your("%s %s%s from your %s%s.", otherwep, xfl ? "also " : "", otense(otmp, "slip"), which, hand); +#else + You("%s%s%s‚©‚犊‚è—Ž‚Æ‚µ‚½D", otherwep, xfl ? "‚à‚Ü‚½" : "‚ð", + body_part(HAND)); +#endif xfl++; wastwoweap = TRUE; setuswapwep((struct obj *) 0); /* clears u.twoweap */ @@ -2080,10 +2474,17 @@ glibr() hand = makeplural(hand); else if (wastwoweap) which = "right "; /* preceding msg was about left */ +#if 0 /*JP*/ pline("%s %s%s %s%s from your %s%s.", !strncmp(thiswep, "corpse", 6) ? "The" : "Your", otherwep ? "other " : "", thiswep, xfl ? "also " : "", otense(otmp, "slip"), which, hand); +#else + You("%s%s%s%s‚©‚犊‚è—Ž‚Æ‚µ‚½D", + otherwep ? "‚à‚¤‚ЂƂ‚Ì" : "", thiswep, + xfl ? "‚à‚Ü‚½" : "‚ð", + body_part(HAND)); +#endif /* xfl++; */ otmp->quan = savequan; setuwep((struct obj *) 0); @@ -2171,19 +2572,32 @@ register struct obj *otmp; /* special ring checks */ if (otmp == uright || otmp == uleft) { if (nolimbs(youmonst.data)) { +#if 0 /*JP*/ pline_The("ring is stuck."); +#else + pline("Žw—Ö‚Í‘Ì‚É–„‚Ü‚Á‚Ä‚µ‚Ü‚Á‚Ä‚¢‚éD"); +#endif return 0; } why = 0; /* the item which prevents ring removal */ if (welded(uwep) && (otmp == uright || bimanual(uwep))) { +/*JP Sprintf(buf, "free a weapon %s", body_part(HAND)); +*/ + Sprintf(buf, "—˜˜r‚ÌŽ©—R‚ª‚«‚©‚È‚¢"); why = uwep; } else if (uarmg && uarmg->cursed) { +/*JP Sprintf(buf, "take off your %s", c_gloves); +*/ + Sprintf(buf, "%s‚ª’E‚°‚È‚¢", c_gloves); why = uarmg; } if (why) { +/*JP You("cannot %s to remove the ring.", buf); +*/ + You("Žw—Ö‚ð‚Í‚¸‚»‚¤‚Æ‚µ‚½‚ª%sD", buf); why->bknown = TRUE; return 0; } @@ -2191,24 +2605,40 @@ register struct obj *otmp; /* special glove checks */ if (otmp == uarmg) { if (welded(uwep)) { +#if 0 /*JP*/ You("are unable to take off your %s while wielding that %s.", c_gloves, is_sword(uwep) ? c_sword : c_weapon); +#else + You("%s‚ðŽ‚Á‚½‚Ü‚Ü%s‚ð‚Í‚¸‚·‚±‚Æ‚Í‚Å‚«‚È‚¢D", + is_sword(uwep) ? c_sword : c_weapon, c_gloves); +#endif uwep->bknown = TRUE; return 0; } else if (Glib) { +#if 0 /*JP*/ You_cant("take off the slippery %s with your slippery %s.", c_gloves, makeplural(body_part(FINGER))); +#else + You_cant("ŠŠ‚è‚â‚·‚¢%s‚ðŠŠ‚è‚â‚·‚¢%s‚Å‚Í‚¸‚¹‚È‚¢D", + c_gloves, body_part(FINGER)); +#endif return 0; } } /* special boot checks */ if (otmp == uarmf) { if (u.utrap && u.utraptype == TT_BEARTRAP) { +/*JP pline_The("bear trap prevents you from pulling your %s out.", +*/ + pline("%s‚ªŒF‚Ì㩂ɂ‚©‚Ü‚Á‚Ä‚¢‚é‚Ì‚Å’E‚®‚±‚Æ‚ª‚Å‚«‚È‚¢D", body_part(FOOT)); return 0; } else if (u.utrap && u.utraptype == TT_INFLOOR) { +/*JP You("are stuck in the %s, and cannot pull your %s out.", +*/ + You("%s‚ª%s‚É‚Í‚Ü‚Á‚Ä‚¢‚é‚Ì‚Å’E‚®‚±‚Æ‚ª‚Å‚«‚È‚¢D", surface(u.ux, u.uy), makeplural(body_part(FOOT))); return 0; } @@ -2217,20 +2647,36 @@ register struct obj *otmp; if (otmp == uarm || otmp == uarmu) { why = 0; /* the item which prevents disrobing */ if (uarmc && uarmc->cursed) { +/*JP Sprintf(buf, "remove your %s", cloak_simple_name(uarmc)); +*/ + Sprintf(buf, "%s‚ª’E‚°‚È‚¢", cloak_simple_name(uarmc)); why = uarmc; } else if (otmp == uarmu && uarm && uarm->cursed) { +/*JP Sprintf(buf, "remove your %s", c_suit); +*/ + Sprintf(buf, "%s‚ª’E‚°‚È‚¢", c_suit); why = uarm; } else if (welded(uwep) && bimanual(uwep)) { +#if 0 /*JP*/ Sprintf(buf, "release your %s", is_sword(uwep) ? c_sword : (uwep->otyp == BATTLE_AXE) ? c_axe : c_weapon); +#else + Sprintf(buf, "%s‚ªŽè•ú‚¹‚È‚¢", + is_sword(uwep) ? c_sword : (uwep->otyp == BATTLE_AXE) + ? c_axe + : c_weapon); +#endif why = uwep; } if (why) { +/*JP You("cannot %s to take off %s.", buf, the(xname(otmp))); +*/ + You("%s‚ð‚Í‚¸‚»‚¤‚Æ‚µ‚½‚ª%sD", xname(otmp), buf); why->bknown = TRUE; return 0; } @@ -2288,16 +2734,25 @@ do_takeoff() if (doff->what == W_WEP) { if (!cursed(uwep)) { setuwep((struct obj *) 0); +/*JP You("are empty %s.", body_part(HANDED)); +*/ + You("‰½‚à%s‚É‚µ‚Ä‚¢‚È‚¢D", body_part(HAND)); u.twoweap = FALSE; } } else if (doff->what == W_SWAPWEP) { setuswapwep((struct obj *) 0); +/*JP You("no longer have a second weapon readied."); +*/ + You("—\”õ‚Ì•Ší‚ð‚¨‚³‚ß‚½D"); u.twoweap = FALSE; } else if (doff->what == W_QUIVER) { setuqwep((struct obj *) 0); +/*JP You("no longer have ammunition readied."); +*/ + You("€”õ‚µ‚½–î’e‚ð‚¨‚³‚ß‚½D"); } else if (doff->what == WORN_ARMOR) { otmp = uarm; if (!cursed(otmp)) @@ -2379,7 +2834,10 @@ take_off(VOID_ARGS) doff->delay = 0; if (doff->what == 0L) { +/*JP You("finish %s.", doff->disrobing); +*/ + You("‘•”õ‚ð‰ð‚«‚¨‚¦‚½D"); return 0; } else if (doff->what == W_WEP) { doff->delay = 1; @@ -2454,12 +2912,21 @@ doddoremarm() int result = 0; if (context.takeoff.what || context.takeoff.mask) { +/*JP You("continue %s.", context.takeoff.disrobing); +*/ + You("‘•”õ‚ð‰ð‚­‚Ì‚ðÄŠJ‚µ‚½D"); +/*JP set_occupation(take_off, context.takeoff.disrobing, 0); +*/ + set_occupation(take_off, "‘•”õ‚ð‰ð‚­", 0); return 0; } else if (!uwep && !uswapwep && !uquiver && !uamul && !ublindf && !uleft && !uright && !wearing_armor()) { +/*JP You("are not wearing anything."); +*/ + You("‰½‚à‘•”õ‚µ‚Ä‚¢‚È‚¢D"); return 0; } @@ -2470,6 +2937,7 @@ doddoremarm() result = menu_remarm(result); if (context.takeoff.mask) { +#if 0 /*JP*//*“ú–{Œê‚Å‚ÍŽg‚í‚È‚¢*/ /* default activity for armor and/or accessories, possibly combined with weapons */ (void) strncpy(context.takeoff.disrobing, "disrobing", CONTEXTVERBSZ); @@ -2477,6 +2945,7 @@ doddoremarm() if (!(context.takeoff.mask & ~W_WEAPON)) (void) strncpy(context.takeoff.disrobing, "disarming", CONTEXTVERBSZ); +#endif (void) take_off(); } /* The time to perform the command is already completely accounted for @@ -2498,7 +2967,10 @@ int retry; all_worn_categories = (retry == -2); } else if (flags.menu_style == MENU_FULL) { all_worn_categories = FALSE; +/*JP n = query_category("What type of things do you want to take off?", +*/ + n = query_category("‚ǂ̃^ƒCƒv‚Ì•¨‚Ì‘•”õ‚ð‰ð‚«‚Ü‚·‚©H", invent, WORN_TYPES | ALL_TYPES, &pick_list, PICK_ANY); if (!n) @@ -2516,7 +2988,10 @@ int retry; all_worn_categories = TRUE; } +/*JP n = query_objlist("What do you want to take off?", invent, +*/ + n = query_objlist("‚Ç‚Ì‘•”õ‚ð‰ð‚«‚Ü‚·‚©H", invent, SIGNAL_NOMENU | USE_INVLET | INVORDER_SORT, &pick_list, PICK_ANY, all_worn_categories ? is_worn : is_worn_by_type); @@ -2525,7 +3000,10 @@ int retry; (void) select_off(pick_list[i].item.a_obj); free((genericptr_t) pick_list); } else if (n < 0 && flags.menu_style != MENU_COMBINATION) { +/*JP There("is nothing else you can remove or unwield."); +*/ + pline("‘•”õ‚ð‰ð‚¯‚é‚à‚͉̂½‚à‚È‚¢D"); } return 0; } @@ -2545,44 +3023,68 @@ register struct obj *atmp; if (DESTROY_ARM(uarmc)) { if (donning(otmp)) cancel_don(); +/*JP Your("%s crumbles and turns to dust!", cloak_simple_name(uarmc)); +*/ + Your("%s‚Í•²X‚É‚È‚Á‚½I", cloak_simple_name(uarmc)); (void) Cloak_off(); useup(otmp); } else if (DESTROY_ARM(uarm)) { if (donning(otmp)) cancel_don(); +/*JP Your("armor turns to dust and falls to the %s!", surface(u.ux, u.uy)); +*/ + Your("ŠZ‚͐o‚Æ‚È‚è%s‚É—Ž‚¿‚½I", surface(u.ux,u.uy)); (void) Armor_gone(); useup(otmp); } else if (DESTROY_ARM(uarmu)) { if (donning(otmp)) cancel_don(); +/*JP Your("shirt crumbles into tiny threads and falls apart!"); +*/ + Your("ƒVƒƒƒc‚̓Yƒ^ƒYƒ^‚É—ô‚¯C¬‚³‚ÈŽ…‹û‚Æ‚È‚è—Ž‚¿‚½I"); (void) Shirt_off(); useup(otmp); } else if (DESTROY_ARM(uarmh)) { if (donning(otmp)) cancel_don(); +/*JP Your("%s turns to dust and is blown away!", helm_simple_name(uarmh)); +*/ + Your("%s‚͐o‚ƂȂ萁‚«‚Æ‚ñ‚¾I", helm_simple_name(uarmh)); (void) Helmet_off(); useup(otmp); } else if (DESTROY_ARM(uarmg)) { if (donning(otmp)) cancel_don(); +/*JP Your("gloves vanish!"); +*/ + Your("¬Žè‚͏Á‚¦‚½I"); (void) Gloves_off(); useup(otmp); +/*JP selftouch("You"); +*/ + selftouch("‚»‚Ì‚Æ‚«‚ ‚È‚½‚Í"); } else if (DESTROY_ARM(uarmf)) { if (donning(otmp)) cancel_don(); +/*JP Your("boots disintegrate!"); +*/ + Your("ŒC‚Í•²X‚ɍӂ¯‚½I"); (void) Boots_off(); useup(otmp); } else if (DESTROY_ARM(uarms)) { if (donning(otmp)) cancel_don(); +/*JP Your("shield crumbles away!"); +*/ + Your("‚‚͍ӂ¯ŽU‚Á‚½I"); (void) Shield_off(); useup(otmp); } else { diff --git a/src/dog.c b/src/dog.c index efcb768..49250d9 100644 --- a/src/dog.c +++ b/src/dog.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" STATIC_DCL int NDECL(pet_type); @@ -87,7 +92,10 @@ boolean quietly; if (!quietly) /* have just been given "You the figurine and it transforms." message */ +/*JP pline("... into a pile of dust."); +*/ + pline("DDD‚»‚µ‚Ä‚¿‚è‚ÌŽR‚É‚È‚Á‚½D"); break; /* mtmp is null */ } } else if (!rn2(3)) { @@ -96,7 +104,10 @@ boolean quietly; pm = rndmonst(); if (!pm) { if (!quietly) +/*JP There("seems to be nothing available for a familiar."); +*/ + pline("‰º–l‚ÍŒ»‚ê‚È‚©‚Á‚½D"); break; } } @@ -104,7 +115,10 @@ boolean quietly; mtmp = makemon(pm, x, y, MM_EDOG | MM_IGNOREWATER | NO_MINVENT); if (otmp && !mtmp) { /* monster was genocided or square occupied */ if (!quietly) +/*JP pline_The("figurine writhes and then shatters into pieces!"); +*/ + pline("lŒ`‚Í‚à‚ª‚«C‚­‚¾‚¯ŽU‚Á‚½I"); break; } } while (!mtmp && --trycnt > 0); @@ -126,7 +140,10 @@ boolean quietly; mtmp->mtame = 0; /* not tame after all */ if (chance == 2) { /* hostile (cursed figurine) */ if (!quietly) +/*JP You("get a bad feeling about this."); +*/ + You("Œ™‚È—\Š´‚ª‚µ‚½D"); mtmp->mpeaceful = 0; set_malign(mtmp); } @@ -170,13 +187,29 @@ makedog() if (!*petname && pettype == PM_LITTLE_DOG) { /* All of these names were for dogs. */ if (Role_if(PM_CAVEMAN)) +#if 0 /*JP*/ petname = "Slasher"; /* The Warrior */ +#else + petname = "ƒXƒ‰ƒbƒVƒƒ["; +#endif if (Role_if(PM_SAMURAI)) +#if 0 /*JP*/ petname = "Hachi"; /* Shibuya Station */ +#else + petname = "ƒnƒ`Œö"; +#endif if (Role_if(PM_BARBARIAN)) +#if 0 /*JP*/ petname = "Idefix"; /* Obelix */ +#else + petname = "ƒCƒfƒtƒBƒNƒX"; +#endif if (Role_if(PM_RANGER)) +#if 0 /*JP*/ petname = "Sirius"; /* Orion's dog */ +#else + petname = "ƒVƒŠƒEƒX"; +#endif } mtmp = makemon(&mons[pettype], u.ux, u.uy, MM_EDOG); @@ -613,21 +646,36 @@ boolean pets_only; /* true for ascension or final escape */ mdrop_special_objs(mtmp); /* drop Amulet */ } else if (mtmp->meating || mtmp->mtrapped) { if (canseemon(mtmp)) +#if 0 /*JP*/ pline("%s is still %s.", Monnam(mtmp), mtmp->meating ? "eating" : "trapped"); +#else + pline("%s‚Í‚Ü‚¾%sD", Monnam(mtmp), + mtmp->meating ? "H‚ׂĂ¢‚é" : "㩂ɂ©‚©‚Á‚½‚Ü‚Ü‚¾"); +#endif stay_behind = TRUE; } else if (mon_has_amulet(mtmp)) { if (canseemon(mtmp)) +/*JP pline("%s seems very disoriented for a moment.", +*/ + pline("%s‚͈êu•ûŒüŠ´Šo‚ðŽ¸‚Á‚½‚悤‚¾D", Monnam(mtmp)); stay_behind = TRUE; } if (stay_behind) { if (mtmp->mleashed) { +#if 0 /*JP*/ pline("%s leash suddenly comes loose.", humanoid(mtmp->data) ? (mtmp->female ? "Her" : "His") : "Its"); +#else + pline("%s‚ÉŒ‹‚΂ꂽ•R‚Í“Ë‘R‚ä‚é‚ñ‚¾D", + humanoid(mtmp->data) + ? (mtmp->female ? "”ޏ—" : "”Þ") + : "‚»‚̐¶•¨"); +#endif m_unleash(mtmp, FALSE); } if (mtmp == u.usteed) { @@ -670,7 +718,10 @@ boolean pets_only; /* true for ascension or final escape */ } else if (mtmp->mleashed) { /* this can happen if your quest leader ejects you from the "home" level while a leashed pet isn't next to you */ +/*JP pline("%s leash goes slack.", s_suffix(Monnam(mtmp))); +*/ + pline("%s‚ÉŒ‹‚΂ꂽ•R‚Í‚½‚é‚ñ‚¾D", Monnam(mtmp)); m_unleash(mtmp, FALSE); } } @@ -902,10 +953,19 @@ register struct obj *obj; boolean big_corpse = (obj->otyp == CORPSE && obj->corpsenm >= LOW_PM && mons[obj->corpsenm].msize > mtmp->data->msize); +#if 0 /*JP*/ pline("%s catches %s%s", Monnam(mtmp), the(xname(obj)), !big_corpse ? "." : ", or vice versa!"); +#else + pline("%s‚Í%s‚ð‚‚©‚Ü‚¦‚½%s", + Monnam(mtmp), xname(obj), + !big_corpse ? "D" : "C‚ÆŒ¾‚¤‚æ‚è‚»‚Ì‹t‚©I"); +#endif } else if (cansee(mtmp->mx, mtmp->my)) +/*JP pline("%s.", Tobjnam(obj, "stop")); +*/ + pline("%s‚ÍŽ~‚Ü‚Á‚½D", xname(obj)); /* dog_eat expects a floor object */ place_object(obj, mtmp->mx, mtmp->my); (void) dog_eat(mtmp, obj, mtmp->mx, mtmp->my, FALSE); @@ -985,11 +1045,21 @@ boolean was_dead; if (!quietly && cansee(mtmp->mx, mtmp->my)) { if (haseyes(youmonst.data)) { if (haseyes(mtmp->data)) +#if 0 /*JP*/ pline("%s %s to look you in the %s.", Monnam(mtmp), mtmp->mpeaceful ? "seems unable" : "refuses", body_part(EYE)); +#else + pline("%s‚Í‚ ‚È‚½‚Ì%s%sD", Monnam(mtmp), + body_part(EYE), + mtmp->mpeaceful ? "‚ðŒ©‚é‚±‚Æ‚ª‚Å‚«‚È‚¢‚悤‚¾" : + "‚©‚ç–Ú‚ð‚»‚ç‚µ‚½"); +#endif else +/*JP pline("%s avoids your gaze.", Monnam(mtmp)); +*/ + pline("%s‚Í‚ ‚È‚½‚Ì‚É‚ç‚Ý‚ð‰ñ”ð‚µ‚½D", Monnam(mtmp)); } } } else { diff --git a/src/dogmove.c b/src/dogmove.c index 36e6c4a..9aa611d 100644 --- a/src/dogmove.c +++ b/src/dogmove.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" #include "mfndpos.h" @@ -268,13 +273,26 @@ boolean devour; pet eats visible food. */ if (sawpet || (seeobj && canspotmon(mtmp))) { if (tunnels(mtmp->data)) +/*JP pline("%s digs in.", noit_Monnam(mtmp)); +*/ + pline("%s‚ÍŒ@‚Á‚Ä‚¢‚éD", noit_Monnam(mtmp)); else +#if 0 /*JP*/ pline("%s %s %s.", noit_Monnam(mtmp), devour ? "devours" : "eats", distant_name(obj, doname)); +#else + pline("%s‚Í%s‚ð%s‚¢‚éD", noit_Monnam(mtmp), + distant_name(obj, doname), devour ? "ˆù‚ݍž‚ñ‚Å" : "H‚ׂÄ"); +#endif } else if (seeobj) +#if 0 /*JP*/ pline("It %s %s.", devour ? "devours" : "eats", distant_name(obj, doname)); +#else + pline("‚»‚ê‚Í%s‚ð%s‚¢‚éD", distant_name(obj, doname), + devour ? "ˆù‚ݍž‚ñ‚Å" : "H‚ׂÄ"); +#endif } if (obj->unpaid) { Strcpy(objnambuf, xname(obj)); @@ -296,8 +314,13 @@ boolean devour; obj->oerodeproof = 0; mtmp->mstun = 1; if (canseemon(mtmp) && flags.verbose) { +#if 0 /*JP:T*/ pline("%s spits %s out in disgust!", Monnam(mtmp), distant_name(obj, doname)); +#else + pline("%s‚Í%s‚ðƒyƒb‚Æ“f‚«o‚µ‚½I", Monnam(mtmp), + distant_name(obj,doname)); +#endif } } else if (obj == uball) { unpunish(); @@ -365,21 +388,38 @@ register struct edog *edog; if (mtmp->mhp < 1) goto dog_died; if (cansee(mtmp->mx, mtmp->my)) +/*JP pline("%s is confused from hunger.", Monnam(mtmp)); +*/ + pline("%s‚Í‹ó• ‚Ì‚½‚ߍ¬—‚µ‚Ä‚¢‚éD", Monnam(mtmp)); else if (couldsee(mtmp->mx, mtmp->my)) beg(mtmp); else +/*JP You_feel("worried about %s.", y_monnam(mtmp)); +*/ + You("%s‚ªS”z‚É‚È‚Á‚½D", y_monnam(mtmp)); stop_occupation(); } else if (monstermoves > edog->hungrytime + 750 || mtmp->mhp < 1) { dog_died: if (mtmp->mleashed && mtmp != u.usteed) +/*JP Your("leash goes slack."); +*/ + Your("•R‚Í‚½‚é‚ñ‚¾D"); else if (cansee(mtmp->mx, mtmp->my)) +/*JP pline("%s starves.", Monnam(mtmp)); +*/ + pline("%s‚Í‹Q‚¦‚ÅŽ€‚ñ‚¾D", Monnam(mtmp)); else +#if 0 /*JP*/ You_feel("%s for a moment.", Hallucination ? "bummed" : "sad"); +#else + You("%s‹C•ª‚É‚¨‚»‚í‚ꂽD", + Hallucination ? "‚ª‚Á‚©‚肵‚½" : "”ß‚µ‚¢"); +#endif mondied(mtmp); return TRUE; } @@ -440,8 +480,13 @@ int udist; if (carryamt != obj->quan) otmp = splitobj(obj, carryamt); if (cansee(omx, omy) && flags.verbose) +#if 0 /*JP:T*/ pline("%s picks up %s.", Monnam(mtmp), distant_name(otmp, doname)); +#else + pline("%s‚Í%s‚ðE‚Á‚½D", Monnam(mtmp), + distant_name(obj, doname)); +#endif obj_extract_self(otmp); newsym(omx, omy); (void) mpickobj(mtmp, otmp); @@ -701,7 +746,10 @@ register int after; /* this is extra fast monster movement */ if (!Conflict && !mtmp->mconf && mtmp == u.ustuck && !sticks(youmonst.data)) { unstuck(mtmp); /* swallowed case handled above */ +/*JP You("get released!"); +*/ + You("“®‚¯‚é‚悤‚É‚È‚Á‚½I"); } #endif if (!nohands(mtmp->data) && !verysmall(mtmp->data)) { @@ -876,8 +924,13 @@ newdogpos: if (info[chi] & ALLOW_U) { if (mtmp->mleashed) { /* play it safe */ +#if 0 /*JP:T*/ pline("%s breaks loose of %s leash!", Monnam(mtmp), mhis(mtmp)); +#else + pline("%s‚ÍŽ©•ª‚ɂ‚¢‚Ä‚¢‚é•R‚ð‚Í‚¸‚µ‚½I", + Monnam(mtmp)); +#endif m_unleash(mtmp, FALSE); } (void) mattacku(mtmp); @@ -907,7 +960,10 @@ newdogpos: remove_monster(omx, omy); place_monster(mtmp, nix, niy); if (cursemsg[chi] && (wasseen || canseemon(mtmp))) +/*JP pline("%s moves only reluctantly.", noit_Monnam(mtmp)); +*/ + pline("%s‚Í‚¢‚â‚¢‚â“®‚¢‚½D", Monnam(mtmp)); for (j = MTSZ - 1; j > 0; j--) mtmp->mtrack[j] = mtmp->mtrack[j - 1]; mtmp->mtrack[0].x = omx; diff --git a/src/dokick.c b/src/dokick.c index ca4e2a6..de71b5f 100644 --- a/src/dokick.c +++ b/src/dokick.c @@ -2,6 +2,11 @@ /* Copyright (c) Izchak Miller, Mike Stephenson, Steve Linhart, 1989. */ /* 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" #define is_bigfoot(x) ((x) == &mons[PM_SASQUATCH]) @@ -26,7 +31,10 @@ STATIC_DCL char *FDECL(kickstr, (char *)); STATIC_DCL void FDECL(otransit_msg, (struct obj *, BOOLEAN_P, long)); STATIC_DCL void FDECL(drop_to, (coord *, SCHAR_P)); +/*JP static const char kick_passes_thru[] = "kick passes harmlessly through"; +*/ +static const char kick_passes_thru[] = "R‚è‚̓_ƒ[ƒW‚ð—^‚¦‚¸‚É‚·‚蔲‚¯‚½"; STATIC_OVL void kickdmg(mon, clumsy) @@ -59,7 +67,10 @@ register boolean clumsy; blessed_foot_damage = 1; if (mon->data == &mons[PM_SHADE] && !blessed_foot_damage) { +/*JP pline_The("%s.", kick_passes_thru); +*/ + pline_The("%sD", kick_passes_thru); /* doesn't exercise skill or abuse alignment or frighten pet, and shades have no passive counterattack */ return; @@ -103,7 +114,10 @@ register boolean clumsy; mdx = mon->mx + u.dx; mdy = mon->my + u.dy; if (goodpos(mdx, mdy, mon, 0)) { +/*JP pline("%s reels from the blow.", Monnam(mon)); +*/ + pline("%s‚Í‹­‘Å‚³‚ê‚æ‚ë‚ß‚¢‚½D", Monnam(mon)); if (m_in_out_region(mon, mdx, mdy)) { remove_monster(mon->mx, mon->my); newsym(mon->mx, mon->my); @@ -160,7 +174,10 @@ xchar x, y; if (Levitation && !rn2(3) && verysmall(mon->data) && !is_flyer(mon->data)) { +/*JP pline("Floating in the air, you miss wildly!"); +*/ + pline("‹ó’†‚É•‚‚¢‚Ä‚¢‚é‚̂ŁC‘å‚«‚­ŠO‚µ‚½I"); exercise(A_DEX, FALSE); (void) passive(mon, FALSE, 1, AT_KICK, FALSE); return; @@ -208,10 +225,16 @@ xchar x, y; if (mon->data == &mons[PM_SHADE] && (!uarmf || !uarmf->blessed)) { /* doesn't matter whether it would have hit or missed, and shades have no passive counterattack */ +/*JP Your("%s %s.", kick_passes_thru, mon_nam(mon)); +*/ + You("%s‚ðR‚Á‚½‚ªC%sD", mon_nam(mon), kick_passes_thru); break; /* skip any additional kicks */ } else if (tmp > (kickdieroll = rnd(20))) { +/*JP You("kick %s.", mon_nam(mon)); +*/ + You("%s‚ðR‚Á‚½D", mon_nam(mon)); sum = damageum(mon, uattk); (void) passive(mon, (boolean) (sum > 0), (sum != 2), AT_KICK, FALSE); @@ -232,7 +255,10 @@ xchar x, y; if (!rn2((i < j / 10) ? 2 : (i < j / 5) ? 3 : 4)) { if (martial() && !rn2(2)) goto doit; +/*JP Your("clumsy kick does no damage."); +*/ + Your("•sŠí—p‚ȏR‚è‚Ń_ƒ[ƒW‚ð—^‚¦‚ç‚ê‚È‚©‚Á‚½D"); (void) passive(mon, FALSE, 1, AT_KICK, FALSE); return; } @@ -248,15 +274,23 @@ xchar x, y; else if (uarm && objects[uarm->otyp].oc_bulky && ACURR(A_DEX) < rnd(25)) clumsy = TRUE; doit: +/*JP You("kick %s.", mon_nam(mon)); +*/ + You("%s‚ðR‚Á‚½D", mon_nam(mon)); if (!rn2(clumsy ? 3 : 4) && (clumsy || !bigmonst(mon->data)) && mon->mcansee && !mon->mtrapped && !thick_skinned(mon->data) && mon->data->mlet != S_EEL && haseyes(mon->data) && mon->mcanmove && !mon->mstun && !mon->mconf && !mon->msleeping && mon->data->mmove >= 12) { if (!nohands(mon->data) && !rn2(martial() ? 5 : 3)) { +#if 0 /*JP:T*/ pline("%s blocks your %skick.", Monnam(mon), clumsy ? "clumsy " : ""); +#else + pline("%s‚Í‚ ‚È‚½‚Ì%sR‚è‚ð–h‚¢‚¾D", Monnam(mon), + clumsy ? "•sŠí—p‚È" : ""); +#endif (void) passive(mon, FALSE, 1, AT_KICK, FALSE); return; } else { @@ -266,6 +300,7 @@ doit: unmap_object(x, y); newsym(x, y); } +#if 0 /*JP*/ pline("%s %s, %s evading your %skick.", Monnam(mon), (!level.flags.noteleport && can_teleport(mon->data)) ? "teleports" @@ -277,6 +312,18 @@ doit: ? "slides" : "jumps", clumsy ? "easily" : "nimbly", clumsy ? "clumsy " : ""); +#else + pline("%s‚Í%sC%s‚ ‚È‚½‚Ì%sR‚è‚ð‚½‚­‚Ý‚É”ð‚¯‚½D", Monnam(mon), + (!level.flags.noteleport && can_teleport(mon->data)) + ? "uŠÔˆÚ“®‚µ" + : is_floater(mon->data) ? "•‚‚«" + : is_flyer(mon->data) ? "‚͂΂½‚«" + : (nolimbs(mon->data) + || slithy(mon->data)) + ? "‰¡‚ÉŠŠ‚è" + : "’µ‚Ë", + clumsy ? "ŠyX‚Æ" : "‘f‘‚­", clumsy ? "•sŠí—p‚È" : ""); +#endif (void) passive(mon, FALSE, 1, AT_KICK, FALSE); return; } @@ -302,8 +349,13 @@ register struct obj *gold; } else if (!mtmp->mcanmove) { /* too light to do real damage */ if (canseemon(mtmp)) { +#if 0 /*JP:T*/ pline_The("%s harmlessly %s %s.", xname(gold), otense(gold, "hit"), mon_nam(mtmp)); +#else + pline("%s‚Í%s‚É–½’†‚µ‚½D", xname(gold), + mon_nam(mtmp)); +#endif msg_given = TRUE; } } else { @@ -315,7 +367,10 @@ register struct obj *gold; setmangry(mtmp); /* greedy monsters catch gold */ if (cansee(mtmp->mx, mtmp->my)) +/*JP pline("%s catches the gold.", Monnam(mtmp)); +*/ + pline("%s‚Í‹à‰Ý‚ðƒLƒƒƒbƒ`‚µ‚½D", Monnam(mtmp)); (void) mpickobj(mtmp, gold); gold = (struct obj *) 0; /* obj has been freed */ if (mtmp->isshk) { @@ -325,24 +380,43 @@ register struct obj *gold; robbed -= value; if (robbed < 0L) robbed = 0L; +#if 0 /*JP*/ pline_The("amount %scovers %s recent losses.", !robbed ? "" : "partially ", mhis(mtmp)); +#else + pline("%s%s‘¹Ž¸‚ð•â“U‚·‚é‚Ì‚ÉŽg‚í‚ꂽD", + !robbed ? "" : "‹à‚̈ꕔ‚Í", mhis(mtmp)); +#endif ESHK(mtmp)->robbed = robbed; if (!robbed) make_happy_shk(mtmp, FALSE); } else { if (mtmp->mpeaceful) { ESHK(mtmp)->credit += value; +#if 0 /*JP*/ You("have %ld %s in credit.", ESHK(mtmp)->credit, currency(ESHK(mtmp)->credit)); +#else + You("%ld%s‚ð‘Ý‚µ‚É‚µ‚½D", ESHK(mtmp)->credit, + currency(ESHK(mtmp)->credit)); +#endif } else +/*JP verbalize("Thanks, scum!"); +*/ + verbalize("‚ ‚肪‚Æ‚æI‚­‚»‚Á‚½‚êI"); } } else if (mtmp->ispriest) { if (mtmp->mpeaceful) +/*JP verbalize("Thank you for your contribution."); +*/ + verbalize("Šñ•t‚ÉŠ´ŽÓ‚µ‚Ü‚·D"); else +/*JP verbalize("Thanks, scum!"); +*/ + verbalize("‚ ‚肪‚Æ‚æI‚­‚»‚Á‚½‚êI"); } else if (mtmp->isgd) { umoney = money_cnt(invent); /* Some of these are iffy, because a hostile guard @@ -380,9 +454,15 @@ register struct obj *gold; } } if (mtmp->mpeaceful) +/*JP verbalize("That should do. Now beat it!"); +*/ + verbalize("‚È‚ñ‚¾‚¢H‚±‚ê‚́H"); else +/*JP verbalize("That's not enough, coward!"); +*/ + verbalize("‚»‚ñ‚È‚à‚̂ōςނ©C”Ú‹¯ŽÒI"); } return TRUE; } @@ -421,9 +501,15 @@ xchar x, y; /* coordinates where object was before the impact, not after */ otmp2 = otmp->nobj; if (objects[otmp->otyp].oc_material == GLASS && otmp->oclass != GEM_CLASS && !obj_resists(otmp, 33, 100)) { +/*JP result = "shatter"; +*/ + result = "ƒKƒ`ƒƒƒ“"; } else if (otmp->otyp == EGG && !rn2(3)) { +/*JP result = "cracking"; +*/ + result = "ƒOƒVƒƒƒb"; } if (result) { if (otmp->otyp == MIRROR) @@ -433,7 +519,10 @@ xchar x, y; /* coordinates where object was before the impact, not after */ * but it's always exactly 1 that breaks */ if (otmp->otyp == EGG && otmp->spe && otmp->corpsenm >= LOW_PM) change_luck(-1); +/*JP You_hear("a muffled %s.", result); +*/ + You_hear("‚±‚à‚Á‚½%s‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D", result); if (costly) { if (frominv && !otmp->unpaid) otmp->no_charge = 1; @@ -452,11 +541,19 @@ xchar x, y; /* coordinates where object was before the impact, not after */ } if (costly && loss) { if (!insider) { +/*JP You("caused %ld %s worth of damage!", loss, currency(loss)); +*/ + You("%ld%s•ª‚Ì‘¹ŠQ‚ð‚Ђ«‚¨‚±‚µ‚½I", loss, currency(loss)); make_angry_shk(shkp, x, y); } else { +#if 0 /*JP*/ You("owe %s %ld %s for objects destroyed.", mon_nam(shkp), loss, currency(loss)); +#else + You("Ší•¨”j‘¹‚Å%s‚É%ld%s‚ÌŽØ‚è‚ð‚‚­‚Á‚½D", mon_nam(shkp), loss, + currency(loss)); +#endif } } } @@ -499,27 +596,47 @@ xchar x, y; || trap->ttyp == WEB)) { if (!trap->tseen) find_trap(trap); +#if 0 /*JP*/ You_cant("kick %s that's in a %s!", something, Hallucination ? "tizzy" : (trap->ttyp == WEB) ? "web" : "pit"); +#else + You("%s‚Å‚Í%s‚ðR‚邱‚Æ‚ª‚Å‚«‚È‚¢I", + Hallucination ? "¬—‚µ‚½ó‘Ô" + : trap->ttyp == WEB + ? "‚­‚à‚Ì‘ƒ‚Ì’†" : "—Ž‚µŒŠ‚Ì’†", + something); +#endif return 1; } if (Fumbling && !rn2(3)) { +/*JP Your("clumsy kick missed."); +*/ + Your("•sŠí—p‚ȏR‚è‚ÍŠO‚ꂽD"); return 1; } if (!uarmf && kickedobj->otyp == CORPSE && touch_petrifies(&mons[kickedobj->corpsenm]) && !Stone_resistance) { +#if 0 /*JP*/ You("kick %s with your bare %s.", corpse_xname(kickedobj, (const char *) 0, CXN_PFX_THE), makeplural(body_part(FOOT))); +#else + You("‘f%s‚Å%s‚ðR‚Á‚½D", + body_part(FOOT), + corpse_xname(kickedobj, (const char *) 0, CXN_PFX_THE)); +#endif if (poly_when_stoned(youmonst.data) && polymon(PM_STONE_GOLEM)) { ; /* hero has been transformed but kick continues */ } else { /* normalize body shape here; foot, not body_part(FOOT) */ +/*JP Sprintf(killer.name, "kicking %s barefoot", +*/ + Sprintf(killer.name, "ŒC–³‚µ‚Å%s‚ðR‚Á‚Ä", killer_xname(kickedobj)); instapetrify(killer.name); } @@ -563,24 +680,42 @@ xchar x, y; if ((!martial() && rn2(20) > ACURR(A_DEX)) || IS_ROCK(levl[u.ux][u.uy].typ) || closed_door(u.ux, u.uy)) { if (Blind) +/*JP pline("It doesn't come loose."); +*/ + pline("‚Ñ‚­‚Æ‚à‚µ‚È‚¢D"); else +#if 0 /*JP*/ pline("%s %sn't come loose.", The(distant_name(kickedobj, xname)), otense(kickedobj, "do")); +#else + pline("%s‚Í‚Ñ‚­‚Æ‚à‚µ‚È‚¢D", + distant_name(kickedobj, xname)); +#endif return (!rn2(3) || martial()); } if (Blind) +/*JP pline("It comes loose."); +*/ + pline("‰½‚©‚ªŠÉ‚ñ‚łƂꂽD"); else +#if 0 /*JP*/ pline("%s %s loose.", The(distant_name(kickedobj, xname)), otense(kickedobj, "come")); +#else + pline("%s‚ÍŠÉ‚ñ‚łƂꂽD", distant_name(kickedobj, xname)); +#endif obj_extract_self(kickedobj); newsym(x, y); if (costly && (!costly_spot(u.ux, u.uy) || !index(u.urooms, *in_rooms(x, y, SHOPBASE)))) addtobill(kickedobj, FALSE, FALSE, FALSE); +/*JP if (!flooreffects(kickedobj, u.ux, u.uy, "fall")) { +*/ + if (!flooreffects(kickedobj, u.ux, u.uy, "—Ž‚¿‚é")) { place_object(kickedobj, u.ux, u.uy); stackobj(kickedobj); newsym(u.ux, u.uy); @@ -593,11 +728,17 @@ xchar x, y; boolean otrp = kickedobj->otrapped; if (range < 2) +/*JP pline("THUD!"); +*/ + pline("ƒKƒ“I"); container_impact_dmg(kickedobj, x, y); if (kickedobj->olocked) { if (!rn2(5) || (martial() && !rn2(2))) { +/*JP You("break open the lock!"); +*/ + You("Œ®‚ð‰ó‚µŠJ‚¯‚½I"); breakchestlock(kickedobj, FALSE); if (otrp) (void) chest_trap(kickedobj, LEG, FALSE); @@ -605,7 +746,10 @@ xchar x, y; } } else { if (!rn2(3) || (martial() && !rn2(2))) { +/*JP pline_The("lid slams open, then falls shut."); +*/ + pline("ŠW‚ª‚΂½‚ñ‚ÆŠJ‚«C•Â‚¶‚½D"); kickedobj->lknown = 1; if (otrp) (void) chest_trap(kickedobj, LEG, FALSE); @@ -627,7 +771,10 @@ xchar x, y; */ if (range < 2) { if (!Is_box(kickedobj)) +/*JP pline("Thump!"); +*/ + pline("ƒSƒcƒ“I"); return (!rn2(3) || martial()); } @@ -656,8 +803,13 @@ xchar x, y; } if (slide && !Blind) +#if 0 /*JP*/ pline("Whee! %s %s across the %s.", Doname2(kickedobj), otense(kickedobj, "slide"), surface(x, y)); +#else + pline("ƒYƒ‹ƒbI%s‚Í%s‚̏ã‚ðŠŠ‚Á‚½D", Doname2(kickedobj), + surface(x,y)); +#endif if (costly && !isgold) addtobill(kickedobj, FALSE, FALSE, TRUE); @@ -695,7 +847,10 @@ xchar x, y; FALSE); } +/*JP if (flooreffects(kickedobj, bhitpos.x, bhitpos.y, "fall")) +*/ + if(flooreffects(kickedobj, bhitpos.x, bhitpos.y, "—Ž‚¿‚é")) return 1; if (kickedobj->unpaid) subfrombill(kickedobj, shkp); @@ -715,36 +870,86 @@ char *buf; if (kickedobj) what = killer_xname(kickedobj); else if (maploc == &nowhere) +/*JP what = "nothing"; +*/ + what = "‰½‚à‚È‚¢‚Æ‚±‚ë"; else if (IS_DOOR(maploc->typ)) +/*JP what = "a door"; +*/ + what = "”à"; else if (IS_TREE(maploc->typ)) +/*JP what = "a tree"; +*/ + what = "–Ø"; else if (IS_STWALL(maploc->typ)) +/*JP what = "a wall"; +*/ + what = "•Ç"; else if (IS_ROCK(maploc->typ)) +/*JP what = "a rock"; +*/ + what = "Šâ"; else if (IS_THRONE(maploc->typ)) +/*JP what = "a throne"; +*/ + what = "‹ÊÀ"; else if (IS_FOUNTAIN(maploc->typ)) +/*JP what = "a fountain"; +*/ + what = "ò"; else if (IS_GRAVE(maploc->typ)) +/*JP what = "a headstone"; +*/ + what = "•æÎ"; else if (IS_SINK(maploc->typ)) +/*JP what = "a sink"; +*/ + what = "—¬‚µ‘ä"; else if (IS_ALTAR(maploc->typ)) +/*JP what = "an altar"; +*/ + what = "Õ’d"; else if (IS_DRAWBRIDGE(maploc->typ)) +/*JP what = "a drawbridge"; +*/ + what = "’µ‚Ë‹´"; else if (maploc->typ == STAIRS) +/*JP what = "the stairs"; +*/ + what = "ŠK’i"; else if (maploc->typ == LADDER) +/*JP what = "a ladder"; +*/ + what = "‚Í‚µ‚²"; else if (maploc->typ == IRONBARS) +/*JP what = "an iron bar"; +*/ + what = "“S–_"; else +/*JP what = "something weird"; +*/ + what = "‰½‚©–­‚È‚à‚Ì"; +#if 0 /*JP*/ return strcat(strcpy(buf, "kicking "), what); +#else + Sprintf(buf, "%s‚ðR‚Á‚Ä", what); + return buf; +#endif } int @@ -758,14 +963,26 @@ dokick() char buf[BUFSZ]; if (nolimbs(youmonst.data) || slithy(youmonst.data)) { +/*JP You("have no legs to kick with."); +*/ + You("‰½‚©‚ðR‚낤‚É‚à‘«‚ª‚È‚¢D"); no_kick = TRUE; } else if (verysmall(youmonst.data)) { +/*JP You("are too small to do any kicking."); +*/ + You("‰½‚©‚ðR‚é‚ɂ͏¬‚³‚·‚¬‚éD"); no_kick = TRUE; } else if (u.usteed) { +/*JP if (yn_function("Kick your steed?", ynchars, 'y') == 'y') { +*/ + if (yn_function("”n‚ðR‚éH", ynchars, 'y') == 'y') { +/*JP You("kick %s.", mon_nam(u.usteed)); +*/ + You("%s‚ðR‚Á‚½D", mon_nam(u.usteed)); kick_steed(); return 1; } else { @@ -783,26 +1000,41 @@ dokick() bp, (wl == BOTH_SIDES) ? "are" : "is"); no_kick = TRUE; } else if (near_capacity() > SLT_ENCUMBER) { +/*JP Your("load is too heavy to balance yourself for a kick."); +*/ + You("‚½‚­‚³‚ñ‚à‚Ì‚ðŽ‚¿‚·‚¬‚ďR‚è‚Ì‚½‚߂̃oƒ‰ƒ“ƒX‚ª‚Æ‚ê‚È‚¢D"); no_kick = TRUE; } else if (youmonst.data->mlet == S_LIZARD) { +/*JP Your("legs cannot kick effectively."); +*/ + Your("‘«‚Å‚Í‚¤‚Ü‚­R‚ê‚È‚¢D"); no_kick = TRUE; } else if (u.uinwater && !rn2(2)) { +/*JP Your("slow motion kick doesn't hit anything."); +*/ + Your("’x‚¢“®‚«‚̏R‚è‚Å‚Í–½’†‚µ‚悤‚ª‚È‚¢D"); no_kick = TRUE; } else if (u.utrap) { no_kick = TRUE; switch (u.utraptype) { case TT_PIT: if (!Passes_walls) +/*JP pline("There's not enough room to kick down here."); +*/ + pline("—Ž‚µŒŠ‚É‚Í‚Ü‚Á‚Ä‚¢‚é‚̂ŁCR‚ê‚È‚¢D"); else no_kick = FALSE; break; case TT_WEB: case TT_BEARTRAP: +/*JP You_cant("move your %s!", body_part(LEG)); +*/ + You("%s‚ð“®‚©‚·‚±‚Æ‚ª‚Å‚«‚È‚¢I", body_part(LEG)); break; default: break; @@ -832,21 +1064,33 @@ dokick() if (u.uswallow) { switch (rn2(3)) { case 0: +/*JP You_cant("move your %s!", body_part(LEG)); +*/ + You("%s‚ð“®‚©‚·‚±‚Æ‚ª‚Å‚«‚È‚¢I", body_part(LEG)); break; case 1: if (is_animal(u.ustuck->data)) { +/*JP pline("%s burps loudly.", Monnam(u.ustuck)); +*/ + pline("%s‚Í‘å‚«‚ȃQƒbƒv‚ð‚µ‚½D", Monnam(u.ustuck)); break; } default: +/*JP Your("feeble kick has no effect."); +*/ + Your("ŽãX‚µ‚¢R‚è‚ÍŒø‰Ê‚ª‚È‚¢D"); break; break; } return 1; } else if (u.utrap && u.utraptype == TT_PIT) { /* must be Passes_walls */ +/*JP You("kick at the side of the pit."); +*/ + You("—Ž‚µŒŠ‚Ì•Ç‚ðR‚Á‚½D"); return 1; } if (Levitation) { @@ -861,7 +1105,10 @@ dokick() if (isok(xx, yy) && !IS_ROCK(levl[xx][yy].typ) && !IS_DOOR(levl[xx][yy].typ) && (!Is_airlevel(&u.uz) || !OBJ_AT(xx, yy))) { +/*JP You("have nothing to brace yourself against."); +*/ + pline("Žx‚¦‚É‚Å‚«‚é‚悤‚È‚à‚Ì‚ª–³‚¢D"); return 0; } } @@ -942,7 +1189,10 @@ dokick() } if (is_pool(x, y) ^ !!u.uinwater) { /* objects normally can't be removed from water by kicking */ +/*JP You("splash some water around."); +*/ + You("…‚ð‰ñ‚è‚É‚Ü‚«‚¿‚炵‚½D"); return 1; } @@ -960,16 +1210,26 @@ dokick() if (maploc->typ == SDOOR) { if (!Levitation && rn2(30) < avrg_attrib) { cvt_sdoor_to_door(maploc); /* ->typ = DOOR */ +#if 0 /*JP*/ pline("Crash! %s a secret door!", /* don't "kick open" when it's locked unless it also happens to be trapped */ (maploc->doormask & (D_LOCKED | D_TRAPPED)) == D_LOCKED ? "Your kick uncovers" : "You kick open"); +#else + pline("ƒKƒVƒƒƒ“I‚ ‚È‚½‚͔閧‚Ì”à‚ð%s‚½I", + (maploc->doormask & (D_LOCKED|D_TRAPPED)) == D_LOCKED + ? "”­Œ©‚µ" + : "R‚èŠJ‚¯"); +#endif exercise(A_DEX, TRUE); if (maploc->doormask & D_TRAPPED) { maploc->doormask = D_NODOOR; +/*JP b_trapped("door", FOOT); +*/ + b_trapped("”à", FOOT); } else if (maploc->doormask != D_NODOOR && !(maploc->doormask & D_LOCKED)) maploc->doormask = D_ISOPEN; @@ -983,7 +1243,10 @@ dokick() } if (maploc->typ == SCORR) { if (!Levitation && rn2(30) < avrg_attrib) { +/*JP pline("Crash! You kick open a secret passage!"); +*/ + pline("ƒKƒVƒƒƒ“I‚ ‚È‚½‚͔閧‚̒ʘH‚ðR‚è‚â‚Ô‚Á‚½I"); exercise(A_DEX, TRUE); maploc->typ = CORR; feel_newsym(x, y); /* we know it's gone */ @@ -1001,9 +1264,15 @@ dokick() maploc->doormask = 0; /* don't leave loose ends.. */ (void) mkgold((long) rnd(200), x, y); if (Blind) +/*JP pline("CRASH! You destroy it."); +*/ + pline("ƒKƒVƒƒƒ“I‚ ‚È‚½‚͉½‚©‚ð”j‰ó‚µ‚½D"); else { +/*JP pline("CRASH! You destroy the throne."); +*/ + pline("ƒKƒVƒƒƒ“I‚ ‚È‚½‚͋ʍÀ‚ð”j‰ó‚µ‚½D"); newsym(x, y); } exercise(A_DEX, TRUE); @@ -1018,9 +1287,15 @@ dokick() rnd_class(DILITHIUM_CRYSTAL, LUCKSTONE - 1), x, y, FALSE, TRUE); if (Blind) +/*JP You("kick %s loose!", something); +*/ + You("‚È‚É‚©‚ðR‚èŽU‚炵‚½I"); else { +/*JP You("kick loose some ornamental coins and gems!"); +*/ + You("‘•ü—p‚Ì‹à‰Ý‚â•óÎ‚ðR‚èŽU‚炵‚½I"); newsym(x, y); } /* prevent endless milking */ @@ -1038,7 +1313,10 @@ dokick() if (IS_ALTAR(maploc->typ)) { if (Levitation) goto dumb; +/*JP You("kick %s.", (Blind ? something : "the altar")); +*/ + You("%s‚ðR‚Á‚½D", (Blind ? "‰½‚©" : "Õ’d")); if (!rn2(3)) goto ouch; altar_wrath(x, y); @@ -1048,13 +1326,22 @@ dokick() if (IS_FOUNTAIN(maploc->typ)) { if (Levitation) goto dumb; +/*JP You("kick %s.", (Blind ? something : "the fountain")); +*/ + You("%s‚ðR‚Á‚½D",(Blind ? "‰½‚©" : "ò")); if (!rn2(3)) goto ouch; /* make metal boots rust */ if (uarmf && rn2(3)) +/*JP if (water_damage(uarmf, "metal boots", TRUE) == ER_NOTHING) { +*/ + if (water_damage(uarmf, "‹à‘®‚ÌŒC", TRUE) == ER_NOTHING) { +/*JP Your("boots get wet."); +*/ + Your("ŒC‚Í”G‚ꂽD"); /* could cause short-lived fumbling here */ } exercise(A_DEX, TRUE); @@ -1089,7 +1376,11 @@ dokick() /* nothing, fruit or trouble? 75:23.5:1.5% */ if (rn2(3)) { if (!rn2(6) && !(mvitals[PM_KILLER_BEE].mvflags & G_GONE)) +#if 0 /*JP*/ You_hear("a low buzzing."); /* a warning */ +#else + You_hear("‚ԁ[‚ñ‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D"); /* a warning */ +#endif goto ouch; } if (rn2(15) && !(maploc->looted & TREE_LOOTED) @@ -1098,17 +1389,28 @@ dokick() short frtype = treefruit->otyp; treefruit->quan = nfruit; if (is_plural(treefruit)) +/*JP pline("Some %s fall from the tree!", xname(treefruit)); +*/ + pline("%s‚ª‰½ŒÂ‚©–Ø‚©‚ç—Ž‚¿‚Ä‚«‚½I", xname(treefruit)); else +/*JP pline("%s falls from the tree!", An(xname(treefruit))); +*/ + pline("%s‚ª–Ø‚©‚ç—Ž‚¿‚Ä‚«‚½I", xname(treefruit)); nfall = scatter(x, y, 2, MAY_HIT, treefruit); if (nfall != nfruit) { /* scatter left some in the tree, but treefruit * may not refer to the correct object */ treefruit = mksobj(frtype, TRUE, FALSE); treefruit->quan = nfruit - nfall; +#if 0 /*JP*/ pline("%ld %s got caught in the branches.", nfruit - nfall, xname(treefruit)); +#else + pline("%ldŒÂ‚Ì%s‚ªŽ}‚ɂЂÁ‚©‚©‚Á‚½D", + nfruit - nfall, xname(treefruit)); +#endif dealloc_obj(treefruit); } exercise(A_DEX, TRUE); @@ -1129,9 +1431,15 @@ dokick() made++; } if (made) +/*JP pline("You've attracted the tree's former occupants!"); +*/ + pline("–؂̐æZ–¯‚ð‹N‚±‚µ‚Ä‚µ‚Ü‚Á‚½I"); else +/*JP You("smell stale honey."); +*/ + pline("ŒÃ‚¢‚Í‚¿‚݂‚̂ɂ¨‚¢‚ª‚µ‚½D"); maploc->looted |= TREE_SWARM; return 1; } @@ -1147,17 +1455,29 @@ dokick() goto dumb; if (rn2(5)) { if (!Deaf) +/*JP pline("Klunk! The pipes vibrate noisily."); +*/ + pline("ƒKƒ‰ƒ“IƒpƒCƒv‚Í‚¤‚邳‚­U“®‚µ‚½D"); else +/*JP pline("Klunk!"); +*/ + pline("ƒKƒ‰ƒ“I"); exercise(A_DEX, TRUE); return 1; } else if (!(maploc->looted & S_LPUDDING) && !rn2(3) && !(mvitals[PM_BLACK_PUDDING].mvflags & G_GONE)) { if (Blind) +/*JP You_hear("a gushing sound."); +*/ + You_hear("‚È‚É‚©‚ª•¬o‚·‚鉹‚ð•·‚¢‚½D"); else +/*JP pline("A %s ooze gushes up from the drain!", +*/ + pline("%s‰t‘Ì‚ª”r…Œû‚©‚ç‚É‚¶‚ݏo‚½I", hcolor(NH_BLACK)); (void) makemon(&mons[PM_BLACK_PUDDING], x, y, NO_MM_FLAGS); exercise(A_DEX, TRUE); @@ -1167,19 +1487,31 @@ dokick() } else if (!(maploc->looted & S_LDWASHER) && !rn2(3) && !(mvitals[washerndx].mvflags & G_GONE)) { /* can't resist... */ +/*JP pline("%s returns!", (Blind ? Something : "The dish washer")); +*/ + pline("%s‚ª–ß‚Á‚Ä‚«‚½I", (Blind ? "‰½‚©" : "ŽMô‚¢")); if (makemon(&mons[washerndx], x, y, NO_MM_FLAGS)) newsym(x, y); maploc->looted |= S_LDWASHER; exercise(A_DEX, TRUE); return 1; } else if (!rn2(3)) { +#if 0 /*JP*/ pline("Flupp! %s.", (Blind ? "You hear a sloshing sound" : "Muddy waste pops up from the drain")); +#else + pline("‚¤‚íI%sD", + (Blind ? "‚ ‚È‚½‚́Cƒoƒ`ƒƒƒoƒ`ƒƒ‚·‚鉹‚ð•·‚¢‚½" + : "”r…Œû‚©‚ç‚Ç‚ë‚Ç‚ë‚Ì”pŠü•¨‚ªo‚Ä‚­‚é")); +#endif if (!(maploc->looted & S_LRING)) { /* once per sink */ if (!Blind) +/*JP You_see("a ring shining in its midst."); +*/ + You("‚»‚Ì’†‚ÉŒõ‚éŽw—Ö‚ðŒ©‚Â‚¯‚½D"); (void) mkobj_at(RING_CLASS, x, y, TRUE); newsym(x, y); exercise(A_DEX, TRUE); @@ -1195,14 +1527,20 @@ dokick() if (!IS_STWALL(maploc->typ) && maploc->ladder == LA_DOWN) goto dumb; ouch: +/*JP pline("Ouch! That hurts!"); +*/ + pline("‚¢‚Ä‚ÁI‰ö‰ä‚µ‚½I"); exercise(A_DEX, FALSE); exercise(A_STR, FALSE); if (isok(x, y)) { if (Blind) feel_location(x, y); /* we know we hit it */ if (is_drawbridge_wall(x, y) >= 0) { +/*JP pline_The("drawbridge is unaffected."); +*/ + pline("’µ‚Ë‹´‚Í‚Ñ‚­‚Æ‚à‚µ‚È‚¢D"); /* update maploc to refer to the drawbridge */ (void) find_drawbridge(&x, &y); maploc = &levl[x][y]; @@ -1224,11 +1562,17 @@ dokick() dumb: exercise(A_DEX, FALSE); if (martial() || ACURR(A_DEX) >= 16 || rn2(3)) { +/*JP You("kick at empty space."); +*/ + You("‰½‚à‚È‚¢‹óŠÔ‚ðR‚Á‚½D"); if (Blind) feel_location(x, y); } else { +/*JP pline("Dumb move! You strain a muscle."); +*/ + pline("‚΂©‚°‚½“®‚«‚¾I‹Ø“÷‚ð’É‚ß‚½D"); exercise(A_STR, FALSE); set_wounded_legs(RIGHT_SIDE, 5 + rnd(5)); } @@ -1248,16 +1592,28 @@ dokick() /* break the door */ if (maploc->doormask & D_TRAPPED) { if (flags.verbose) +/*JP You("kick the door."); +*/ + You("”à‚ðR‚Á‚½D"); exercise(A_STR, FALSE); maploc->doormask = D_NODOOR; +/*JP b_trapped("door", FOOT); +*/ + b_trapped("”à", FOOT); } else if (ACURR(A_STR) > 18 && !rn2(5) && !shopdoor) { +/*JP pline("As you kick the door, it shatters to pieces!"); +*/ + pline("”à‚ðR‚é‚ƁC‚±‚È‚²‚È‚É‚­‚¾‚¯‚½I"); exercise(A_STR, TRUE); maploc->doormask = D_NODOOR; } else { +/*JP pline("As you kick the door, it crashes open!"); +*/ + pline("”à‚ðR‚é‚ƁC‰ó‚ê‚ÄŠJ‚¢‚½I"); exercise(A_STR, TRUE); maploc->doormask = D_BROKEN; } @@ -1265,7 +1621,10 @@ dokick() unblock_point(x, y); /* vision */ if (shopdoor) { add_damage(x, y, 400L); +/*JP pay_for_damage("break", FALSE); +*/ + pay_for_damage("”j‰ó‚·‚é", FALSE); } if (in_town(x, y)) for (mtmp = fmon; mtmp; mtmp = mtmp->nmon) { @@ -1273,7 +1632,10 @@ dokick() continue; if (is_watch(mtmp->data) && couldsee(mtmp->mx, mtmp->my) && mtmp->mpeaceful) { +/*JP mon_yells(mtmp, "Halt, thief! You're under arrest!"); +*/ + mon_yells(mtmp, "Ž~‚Ü‚ê“D–_I‚¨‚Ü‚¦‚ð‘ß•ß‚·‚éI"); (void) angry_guards(FALSE); break; } @@ -1282,7 +1644,10 @@ dokick() if (Blind) feel_location(x, y); /* we know we hit it */ exercise(A_STR, TRUE); +/*JP pline("WHAMMM!!!"); +*/ + pline("‚®‚Ÿ‚Ÿ‚Ÿ‚ñI"); if (in_town(x, y)) for (mtmp = fmon; mtmp; mtmp = mtmp->nmon) { if (DEADMONSTER(mtmp)) @@ -1291,10 +1656,16 @@ dokick() && couldsee(mtmp->mx, mtmp->my)) { if (levl[x][y].looted & D_WARNED) { mon_yells(mtmp, +/*JP "Halt, vandal! You're under arrest!"); +*/ + "Ž~‚Ü‚ê–ì”ؐlI‚¨‚Ü‚¦‚ð‘ß•ß‚·‚éI"); (void) angry_guards(FALSE); } else { +/*JP mon_yells(mtmp, "Hey, stop damaging that door!"); +*/ + mon_yells(mtmp, "‚¨‚¢C”à‚ð”j‰ó‚·‚é‚Ì‚ð‚â‚ß‚ëI"); levl[x][y].looted |= D_WARNED; } break; @@ -1423,40 +1794,75 @@ xchar dlev; /* if !0 send to dlev near player */ } if (dct && cansee(x, y)) { /* at least one object fell */ +/*JP const char *what = (dct == 1L ? "object falls" : "objects fall"); +*/ + const char *what = "•¨"; if (missile) +#if 0 /*JP:T*/ pline("From the impact, %sother %s.", dct == oct ? "the " : dct == 1L ? "an" : "", what); +#else + pline("ÕŒ‚‚ŁC‘¼‚Ì%s‚ª—Ž‚¿‚½D",what); +#endif else if (oct == dct) +#if 0 /*JP:T*/ pline("%s adjacent %s %s.", dct == 1L ? "The" : "All the", what, gate_str); +#else + pline("‹ß‚­‚É‚ ‚Á‚½%s‚ª%s—Ž‚¿‚½D", what, gate_str); +#endif else +#if 0 /*JP*/ pline("%s adjacent %s %s.", dct == 1L ? "One of the" : "Some of the", dct == 1L ? "objects falls" : what, gate_str); +#else + pline("‹ß‚­‚É‚ ‚Á‚½%s%s%s—Ž‚¿‚½D", + what, + dct == 1L ? "‚ª" : "‚Ì‚¢‚­‚‚©‚ª", + gate_str); +#endif } if (costly && shkp && price) { if (ESHK(shkp)->robbed > robbed) { +/*JP You("removed %ld %s worth of goods!", price, currency(price)); +*/ + You("%ld%s•ª‚Ì•i•¨‚ðŽæ‚肳‚Á‚½I", price, currency(price)); if (cansee(shkp->mx, shkp->my)) { if (ESHK(shkp)->customer[0] == 0) (void) strncpy(ESHK(shkp)->customer, plname, PL_NSIZ); if (angry) +/*JP pline("%s is infuriated!", Monnam(shkp)); +*/ + pline("%s‚ÍŒƒ“{‚µ‚½I", Monnam(shkp)); else +/*JP pline("\"%s, you are a thief!\"", plname); +*/ + pline("u%s‚߁C‚¨‚Ü‚¦‚Í“D–_‚¾‚ȁIv", plname); } else +/*JP You_hear("a scream, \"Thief!\""); +*/ + You_hear("‹àØ‚萺‚ð•·‚¢‚½u“D–_Iv"); hot_pursuit(shkp); (void) angry_guards(FALSE); return; } if (ESHK(shkp)->debit > debit) { long amt = (ESHK(shkp)->debit - debit); +#if 0 /*JP*/ You("owe %s %ld %s for goods lost.", Monnam(shkp), amt, currency(amt)); +#else + You("•i•¨ÁŽ¸‚Ì‚½‚ß%s‚É%ld%s‚ÌŽØ‚è‚ð‚‚­‚Á‚½D", Monnam(shkp), amt, + currency(amt)); +#endif } } } @@ -1550,14 +1956,23 @@ boolean shop_floor_obj; || otmp->otyp == EXPENSIVE_CAMERA) { if (otmp->otyp == MIRROR) change_luck(-2); +/*JP result = "crash"; +*/ + result = "ƒOƒVƒƒƒb"; } else { /* penalty for breaking eggs laid by you */ if (otmp->otyp == EGG && otmp->spe && otmp->corpsenm >= LOW_PM) change_luck((schar) -min(otmp->quan, 5L)); +/*JP result = "splat"; +*/ + result = "ƒxƒ`ƒƒƒb"; } +/*JP You_hear("a muffled %s.", result); +*/ + You_hear("‚±‚à‚Á‚½%s‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D", result); obj_extract_self(otmp); obfree(otmp, (struct obj *) 0); return TRUE; @@ -1665,22 +2080,37 @@ long num; { char obuf[BUFSZ]; +#if 0 /*JP*/ Sprintf(obuf, "%s%s", (otmp->otyp == CORPSE && type_is_pname(&mons[otmp->corpsenm])) ? "" : "The ", cxname(otmp)); +#else + Sprintf(obuf, "%s‚Í", xname(otmp)); +#endif if (num) { /* means: other objects are impacted */ +#if 0 /*JP*/ Sprintf(eos(obuf), " %s %s object%s", otense(otmp, "hit"), num == 1L ? "another" : "other", num > 1L ? "s" : ""); if (nodrop) Sprintf(eos(obuf), "."); else Sprintf(eos(obuf), " and %s %s.", otense(otmp, "fall"), gate_str); +#else + Sprintf(eos(obuf), "‘¼‚Ì•¨‘Ì‚É–½’†‚µ‚Ä"); + if(nodrop) + Sprintf(eos(obuf), "Ž~‚Ü‚Á‚½D"); + else + Sprintf(eos(obuf), "%s—Ž‚¿‚½D", gate_str); +#endif pline1(obuf); } else if (!nodrop) +/*JP pline("%s %s %s.", obuf, otense(otmp, "fall"), gate_str); +*/ + pline("%s%s—Ž‚¿‚½D", obuf, gate_str); } /* migration destination for objects which fall down to next level */ @@ -1697,19 +2127,30 @@ xchar x, y; if ((xdnstair == x && ydnstair == y) || (sstairs.sx == x && sstairs.sy == y && !sstairs.up)) { +/*JP gate_str = "down the stairs"; +*/ + gate_str = "ŠK’i‚©‚ç"; return (xdnstair == x && ydnstair == y) ? MIGR_STAIRS_UP : MIGR_SSTAIRS; } if (xdnladder == x && ydnladder == y) { +/*JP gate_str = "down the ladder"; +*/ + gate_str = "‚Í‚µ‚²‚©‚ç"; return MIGR_LADDER_UP; } if (((ttmp = t_at(x, y)) != 0 && ttmp->tseen) && (ttmp->ttyp == TRAPDOOR || ttmp->ttyp == HOLE)) { +#if 0 /*JP*/ gate_str = (ttmp->ttyp == TRAPDOOR) ? "through the trap door" : "through the hole"; +#else + gate_str = (ttmp->ttyp == TRAPDOOR) ? "—Ž‚µ”à‚É" + : "ŒŠ‚É"; +#endif return MIGR_RANDOM; } return MIGR_NOWHERE; diff --git a/src/dothrow.c b/src/dothrow.c index 8de0285..a332762 100644 --- a/src/dothrow.c +++ b/src/dothrow.c @@ -4,6 +4,11 @@ /* Contains code for 't' (throw) */ +/* 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" STATIC_DCL int FDECL(throw_obj, (struct obj *, int)); @@ -68,30 +73,51 @@ int shotlimit; if (obj->oclass == COIN_CLASS && obj != uquiver) return throw_gold(obj); +/*JP if (!canletgo(obj, "throw")) +*/ + if (!canletgo(obj, "“Š‚°‚é")) return 0; if (obj->oartifact == ART_MJOLLNIR && obj != uwep) { +/*JP pline("%s must be wielded before it can be thrown.", The(xname(obj))); +*/ + pline("“Š‚°‚é‘O‚É%s‚ð‘•”õ‚µ‚È‚­‚Ä‚Í‚È‚ç‚È‚¢D", xname(obj)); return 0; } if ((obj->oartifact == ART_MJOLLNIR && ACURR(A_STR) < STR19(25)) || (obj->otyp == BOULDER && !throws_rocks(youmonst.data))) { +/*JP pline("It's too heavy."); +*/ + pline("d‚·‚¬‚Ä“Š‚°‚ç‚ê‚È‚¢D"); return 1; } if (!u.dx && !u.dy && !u.dz) { +/*JP You("cannot throw an object at yourself."); +*/ + pline("Ž©•ª‚ÉŒü‚©‚Á‚Ä‚Í“Š‚°‚ç‚ê‚È‚¢D"); return 0; } u_wipe_engr(2); if (!uarmg && obj->otyp == CORPSE && touch_petrifies(&mons[obj->corpsenm]) && !Stone_resistance) { +#if 0 /*JP*/ You("throw %s with your bare %s.", corpse_xname(obj, (const char *) 0, CXN_PFX_THE), /* throwing with one hand, but pluralize since the expression "with your bare hands" sounds better */ makeplural(body_part(HAND))); +#else + You("‘f%s‚Å%s‚ÌŽ€‘Ì‚ð“Š‚°‚½D", + body_part(HAND), + corpse_xname(obj, (const char *) 0, CXN_PFX_THE)); +#endif +/*JP Sprintf(killer.name, "throwing %s bare-handed", killer_xname(obj)); +*/ + Sprintf(killer.name, "%s‚ÌŽ€‘Ì‚ð‘fŽè‚Å“Š‚°‚Ä", killer_xname(obj)); instapetrify(killer.name); } if (welded(obj)) { @@ -205,9 +231,16 @@ int shotlimit; attempted to specify a count */ if (multishot > 1 || shotlimit > 0) { /* "You shoot N arrows." or "You throw N daggers." */ +#if 0 /*JP*/ You("%s %d %s.", m_shot.s ? "shoot" : "throw", multishot, /* (might be 1 if player gave shotlimit) */ (multishot == 1) ? singular(obj, xname) : xname(obj)); +#else + You("%d%s‚Ì%s‚ð%sD", + multishot, + numeral(obj), xname(obj), + m_shot.s ? "Œ‚‚Á‚½" : "“Š‚°‚½"); +#endif } wep_mask = obj->owornmask; @@ -243,7 +276,10 @@ int *shotlimit_p; /* (see dothrow()) */ multi = 0; /* reset; it's been used up */ if (notake(youmonst.data)) { +/*JP You("are physically incapable of throwing or shooting anything."); +*/ + You("‰½‚©‚ð“Š‚°‚é‚Ì‚Í•¨—“I‚É–³—‚¾D"); return FALSE; } else if (nohands(youmonst.data)) { You_cant("throw or shoot without hands."); /* not body_part(HAND) */ @@ -369,11 +405,17 @@ dofire() if ((obj = uquiver) == 0) { if (!flags.autoquiver) { +/*JP You("have no ammunition readied."); +*/ + You("”­ŽË€”õ‚ª®‚Á‚Ä‚¢‚È‚¢I"); } else { autoquiver(); if ((obj = uquiver) == 0) +/*JP You("have nothing appropriate for your quiver."); +*/ + You("”­ŽË‚·‚é‚à‚Ì‚ª‚È‚¢D"); } /* if autoquiver is disabled or has failed, prompt for missile; fill quiver with it if it's not wielded */ @@ -401,9 +443,15 @@ boolean verbose; { if (m_shot.i < m_shot.n) { if (verbose && !context.mon_moving) { +#if 0 /*JP*/ You("stop %s after the %d%s %s.", m_shot.s ? "firing" : "throwing", m_shot.i, ordin(m_shot.i), m_shot.s ? "shot" : "toss"); +#else + You("%d”­–Ú‚ð%s‚Æ‚±‚ë‚ÅŽc‚è‚ð%s‚Ì‚ð‚â‚ß‚½D", m_shot.i, + m_shot.s ? "Œ‚‚Á‚½" : "“Š‚°‚½", + m_shot.s ? "Œ‚‚Â" : "“Š‚°‚é"); +#endif } m_shot.n = m_shot.i; /* make current shot be the last */ } @@ -423,8 +471,13 @@ register struct obj *obj; if (IS_ALTAR(levl[u.ux][u.uy].typ)) doaltarobj(obj); else +#if 0 /*JP*/ pline("%s hit%s the %s.", Doname2(obj), (obj->quan == 1L) ? "s" : "", surface(u.ux, u.uy)); +#else + pline("%s‚Í%s‚É–½’†‚µ‚½D", Doname2(obj), + surface(u.ux,u.uy)); +#endif if (hero_breaks(obj, u.ux, u.uy, TRUE)) return; @@ -536,7 +589,10 @@ int x, y; int dmg = 0; if (!isok(x, y)) { +/*JP You_feel("the spirits holding you back."); +*/ + You_feel("‚ ‚È‚½‚ð•ß‚Ü‚¦‚Ä‚¢‚½°‚ª–ß‚Á‚½‹C‚ª‚µ‚½D"); return FALSE; } else if (!in_out_region(x, y)) { return FALSE; @@ -548,39 +604,73 @@ int x, y; if (IS_ROCK(levl[x][y].typ) || closed_door(x, y)) { const char *s; +/*JP pline("Ouch!"); +*/ + pline("‚¢‚Ä‚ÁI"); if (IS_TREE(levl[x][y].typ)) +/*JP s = "bumping into a tree"; +*/ + s = "–Ø‚É‚Ô‚¿‚ ‚½‚Á‚Ä"; else if (IS_ROCK(levl[x][y].typ)) +/*JP s = "bumping into a wall"; +*/ + s = "•Ç‚É‚Ô‚¿‚ ‚½‚Á‚Ä"; else +/*JP s = "bumping into a door"; +*/ + s = "”à‚É‚Ô‚¿‚ ‚½‚Á‚Ä"; dmg = rnd(2 + *range); losehp(Maybe_Half_Phys(dmg), s, KILLED_BY); wake_nearto(x,y, 10); return FALSE; } if (levl[x][y].typ == IRONBARS) { +/*JP You("crash into some iron bars. Ouch!"); +*/ + You("“S‚Ì–_‚É‚Ô‚¿‚ ‚½‚Á‚½D‚¢‚Ä‚ÁI"); dmg = rnd(2 + *range); +#if 0 /*JP*/ losehp(Maybe_Half_Phys(dmg), "crashing into iron bars", KILLED_BY); +#else + losehp(Maybe_Half_Phys(dmg), "“S‚Ì–_‚É‚Ô‚¿‚ ‚½‚Á‚Ä", + KILLED_BY); +#endif wake_nearto(x,y, 20); return FALSE; } if ((obj = sobj_at(BOULDER, x, y)) != 0) { +/*JP You("bump into a %s. Ouch!", xname(obj)); +*/ + You("%s‚É‚Ô‚¿‚ ‚½‚Á‚½D‚¢‚Ä‚ÁI", xname(obj)); dmg = rnd(2 + *range); +/*JP losehp(Maybe_Half_Phys(dmg), "bumping into a boulder", KILLED_BY); +*/ + losehp(Maybe_Half_Phys(dmg), "Šâ‚É‚Ô‚¿‚ ‚½‚Á‚Ä", KILLED_BY); wake_nearto(x,y, 10); return FALSE; } if (!may_pass) { /* did we hit a no-dig non-wall position? */ +/*JP You("smack into something!"); +*/ + You("‰½‚©‚É‚Ô‚¿‚ ‚½‚Á‚½I"); dmg = rnd(2 + *range); +#if 0 /*JP*/ losehp(Maybe_Half_Phys(dmg), "touching the edge of the universe", KILLED_BY); +#else + losehp(Maybe_Half_Phys(dmg), "¢ŠE‚̉ʂĂɐG‚ê‚Ä", + KILLED_BY); +#endif wake_nearto(x,y, 10); return FALSE; } @@ -590,11 +680,21 @@ int x, y; (invent && (inv_weight() + weight_cap() > 600)); /* Move at a diagonal. */ if (bigmonst(youmonst.data) || too_much) { +#if 0 /*JP*/ You("%sget forcefully wedged into a crevice.", too_much ? "and all your belongings " : ""); +#else + You("%s‚Í‚Þ‚è‚â‚è‚·‚«ŠÔ‚ɉŸ‚µž‚ß‚ç‚ꂽD", + too_much ? "‚Æ‘S•”‚̉ו¨" : ""); +#endif dmg = rnd(2 + *range); +#if 0 /*JP*/ losehp(Maybe_Half_Phys(dmg), "wedging into a narrow crevice", KILLED_BY); +#else + losehp(Maybe_Half_Phys(dmg), "‹·‚¢‚·‚«ŠÔ‚ɉŸ‚µž‚ß‚ç‚ê‚Ä", + KILLED_BY); +#endif wake_nearto(x,y, 10); return FALSE; } @@ -602,7 +702,10 @@ int x, y; } if ((mon = m_at(x, y)) != 0) { +/*JP You("bump into %s.", a_monnam(mon)); +*/ + You("%s‚É‚Ô‚¿‚ ‚½‚Á‚½D", a_monnam(mon)); wakeup(mon); wake_nearto(x,y, 10); return FALSE; @@ -611,7 +714,10 @@ int x, y; && bad_rock(youmonst.data, x, u.uy)) { /* Move at a diagonal. */ if (Sokoban) { +/*JP You("come to an abrupt halt!"); +*/ + You("‚Ƃ‚º‚ñ’âŽ~‚µ‚½I"); return FALSE; } } @@ -648,8 +754,13 @@ int x, y; return TRUE; } else { if (ttmp->tseen) +#if 0 /*JP*/ You("pass right over %s.", an(defsyms[trap_to_defsym(ttmp->ttyp)].explanation)); +#else + You("%s‚̐^ã‚ð’ʉ߂µ‚½D", + defsyms[trap_to_defsym(ttmp->ttyp)].explanation); +#endif } } if (--*range < 0) /* make sure our range never goes negative */ @@ -704,10 +815,14 @@ boolean verbose; * for diagonal movement, give the player a message and return. */ if (Punished && !carried(uball)) { +/*JP You_feel("a tug from the iron ball."); +*/ + You_feel("“S‹…‚ɂЂÁ‚Ï‚ç‚ê‚Ä‚¢‚é‚悤‚È‹C‚ª‚µ‚½D"); nomul(0); return; } else if (u.utrap) { +#if 0 /*JP*/ You("are anchored by the %s.", u.utraptype == TT_WEB ? "web" @@ -717,6 +832,17 @@ boolean verbose; ? surface(u.ux, u.uy) : u.utraptype == TT_BURIEDBALL ? "buried ball" : "trap"); +#else + You("%s‚ɐ˜‚¦‚‚¯‚ç‚ê‚Ä‚¢‚éD", + u.utraptype == TT_WEB + ? "‚­‚à‚Ì‘ƒ" + : u.utraptype == TT_LAVA + ? "—nŠâ" + : u.utraptype == TT_INFLOOR + ? surface(u.ux,u.uy) + : u.utraptype == TT_BURIEDBALL ? "–„‚Ü‚Á‚Ä‚¢‚é‹…" + : "ã©"); +#endif nomul(0); return; } @@ -732,7 +858,10 @@ boolean verbose; multi_reason = "moving through the air"; nomovemsg = ""; /* it just happens */ if (verbose) +/*JP You("%s in the opposite direction.", range > 1 ? "hurtle" : "float"); +*/ + You("‹t•ûŒü‚É”ò‚΂³‚ꂽD"); /* if we're in the midst of shooting multiple projectiles, stop */ endmultishot(TRUE); sokoban_guilt(); @@ -826,20 +955,38 @@ boolean hitsroof; /* note: obj->quan == 1 */ if (!has_ceiling(&u.uz)) { +#if 0 /*JP*/ action = "flies up into"; /* into "the sky" or "the water above" */ +#else + action = "‚Ì’†‚ð”ò‚ñ‚¾"; /* into "the sky" or "the water above" */ +#endif } else if (hitsroof) { if (breaktest(obj)) { +/*JP pline("%s hits the %s.", Doname2(obj), ceiling(u.ux, u.uy)); +*/ + pline("%s‚Í%s‚É–½’†‚µ‚½D", Doname2(obj), ceiling(u.ux, u.uy)); breakmsg(obj, !Blind); breakobj(obj, u.ux, u.uy, TRUE, TRUE); return FALSE; } +/*JP action = "hits"; +*/ + action = "‚É–½’†‚µ‚½"; } else { +/*JP action = "almost hits"; +*/ + action = "‚É‚à‚¤­‚µ‚Å–½’†‚·‚é‚Æ‚±‚낾‚Á‚½"; } +#if 0 /*JP*/ pline("%s %s the %s, then falls back on top of your %s.", Doname2(obj), action, ceiling(u.ux, u.uy), body_part(HEAD)); +#else + pline("%s‚Í%s%sC‚»‚µ‚Ä%s‚̏ã‚É—Ž‚¿‚Ä‚«‚½D", Doname2(obj), + ceiling(u.ux, u.uy), action, body_part(HEAD)); +#endif /* object now hits you */ @@ -871,10 +1018,16 @@ boolean hitsroof; } case CREAM_PIE: case BLINDING_VENOM: +/*JP pline("You've got it all over your %s!", body_part(FACE)); +*/ + pline("‚»‚ê‚Í%s‚ð‚ׂÁ‚Æ‚è‚Æ•¢‚Á‚½I", body_part(FACE)); if (blindinc) { if (otyp == BLINDING_VENOM && !Blind) +/*JP pline("It blinds you!"); +*/ + pline("–Ú‚ªŒ©‚¦‚È‚­‚È‚Á‚½I"); u.ucreamed += blindinc; make_blinded(Blinded + (long) blindinc, FALSE); if (!Blind) @@ -915,20 +1068,33 @@ boolean hitsroof; if (uarmh) { if (less_damage && dmg < (Upolyd ? u.mh : u.uhp)) { if (!artimsg) +/*JP pline("Fortunately, you are wearing a hard helmet."); +*/ + pline("K‰^‚É‚àC‚ ‚È‚½‚͌ł¢Š•‚ðg‚ɂ‚¯‚Ä‚¢‚½D"); /* helmet definitely protects you when it blocks petrification */ } else if (!petrifier) { if (flags.verbose) +/*JP Your("%s does not protect you.", helm_simple_name(uarmh)); +*/ + Your("%s‚Å‚Í–h‚¬‚«‚ê‚È‚©‚Á‚½D", helm_simple_name(uarmh)); } } else if (petrifier && !Stone_resistance && !(poly_when_stoned(youmonst.data) && polymon(PM_STONE_GOLEM))) { petrify: killer.format = KILLED_BY; +#if 0 /*JP*/ Strcpy(killer.name, "elementary physics"); /* "what goes up..." */ +#else + Strcpy(killer.name, "‰“™•¨—‚É‚æ‚è"); /* "what goes up..." */ +#endif +/*JP You("turn to stone."); +*/ + You("Î‚É‚È‚Á‚½D"); if (obj) dropy(obj); /* bypass most of hitfloor() */ thrownobj = 0; /* now either gone or on floor */ @@ -937,7 +1103,11 @@ boolean hitsroof; } hitfloor(obj); thrownobj = 0; +#if 0 /*JP*/ losehp(Maybe_Half_Phys(dmg), "falling object", KILLED_BY_AN); +#else + losehp(Maybe_Half_Phys(dmg), "—Ž‰º•¨‚Å", KILLED_BY_AN); +#endif } return TRUE; } @@ -992,13 +1162,19 @@ boolean if ((obj->cursed || obj->greased) && (u.dx || u.dy) && !rn2(7)) { boolean slipok = TRUE; if (ammo_and_launcher(obj, uwep)) +/*JP pline("%s!", Tobjnam(obj, "misfire")); +*/ + pline("%s‚Í‚Í‚¸‚ꂽI", xname(obj)); else { /* only slip if it's greased or meant to be thrown */ if (obj->greased || throwing_weapon(obj)) /* BUG: this message is grammatically incorrect if obj has a plural name; greased gloves or boots for instance. */ +/*JP pline("%s as you throw it!", Tobjnam(obj, "slip")); +*/ + pline("%s‚ð“Š‚°‚悤‚Æ‚µ‚½‚ªC‚¸‚è—Ž‚¿‚Ä‚µ‚Ü‚Á‚½I", xname(obj)); else slipok = FALSE; } @@ -1017,7 +1193,10 @@ boolean : (u.uhp < 10 && u.uhp != u.uhpmax)) && obj->owt > (unsigned) ((Upolyd ? u.mh : u.uhp) * 2) && !Is_airlevel(&u.uz)) { +/*JP You("have so little stamina, %s drops from your grasp.", +*/ + You("ˆ¬—Í‚ª‚È‚­‚È‚Á‚Ä‚¢‚½‚̂ŁC%s‚ðˆ¬‚è‚»‚±‚Ë‚Ä—Ž‚Æ‚µ‚½D", the(xname(obj))); exercise(A_CON, FALSE); u.dx = u.dy = 0; @@ -1034,8 +1213,13 @@ boolean } else if (u.dz) { if (u.dz < 0 && Role_if(PM_VALKYRIE) && obj->oartifact == ART_MJOLLNIR && !impaired) { +#if 0 /*JP*/ pline("%s the %s and returns to your hand!", Tobjnam(obj, "hit"), ceiling(u.ux, u.uy)); +#else + pline("%s‚Í%s‚É–½’†‚µ‚ ‚È‚½‚ÌŽè‚É–ß‚Á‚Ä‚«‚½I", xname(obj), + ceiling(u.ux,u.uy)); +#endif obj = addinv(obj); (void) encumber_msg(); setuwep(obj); @@ -1172,7 +1356,10 @@ boolean sho_obj_return_to_u(obj); /* display its flight */ if (!impaired && rn2(100)) { +/*JP pline("%s to your hand!", Tobjnam(obj, "return")); +*/ + pline("%s‚Í‚ ‚È‚½‚ÌŽè‚É–ß‚Á‚Ä‚«‚½I", xname(obj)); obj = addinv(obj); (void) encumber_msg(); setuwep(obj); @@ -1182,21 +1369,44 @@ boolean } else { int dmg = rn2(2); if (!dmg) { +#if 0 /*JP*/ pline(Blind ? "%s lands %s your %s." : "%s back to you, landing %s your %s.", Blind ? Something : Tobjnam(obj, "return"), Levitation ? "beneath" : "at", makeplural(body_part(FOOT))); +#else + pline("%s‚Í%s‚ ‚È‚½‚Ì%s‚Ì%s‚É—Ž‚¿‚½D", + xname(obj), + Blind ? "" : "–ß‚Á‚Ä‚«‚āC", + body_part(FOOT), + Levitation ? "‰º" : "‚»‚Î"); +#endif } else { dmg += rnd(3); +#if 0 /*JP*/ pline(Blind ? "%s your %s!" : "%s back toward you, hitting your %s!", Tobjnam(obj, Blind ? "hit" : "fly"), body_part(ARM)); +#else + pline("%s‚Í%s‚ ‚È‚½‚Ì%s‚É–½’†‚µ‚½I", + xname(obj), + Blind ? "" : "–ß‚Á‚Ä‚«‚āC", + body_part(ARM)); +#endif (void) artifact_hit((struct monst *) 0, &youmonst, obj, &dmg, 0); +#if 0 /*JP*/ losehp(Maybe_Half_Phys(dmg), killer_xname(obj), KILLED_BY); +#else + { + char jbuf[BUFSZ]; + Sprintf(jbuf, "%s‚Å", xname(obj)); + losehp(Maybe_Half_Phys(dmg), jbuf, KILLED_BY); + } +#endif } if (ship_object(obj, u.ux, u.uy, FALSE)) { thrownobj = (struct obj *) 0; @@ -1218,14 +1428,20 @@ boolean thrownobj = (struct obj *) 0; return; } +/*JP if (flooreffects(obj, bhitpos.x, bhitpos.y, "fall")) { +*/ + if (flooreffects(obj,bhitpos.x, bhitpos.y, "—Ž‚¿‚é")) { thrownobj = (struct obj *) 0; return; } obj_no_longer_held(obj); if (mon && mon->isshk && is_pick(obj)) { if (cansee(bhitpos.x, bhitpos.y)) +/*JP pline("%s snatches up %s.", Monnam(mon), the(xname(obj))); +*/ + pline("%s‚Í%s‚ð’D‚¢‚Æ‚Á‚½D", Monnam(mon), xname(obj)); if (*u.ushops || obj->unpaid) check_shop_obj(obj, bhitpos.x, bhitpos.y, FALSE); (void) mpickobj(mon, obj); /* may merge and free obj */ @@ -1319,7 +1535,10 @@ boolean maybe_wakeup; an arrow just landing short of any target (no message in that case), so will realize that there is a valid target here anyway. */ if (!canseemon(mon) || (mon->m_ap_type && mon->m_ap_type != M_AP_MONSTER)) +/*JP pline("%s %s.", The(missile), otense(obj, "miss")); +*/ + pline("%s‚Í‚Í‚¸‚ꂽD", missile); else miss(missile, mon); if (maybe_wakeup && !rn2(3)) @@ -1412,10 +1631,16 @@ register struct obj *obj; /* thrownobj or kickedobj or uwep */ tmiss(obj, mon, FALSE); return 0; } else if (mon->mtame) { +/*JP pline("%s catches and drops %s.", Monnam(mon), the(xname(obj))); +*/ + pline("%s‚Í%s‚ð‚­‚í‚¦‚Ä’u‚¢‚½D", Monnam(mon), xname(obj)); return 0; } else { +/*JP pline("%s catches %s.", Monnam(mon), the(xname(obj))); +*/ + pline("%s‚Í%s‚ð‚­‚í‚¦‚½D", Monnam(mon), xname(obj)); return gem_accept(mon, obj); } } @@ -1429,13 +1654,21 @@ register struct obj *obj; /* thrownobj or kickedobj or uwep */ mon->mstrategy &= ~STRAT_WAITMASK; if (mon->mcanmove) { +/*JP pline("%s catches %s.", Monnam(mon), the(xname(obj))); +*/ + pline("%s‚Í%s‚ð’Í‚ñ‚¾D", Monnam(mon), xname(obj)); if (mon->mpeaceful) { boolean next2u = monnear(mon, u.ux, u.uy); finish_quest(obj); /* acknowledge quest completion */ +#if 0 /*JP*/ pline("%s %s %s back to you.", Monnam(mon), (next2u ? "hands" : "tosses"), the(xname(obj))); +#else + pline("%s‚Í%s‚ð‚ ‚È‚½‚É•Ô‚µ‚½D", Monnam(mon), + xname(obj)); +#endif if (!next2u) sho_obj_return_to_u(obj); obj = addinv(obj); /* back into your inventory */ @@ -1592,9 +1825,15 @@ register struct obj *obj; /* thrownobj or kickedobj or uwep */ } } } +#if 0 /*JP*/ pline("%s into %s %s.", Tobjnam(obj, "vanish"), s_suffix(mon_nam(mon)), is_animal(u.ustuck->data) ? "entrails" : "currents"); +#else + pline("%s‚Í%s‚Ì%s‚֏Á‚¦‚½D", xname(obj), + mon_nam(mon), + is_animal(u.ustuck->data) ? "“à‘Ÿ‚Ì’†" : "—¬‚ê"); +#endif } else { tmiss(obj, mon, TRUE); } @@ -1611,13 +1850,31 @@ register struct obj *obj; boolean is_buddy = sgn(mon->data->maligntyp) == sgn(u.ualign.type); boolean is_gem = objects[obj->otyp].oc_material == GEMSTONE; int ret = 0; +/*JP static NEARDATA const char nogood[] = " is not interested in your junk."; +*/ + static NEARDATA const char nogood[] = "‚ ‚È‚½‚̃Kƒ‰ƒNƒ^‚É‹»–¡‚ðŽ¦‚³‚È‚¢D"; +/*JP static NEARDATA const char acceptgift[] = " accepts your gift."; +*/ + static NEARDATA const char acceptgift[] = "‚ ‚È‚½‚Ì‘¡‚蕨‚ðŽó‚¯‚Æ‚Á‚½D"; +/*JP static NEARDATA const char maybeluck[] = " hesitatingly"; +*/ + static NEARDATA const char maybeluck[] = "‚½‚ß‚ç‚¢‚È‚ª‚ç"; +/*JP static NEARDATA const char noluck[] = " graciously"; +*/ + static NEARDATA const char noluck[] = "’šd‚É"; +/*JP static NEARDATA const char addluck[] = " gratefully"; +*/ + static NEARDATA const char addluck[] = "Šì‚ñ‚Å"; Strcpy(buf, Monnam(mon)); +#if 1 /*JP*/ + Strcat(buf, "‚Í"); +#endif mon->mpeaceful = 1; mon->mavenge = 0; @@ -1787,13 +2044,20 @@ boolean from_invent; if (obj->otyp != POT_WATER) { if (!breathless(youmonst.data)) { /* [what about "familiar odor" when known?] */ +/*JP You("smell a peculiar odor..."); +*/ + You("–ò‚Á‚Û‚¢“õ‚¢‚ª‚µ‚½DDD"); } else { +#if 0 /*JP*/ const char *eyes = body_part(EYE); if (eyecount(youmonst.data) != 1) eyes = makeplural(eyes); Your("%s %s.", eyes, vtense(eyes, "water")); +#else + You("—Ü%s‚É‚È‚Á‚½D", body_part(EYE)); +#endif } } potionbreathe(obj); @@ -1883,7 +2147,13 @@ boolean in_view; { const char *to_pieces; +#if 0 /*JP*/ to_pieces = ""; +#else + /* "shatter" ¨ "‚±‚È‚²‚È‚É‚È‚Á‚½" + "shatter into a thousand pieces" ¨ "‚­‚¾‚¯‚Ă΂ç‚΂ç‚É‚È‚Á‚½" */ + to_pieces = "‚±‚È‚²‚È"; +#endif switch (obj->oclass == POTION_CLASS ? POT_WATER : obj->otyp) { default: /* glass or crystal wand */ if (obj->oclass != WAND_CLASS) @@ -1893,26 +2163,45 @@ boolean in_view; case MIRROR: case CRYSTAL_BALL: case EXPENSIVE_CAMERA: +/*JP to_pieces = " into a thousand pieces"; +*/ + to_pieces = "‚­‚¾‚¯‚Ă΂ç‚΂ç"; /*FALLTHRU*/ case POT_WATER: /* really, all potions */ if (!in_view) +/*JP You_hear("%s shatter!", something); +*/ + You_hear("%s‚ª‰ó‚ê‚鉹‚ð•·‚¢‚½I", something); else +#if 0 /*JP*/ pline("%s shatter%s%s!", Doname2(obj), (obj->quan == 1L) ? "s" : "", to_pieces); +#else + pline("%s‚Í%s‚É‚È‚Á‚½I", Doname2(obj), to_pieces); +#endif break; case EGG: case MELON: +/*JP pline("Splat!"); +*/ + pline("ƒrƒ`ƒƒI"); break; case CREAM_PIE: if (in_view) +/*JP pline("What a mess!"); +*/ + pline("‚±‚è‚á‚Ђǂ¢I"); break; case ACID_VENOM: case BLINDING_VENOM: +/*JP pline("Splash!"); +*/ + pline("ƒrƒ`ƒƒI"); break; } } @@ -1925,14 +2214,23 @@ struct obj *obj; register struct monst *mon; if (!u.dx && !u.dy && !u.dz) { +/*JP You("cannot throw gold at yourself."); +*/ + pline("Ž©•ª‚É‹à‰Ý‚ð“Š‚°‚邱‚Æ‚Í‚Å‚«‚È‚¢D"); return 0; } freeinv(obj); if (u.uswallow) { +#if 0 /*JP*/ pline(is_animal(u.ustuck->data) ? "%s in the %s's entrails." : "%s into %s.", "The money disappears", mon_nam(u.ustuck)); +#else + pline(is_animal(u.ustuck->data) ? "‹à‰Ý‚Í%s‚Ì• ‚Ì’†‚֏Á‚¦‚Ä‚¢‚Á‚½D" + : "‹à‰Ý‚Í%s‚Ì’†‚֏Á‚¦‚Ä‚¢‚Á‚½D", + mon_nam(u.ustuck)); +#endif add_to_minv(u.ustuck, obj); return 1; } @@ -1940,11 +2238,19 @@ struct obj *obj; if (u.dz) { if (u.dz < 0 && !Is_airlevel(&u.uz) && !Underwater && !Is_waterlevel(&u.uz)) { +#if 0 /*JP*/ pline_The("gold hits the %s, then falls back on top of your %s.", ceiling(u.ux, u.uy), body_part(HEAD)); +#else + pline("‹à‰Ý‚Í%s‚É–½’†‚µC‚ ‚È‚½‚Ì%s‚̐^ã‚É—Ž‚¿‚Ä‚«‚½D", + ceiling(u.ux,u.uy), body_part(HEAD)); +#endif /* some self damage? */ if (uarmh) +/*JP pline("Fortunately, you are wearing %s!", +*/ + pline("K‰^‚È‚±‚ƂɁC‚ ‚È‚½‚Í%s‚ðg‚ɂ‚¯‚Ä‚¢‚éI", an(helm_simple_name(uarmh))); } bhitpos.x = u.ux; @@ -1975,10 +2281,16 @@ struct obj *obj; } } +/*JP if (flooreffects(obj, bhitpos.x, bhitpos.y, "fall")) +*/ + if (flooreffects(obj, bhitpos.x, bhitpos.y, "—Ž‚¿‚é")) return 1; if (u.dz > 0) +/*JP pline_The("gold hits the %s.", surface(bhitpos.x, bhitpos.y)); +*/ + pline("‹à‰Ý‚Í%s‚É–½’†‚µ‚½D", surface(bhitpos.x, bhitpos.y)); place_object(obj, bhitpos.x, bhitpos.y); if (*u.ushops) sellobj(obj, bhitpos.x, bhitpos.y); diff --git a/src/drawing.c b/src/drawing.c index 96bbd2d..916cea3 100644 --- a/src/drawing.c +++ b/src/drawing.c @@ -2,6 +2,11 @@ /* Copyright (c) NetHack Development Team 1992. */ /* 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" #include "tcap.h" @@ -121,17 +126,35 @@ const struct class_sym def_monsyms[MAXMCLASSES] = { const struct symdef def_warnsyms[WARNCOUNT] = { /* white warning */ +/*JP { '0', "unknown creature causing you worry", C(CLR_WHITE) }, +*/ + { '0', "‚ ‚È‚½‚ª‹C‚É‚µ‚Ä‚¢‚é“ä‚̉ö•¨", C(CLR_WHITE)}, /* pink warning */ +/*JP { '1', "unknown creature causing you concern", C(CLR_RED) }, +*/ + { '1', "‚ ‚È‚½‚ªS”z‚µ‚Ä‚¢‚é“ä‚̉ö•¨", C(CLR_RED)}, /* red warning */ +/*JP { '2', "unknown creature causing you anxiety", C(CLR_RED) }, +*/ + { '2', "‚ ‚È‚½‚ªŒœ”O‚µ‚Ä‚¢‚é“ä‚̉ö•¨", C(CLR_RED)}, /* ruby warning */ +/*JP { '3', "unknown creature causing you disquiet", C(CLR_RED) }, +*/ + { '3', "‚ ‚È‚½‚ª‹C‚ð‚à‚ñ‚Å‚¢‚é“ä‚̉ö•¨", C(CLR_RED)}, /* purple warning */ +/*JP { '4', "unknown creature causing you alarm", C(CLR_MAGENTA) }, +*/ + { '4', "‚ ‚È‚½‚ª‹°‚ê‚Ä‚¢‚é“ä‚̉ö•¨", C(CLR_MAGENTA)}, /* black warning */ +/*JP { '5', "unknown creature causing you dread", C(CLR_BRIGHT_MAGENTA) }, +*/ + { '5', "‚ ‚È‚½‚ª”ñí‚É‹°‚ê‚Ä‚¢‚é“ä‚̉ö•¨", C(CLR_BRIGHT_MAGENTA)}, }; /* diff --git a/src/dungeon.c b/src/dungeon.c index 96b9959..031edb9 100644 --- a/src/dungeon.c +++ b/src/dungeon.c @@ -948,10 +948,22 @@ init_dungeons() /* * I hate hardwiring these names. :-( */ +/*JP quest_dnum = dname_to_dnum("The Quest"); +*/ + quest_dnum = dname_to_dnum("ƒNƒGƒXƒg"); +/*JP sokoban_dnum = dname_to_dnum("Sokoban"); +*/ + sokoban_dnum = dname_to_dnum("‘qŒÉ”Ô"); +/*JP mines_dnum = dname_to_dnum("The Gnomish Mines"); +*/ + mines_dnum = dname_to_dnum("ƒm[ƒ€‚̍zŽR"); +/*JP tower_dnum = dname_to_dnum("Vlad's Tower"); +*/ + tower_dnum = dname_to_dnum("ƒ”ƒ‰ƒhŒò‚Ì“ƒ"); /* one special fixup for dummy surface level */ if ((x = find_level("dummy")) != 0) { @@ -2280,7 +2292,10 @@ recalc_mapseen() /* flags.castle, flags.valley, flags.msanctum retain previous value */ mptr->flags.forgot = 0; /* flags.quest_summons disabled once quest finished */ +/*JP mptr->flags.quest_summons = (at_dgn_entrance("The Quest") +*/ + mptr->flags.quest_summons = (at_dgn_entrance("ƒNƒGƒXƒg") && u.uevent.qcalled && !(u.uevent.qcompleted || u.uevent.qexpelled diff --git a/src/eat.c b/src/eat.c index fe3e4e0..5026882 100644 --- a/src/eat.c +++ b/src/eat.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" STATIC_PTR int NDECL(eatmdone); @@ -70,8 +75,13 @@ STATIC_OVL NEARDATA const char allobj[] = { STATIC_OVL boolean force_save_hs = FALSE; /* see hunger states in hack.h - texts used on bottom line */ +#if 0 /*JP*/ const char *hu_stat[] = { "Satiated", " ", "Hungry ", "Weak ", "Fainting", "Fainted ", "Starved " }; +#else +const char *hu_stat[] = { "–ž•  ", " ", "‚Ø‚±‚Ø‚±", "ŠŽã ", + "‚Ó‚ç‚Ó‚ç", "‘²“| ", "‰ìŽ€ " }; +#endif /* * Decide whether a particular object can be eaten by the possibly @@ -115,6 +125,7 @@ static const struct { int nut; /* nutrition */ Bitfield(fodder, 1); /* stocked by health food shops */ Bitfield(greasy, 1); /* causes slippery fingers */ +#if 0 /*JP*/ } tintxts[] = { { "rotten", -50, 0, 0 }, /* ROTTEN_TIN = 0 */ { "homemade", 50, 1, 0 }, /* HOMEMADE_TIN = 1 */ { "soup made from", 20, 1, 0 }, @@ -131,6 +142,24 @@ static const struct { { "candied", 100, 1, 0 }, { "pureed", 500, 1, 0 }, { "", 0, 0, 0 } }; +#else +} tintxts[] = { { "•…‚Á‚½", -50, 0, 0 }, /* ROTTEN_TIN = 0 */ + { "Ž©‰Æ»‚Ì", 50, 1, 0 }, /* HOMEMADE_TIN = 1 */ + { "‚̃X[ƒv", 20, 1, 0 }, + { "‚̃tƒ‰ƒC", 40, 0, 1 }, + { "‚̒Е¨", 40, 1, 0 }, + { "‚ä‚Å", 50, 1, 0 }, + { "‚ÌàŽ»", 50, 1, 0 }, + { "Š£‘‡", 55, 1, 0 }, + { "‚Ì—g‚°•¨", 60, 0, 1 }, + { "Žlì•—", 70, 1, 0 }, + { "‚̖ԏĂ«", 80, 0, 0 }, + { "àu‚ß", 80, 0, 1 }, + { "‚̃\ƒe[", 95, 0, 0 }, + { "‚̍»“œ’Ђ¯", 100, 1, 0 }, + { "‚̃sƒ…[ƒŒ", 500, 1, 0 }, + { "", 0, 0, 0 } }; +#endif #define TTSZ SIZE(tintxts) static char *eatmbuf = 0; /* set by cpostfx() */ @@ -229,7 +258,10 @@ struct obj *food; return; } else if (Role_if(PM_KNIGHT) && u.ualign.type == A_LAWFUL) { adjalign(-1); /* gluttony is unchivalrous */ +/*JP You_feel("like a glutton!"); +*/ + You("‘åHŠ¿‚̂悤‚È‹C‚ª‚µ‚½I"); } exercise(A_CON, FALSE); @@ -237,10 +269,16 @@ struct obj *food; if (Breathless || (!Strangled && !rn2(20))) { /* choking by eating AoS doesn't involve stuffing yourself */ if (food && food->otyp == AMULET_OF_STRANGULATION) { +/*JP You("choke, but recover your composure."); +*/ + You("Žñ‚ði‚ß‚ç‚ꂽD‚µ‚©‚µ‚È‚ñ‚Æ‚à‚È‚©‚Á‚½D"); return; } +/*JP You("stuff yourself and then vomit voluminously."); +*/ + pline("‚ª‚‚ª‚‚ƌû‚É‹l‚ߍž‚ñ‚¾‚ªCƒhƒo‚Á‚Æ“f‚«o‚µ‚Ä‚µ‚Ü‚Á‚½D"); morehungry(1000); /* you just got *very* sick! */ vomit(); } else { @@ -250,18 +288,33 @@ struct obj *food; * high score list & tombstone. So plan accordingly. */ if (food) { +/*JP You("choke over your %s.", foodword(food)); +*/ + You("%s‚ðA‚É‹l‚܂点‚Ä‚µ‚Ü‚Á‚½D", foodword(food)); if (food->oclass == COIN_CLASS) { +/*JP Strcpy(killer.name, "very rich meal"); +*/ + Strcpy(killer.name, "‚Æ‚Ä‚à‚‰¿‚È—¿—"); } else { killer.format = KILLED_BY; Strcpy(killer.name, killer_xname(food)); } } else { +/*JP You("choke over it."); +*/ + pline("A‚É‹l‚܂点‚Ä‚µ‚Ü‚Á‚½D"); +/*JP Strcpy(killer.name, "quick snack"); +*/ + Strcpy(killer.name, "‘H‚¢"); } +/*JP You("die..."); +*/ + pline("‚ ‚È‚½‚ÍŽ€‚É‚Ü‚µ‚½DDD"); done(CHOKING); } } @@ -422,7 +475,10 @@ boolean message; pline1(nomovemsg); nomovemsg = 0; } else if (message) +/*JP You("finish eating %s.", food_xname(context.victual.piece, TRUE)); +*/ + You("%s‚ðH‚׏I‚¦‚½D", food_xname(context.victual.piece, TRUE)); if (context.victual.piece->otyp == CORPSE) cpostfx(context.victual.piece->corpsenm); @@ -620,8 +676,14 @@ boolean allowmsg; && (your_race(fptr) || (Upolyd && same_race(youmonst.data, fptr)))) { if (allowmsg) { if (Upolyd && your_race(fptr)) +/*JP You("have a bad feeling deep inside."); +*/ + You("Œ™ˆ«Š´‚É‚¨‚»‚í‚ꂽD"); +/*JP You("cannibal! You will regret this!"); +*/ + pline("‹¤‹ò‚¢‚¾IŒã‰÷‚·‚邼I"); } HAggravate_monster |= FROMOUTSIDE; change_luck(-rn1(4, 2)); /* -5..-2 */ @@ -639,9 +701,15 @@ register int pm; if (!Stone_resistance && !(poly_when_stoned(youmonst.data) && polymon(PM_STONE_GOLEM))) { +/*JP Sprintf(killer.name, "tasting %s meat", mons[pm].mname); +*/ + Sprintf(killer.name, "%s‚Ì“÷‚ðH‚×", mons[pm].mname); killer.format = KILLED_BY; +/*JP You("turn to stone."); +*/ + You("Î‚É‚È‚Á‚½D"); done(STONING); if (context.victual.piece) context.victual.eating = FALSE; @@ -658,7 +726,10 @@ register int pm; case PM_LARGE_CAT: /* cannibals are allowed to eat domestic animals without penalty */ if (!CANNIBAL_ALLOWED()) { +/*JP You_feel("that eating the %s was a bad idea.", mons[pm].mname); +*/ + pline("%s‚ðH‚ׂé‚Ì‚Í‚æ‚­‚È‚¢‹C‚ª‚µ‚½D", mons[pm].mname); HAggravate_monster |= FROMOUTSIDE; } break; @@ -669,9 +740,17 @@ register int pm; case PM_DEATH: case PM_PESTILENCE: case PM_FAMINE: { +/*JP pline("Eating that is instantly fatal."); +*/ + pline("H‚ׂ½‚ç‚·‚®‚ÉŽ€‚ñ‚Å‚µ‚Ü‚Á‚½D"); +#if 0 /*JP*/ Sprintf(killer.name, "unwisely ate the body of %s", mons[pm].mname); killer.format = NO_KILLER_PREFIX; +#else + Sprintf(killer.name, "‹ð‚©‚É‚à%s‚Ì‘Ì‚ðH‚ׂÄ", mons[pm].mname); + killer.format = KILLED_BY; +#endif done(DIED); /* life-saving needed to reach here */ exercise(A_WIS, FALSE); @@ -686,7 +765,10 @@ register int pm; } case PM_GREEN_SLIME: if (!Slimed && !Unchanging && !slimeproof(youmonst.data)) { +/*JP You("don't feel very well."); +*/ + You("‚·‚²‚­‹C•ª‚ªˆ«‚¢D"); make_slimed(10L, (char *) 0); delayed_killer(SLIMED, KILLED_BY_AN, ""); } @@ -704,10 +786,18 @@ fix_petrification() char buf[BUFSZ]; if (Hallucination) +#if 0 /*JP*/ Sprintf(buf, "What a pity--you just ruined a future piece of %sart!", ACURR(A_CHA) > 15 ? "fine " : ""); +#else + Sprintf(buf, "‚È‚ñ‚Ä‚±‚Æ‚¾I%sŒ|pì•i‚ɂȂꂽ‚©‚à‚µ‚ê‚È‚¢‚̂ɁI", + ACURR(A_CHA) > 15 ? "‹Md‚È" : ""); +#endif else +/*JP Strcpy(buf, "You feel limber!"); +*/ + Strcpy(buf, "‘Ì‚ª“î‚ç‚©‚­‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½I"); make_stoned(0L, buf, 0, (char *) 0); } @@ -823,28 +913,40 @@ register struct permonst *ptr; case FIRE_RES: debugpline0("Trying to give fire resistance"); if (!(HFire_resistance & FROMOUTSIDE)) { +/*JP You(Hallucination ? "be chillin'." : "feel a momentary chill."); +*/ + You(Hallucination ? "uƒN[ƒ‹‘î”z•Öv‚³‚ê‚Ä‚¢‚é‚悤‚¾D" : "ˆêuŠ¦‚¯‚ª‚µ‚½D"); HFire_resistance |= FROMOUTSIDE; } break; case SLEEP_RES: debugpline0("Trying to give sleep resistance"); if (!(HSleep_resistance & FROMOUTSIDE)) { +/*JP You_feel("wide awake."); +*/ + You("‚Ï‚Á‚¿‚è–Ú‚ª‚³‚ß‚½D"); HSleep_resistance |= FROMOUTSIDE; } break; case COLD_RES: debugpline0("Trying to give cold resistance"); if (!(HCold_resistance & FROMOUTSIDE)) { +/*JP You_feel("full of hot air."); +*/ + You("”M•—‚ð‘Sg‚ÉŠ´‚¶‚½D"); HCold_resistance |= FROMOUTSIDE; } break; case DISINT_RES: debugpline0("Trying to give disintegration resistance"); if (!(HDisint_resistance & FROMOUTSIDE)) { +/*JP You_feel(Hallucination ? "totally together, man." : "very firm."); +*/ + You_feel(Hallucination ? "¢ŠEl—Þ‚ÆŒZ’í‚É‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½D" : "‚Æ‚Ä‚àŠæä‚É‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½D"); HDisint_resistance |= FROMOUTSIDE; } break; @@ -852,39 +954,61 @@ register struct permonst *ptr; debugpline0("Trying to give shock resistance"); if (!(HShock_resistance & FROMOUTSIDE)) { if (Hallucination) +/*JP You_feel("grounded in reality."); +*/ + You("ŽÀ‚̓A[ƒX‚³‚ê‚Ä‚¢‚é‚悤‚È‹C‚ª‚µ‚½D"); else +/*JP Your("health currently feels amplified!"); +*/ + pline("Œ’N‚ª‘•‚³‚ꂽ‚悤‚È‹C‚ª‚µ‚½I"); HShock_resistance |= FROMOUTSIDE; } break; case POISON_RES: debugpline0("Trying to give poison resistance"); if (!(HPoison_resistance & FROMOUTSIDE)) { +/*JP You_feel(Poison_resistance ? "especially healthy." : "healthy."); +*/ + You_feel(Poison_resistance ? "“Á‚ÉŒ’N‚É‚È‚Á‚½‹C‚ª‚µ‚½D" : "Œ’N‚É‚È‚Á‚½‹C‚ª‚µ‚½D"); HPoison_resistance |= FROMOUTSIDE; } break; case TELEPORT: debugpline0("Trying to give teleport"); if (!(HTeleportation & FROMOUTSIDE)) { +/*JP You_feel(Hallucination ? "diffuse." : "very jumpy."); +*/ + pline(Hallucination ? "‘Ì‚ª”ò‚ÑŽU‚Á‚½‚悤‚È‹C‚ª‚µ‚½D" : "’µ–ô—Í‚ª‚‚Ü‚Á‚½‚悤‚È‹C‚ª‚µ‚½D"); HTeleportation |= FROMOUTSIDE; } break; case TELEPORT_CONTROL: debugpline0("Trying to give teleport control"); if (!(HTeleport_control & FROMOUTSIDE)) { +#if 0 /*JP*/ You_feel(Hallucination ? "centered in your personal space." : "in control of yourself."); +#else + You_feel(Hallucination ? "Ž©ŒÈ’†S“I‚É‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½D" + : "Ž©•ªŽ©g‚𐧌ä‚Å‚«‚é‚悤‚È‹C‚ª‚µ‚½D"); +#endif HTeleport_control |= FROMOUTSIDE; } break; case TELEPAT: debugpline0("Trying to give telepathy"); if (!(HTelepat & FROMOUTSIDE)) { +#if 0 /*JP*/ You_feel(Hallucination ? "in touch with the cosmos." : "a strange mental acuity."); +#else + You_feel(Hallucination ? "‰F’ˆ‚̐_”é‚ɐG‚ꂽ‚悤‚È‹C‚ª‚µ‚½D" + : "Šï–­‚Ȑ¸_“I‰s‚³‚ðŠ´‚¶‚½D"); +#endif HTelepat |= FROMOUTSIDE; /* If blind, make sure monsters show up. */ if (Blind) @@ -922,7 +1046,10 @@ register int pm; u.uen = u.uenmax; } if (old_uen != u.uen) { +/*JP You_feel("a mild buzz."); +*/ + You("‚·‚±‚µ‚Ó‚ç‚ӂ炵‚½D"); context.botl = 1; } } @@ -956,7 +1083,10 @@ register int pm; self_invis_message(); } else { if (!(HInvis & INTRINSIC)) +/*JP You_feel("hidden!"); +*/ + Your("Žp‚͉B‚³‚ꂽI"); HInvis |= FROMOUTSIDE; HSee_invisible |= FROMOUTSIDE; } @@ -981,8 +1111,13 @@ register int pm; char buf[BUFSZ]; u.uconduct.polyselfs++; /* you're changing form */ +#if 0 /*JP*/ You_cant("resist the temptation to mimic %s.", Hallucination ? "an orange" : "a pile of gold"); +#else + You("%s‚ð^Ž—‚µ‚½‚¢—U˜f‚É‚©‚ç‚ꂽD", + Hallucination ? "ƒIƒŒƒ“ƒW" : "‹à‰Ý‚ÌŽR"); +#endif /* A pile of gold can't ride. */ if (u.usteed) dismount_steed(DISMOUNT_FELL); @@ -990,8 +1125,14 @@ register int pm; multi_reason = "pretending to be a pile of gold"; Sprintf(buf, Hallucination +/*JP ? "You suddenly dread being peeled and mimic %s again!" +*/ + ? "“Ë‘RŠÛ—‡‚É‚³‚ê‚é‚Ì‚ª‹°‚낵‚­‚È‚Á‚Ä‚Ü‚½%s‚̐^Ž—‚ð‚µ‚½I" +/*JP : "You now prefer mimicking %s again.", +*/ + : "‚±‚ñ‚Ç‚Í‚Ü‚½%s‚̐^Ž—‚ª‚µ‚½‚­‚È‚Á‚½D", an(Upolyd ? youmonst.data->mname : urace.noun)); eatmbuf = dupstr(buf); nomovemsg = eatmbuf; @@ -1006,13 +1147,22 @@ register int pm; } break; case PM_QUANTUM_MECHANIC: +/*JP Your("velocity suddenly seems very uncertain!"); +*/ + Your("‘¬“x‚ª“Ë‘RC•sŠm’è‚É‚È‚Á‚½I"); if (HFast & INTRINSIC) { HFast &= ~INTRINSIC; +/*JP You("seem slower."); +*/ + You("’x‚­‚È‚Á‚½‚悤‚¾D"); } else { HFast |= FROMOUTSIDE; +/*JP You("seem faster."); +*/ + You("‘¬‚­‚È‚Á‚½‚悤‚¾D"); } break; case PM_LIZARD: @@ -1027,7 +1177,10 @@ register int pm; if (Unchanging) { You_feel("momentarily different."); /* same as poly trap */ } else { +/*JP You_feel("a change coming over you."); +*/ + pline("•Ï‰»‚ª–K‚ꂽD"); polyself(0); } break; @@ -1041,12 +1194,18 @@ register int pm; case PM_MASTER_MIND_FLAYER: if (ABASE(A_INT) < ATTRMAX(A_INT)) { if (!rn2(2)) { +/*JP pline("Yum! That was real brain food!"); +*/ + pline("‚¤‚Ü‚¢I‚±‚ꂱ‚»–{“–‚́u“ª‚Ì—Ç‚­‚È‚éHŽ–v‚¾I"); (void) adjattrib(A_INT, 1, FALSE); break; /* don't give them telepathy, too */ } } else { +/*JP pline("For some reason, that tasted bland."); +*/ + pline("‚Ç‚¤‚µ‚½‚킯‚©C’W”’‚È–¡‚¾D"); } /*FALLTHRU*/ default: { @@ -1056,7 +1215,10 @@ register int pm; if (dmgtype(ptr, AD_STUN) || dmgtype(ptr, AD_HALU) || pm == PM_VIOLET_FUNGUS) { +/*JP pline("Oh wow! Great stuff!"); +*/ + pline("ƒ[ƒHI‚±‚è‚á‚·‚²‚¢I"); (void) make_hallucinated((HHallucination & TIMEOUT) + 200L, FALSE, 0L); } @@ -1110,7 +1272,10 @@ violated_vegetarian() { u.uconduct.unvegetarian++; if (Role_if(PM_MONK)) { +/*JP You_feel("guilty."); +*/ + pline("ß‚ðŠ´‚¶‚½D"); adjalign(-1); } return; @@ -1159,6 +1324,7 @@ int *tinvariety; * This assumes that buf already contains the word "tin", * as is the case with caller xname(). */ +/*JP:uŠÊ‹lv‚ÍŒã‚Å•t‚¯‚é */ void tin_details(obj, mnum, buf) struct obj *obj; @@ -1170,9 +1336,15 @@ char *buf; if (obj && buf) { if (r == SPINACH_TIN) +/*JP Strcat(buf, " of spinach"); +*/ + Strcat(buf, "ƒzƒEƒŒƒ“‘‚Ì"); else if (mnum == NON_PM) +/*JP Strcpy(buf, "empty tin"); +*/ + Strcat(buf, "‹ó‚Á‚Û‚Ì"); else { if ((obj->cknown || iflags.override_ID) && obj->spe < 0) { if (r == ROTTEN_TIN || r == HOMEMADE_TIN) { @@ -1186,9 +1358,15 @@ char *buf; Strcpy(eos(buf), " of "); } if (vegetarian(&mons[mnum])) +/*JP Sprintf(eos(buf), "%s", mons[mnum].mname); +*/ + Sprintf(eos(buf), "%s‚Ì", mons[mnum].mname); else +/*JP Sprintf(eos(buf), "%s meat", mons[mnum].mname); +*/ + Sprintf(eos(buf), "%s‚Ì“÷‚Ì", mons[mnum].mname); } } } @@ -1268,7 +1446,10 @@ const char *mesg; if (r != SPINACH_TIN) { mnum = tin->corpsenm; if (mnum == NON_PM) { +/*JP pline("It turns out to be empty."); +*/ + pline("ŠÊ‚Í‹ó‚Á‚Û‚¾‚Á‚½D"); tin->dknown = tin->known = 1; costly_tin(COST_OPEN); goto use_up_tin; @@ -1293,10 +1474,19 @@ const char *mesg; else if (which == 2) what = the(what); +/*JP pline("It smells like %s.", what); +*/ + pline("%s‚̂悤‚È“õ‚¢‚ª‚µ‚½D", what); +/*JP if (yn("Eat it?") == 'n') { +*/ + if (yn("H‚ׂ܂·‚©H") == 'n') { if (flags.verbose) +/*JP You("discard the open tin."); +*/ + You("ŠJ‚¯‚½ŠÊ‚ðŽÌ‚Ä‚½D"); if (!Hallucination) tin->dknown = tin->known = 1; costly_tin(COST_OPEN); @@ -1309,7 +1499,15 @@ const char *mesg; context.victual.fullwarn = context.victual.eating = context.victual.doreset = FALSE; +#if 0 /*JP*/ You("consume %s %s.", tintxts[r].txt, mons[mnum].mname); +#else /*JP: u‚́v‚ÅŽn‚Ü‚é‚È‚çŒã’uA‚»‚êˆÈŠO‚È‚ç‘O’u */ + if (strstr(tintxts[r].txt, "‚Ì") == tintxts[r].txt) { + You("%s%s‚ÌŠÊ‹l‚ð‚½‚¢‚ç‚°‚½D", mons[mnum].mname, tintxts[r].txt); + } else { + You("%s%s‚ÌŠÊ‹l‚ð‚½‚¢‚ç‚°‚½D", tintxts[r].txt, mons[mnum].mname); + } +#endif eating_conducts(&mons[mnum]); @@ -1328,22 +1526,41 @@ const char *mesg; if (tintxts[r].greasy) { /* Assume !Glib, because you can't open tins when Glib. */ incr_itimeout(&Glib, rnd(15)); +#if 0 /*JP*/ pline("Eating %s food made your %s very slippery.", tintxts[r].txt, makeplural(body_part(FINGER))); +#else + pline("–û‚Á‚Û‚¢•¨‚ðH‚ׂ½‚Ì‚Å‚ ‚È‚½‚Ì%s‚ÍŠŠ‚è‚â‚·‚­‚È‚Á‚½D", + body_part(FINGER)); +#endif } } else { /* spinach... */ if (tin->cursed) { +#if 0 /*JP*/ pline("It contains some decaying%s%s substance.", Blind ? "" : " ", Blind ? "" : hcolor(NH_GREEN)); +#else + pline("%s•…‚Á‚½•¨‘Ì‚ª“ü‚Á‚Ä‚¢‚éD", + Blind ? "" : hcolor(NH_GREEN)); +#endif } else { +/*JP pline("It contains spinach."); +*/ + pline("ƒzƒEƒŒƒ“‘‚ª“ü‚Á‚Ä‚¢‚éD"); tin->dknown = tin->known = 1; } +/*JP if (yn("Eat it?") == 'n') { +*/ + if (yn("H‚ׂ܂·‚©H") == 'n') { if (flags.verbose) +/*JP You("discard the open tin."); +*/ + You("ŠJ‚¯‚½ŠÊ‚ðŽÌ‚Ä‚½D"); costly_tin(COST_OPEN); goto use_up_tin; } @@ -1355,8 +1572,13 @@ const char *mesg; u.uconduct .food++; /* don't need vegan/vegetarian checks for spinach */ if (!tin->cursed) +#if 0 /*JP:T*/ pline("This makes you feel like %s!", Hallucination ? "Swee'pea" : "Popeye"); +#else + pline("%s‚̂悤‚È‹C•ª‚É‚È‚Á‚½I", + Hallucination ? "ƒXƒC[ƒs[" : "ƒ|ƒpƒC"); +#endif gainstr(tin, 0, FALSE); costly_tin(COST_OPEN); @@ -1386,13 +1608,19 @@ opentin(VOID_ARGS) && (!obj_here(context.tin.tin, u.ux, u.uy) || !can_reach_floor(TRUE))) return 0; /* %% probably we should use tinoid */ if (context.tin.usedtime++ >= 50) { +/*JP You("give up your attempt to open the tin."); +*/ + You("ŠÊ‚ðŠJ‚¯‚é‚Ì‚ð‚ ‚«‚ç‚ß‚½D"); return 0; } if (context.tin.usedtime < context.tin.reqtime) return 1; /* still busy */ +/*JP consume_tin("You succeed in opening the tin."); +*/ + consume_tin("ŠÊ‚ðŠJ‚¯‚é‚̂ɐ¬Œ÷‚µ‚½D"); return 0; } @@ -1405,10 +1633,16 @@ struct obj *otmp; register int tmp; if (metallivorous(youmonst.data)) { +/*JP mesg = "You bite right into the metal tin..."; +*/ + mesg = "‹à‘®‚ÌŠÊ‚ðŠš‚Ý‚Í‚¶‚ß‚½DDD"; tmp = 0; } else if (cantwield(youmonst.data)) { /* nohands || verysmall */ +/*JP You("cannot handle the tin properly to open it."); +*/ + You("ŠÊ‚ð‚¤‚Ü‚­ŠJ‚¯‚ç‚ê‚È‚¢D"); return; } else if (otmp->blessed) { /* 50/50 chance for immediate access vs 1 turn delay (unless @@ -1418,7 +1652,10 @@ struct obj *otmp; or might open immediately on 2nd (or 3rd, 4th, ...) try */ tmp = (uwep && uwep->blessed && uwep->otyp == TIN_OPENER) ? 0 : rn2(2); if (!tmp) +/*JP mesg = "The tin opens like magic!"; +*/ + mesg = "ŠÊ‚Í–‚–@‚̂悤‚ÉŠJ‚¢‚½I"; else pline_The("tin seems easy to open."); } else if (uwep) { @@ -1442,12 +1679,21 @@ struct obj *otmp; default: goto no_opener; } +/*JP pline("Using %s you try to open the tin.", yobjnam(uwep, (char *) 0)); +*/ + You("%s‚ðŽg‚Á‚ÄŠÊ‚ðŠJ‚¯‚悤‚Æ‚µ‚½D", xname(uwep)); } else { no_opener: +/*JP pline("It is not so easy to open this tin."); +*/ + pline("‚±‚ÌŠÊ‚ðŠJ‚¯‚é‚Ì‚Í—eˆÕ‚È‚±‚Æ‚Å‚Í‚È‚¢D"); if (Glib) { +/*JP pline_The("tin slips from your %s.", +*/ + pline("ŠÊ‚Í‚ ‚È‚½‚Ì%s‚©‚犊‚è—Ž‚¿‚½D", makeplural(body_part(FINGER))); if (otmp->quan > 1L) { otmp = splitobj(otmp, 1L); @@ -1468,7 +1714,10 @@ struct obj *otmp; } else { context.tin.reqtime = tmp; context.tin.usedtime = 0; +/*JP set_occupation(opentin, "opening the tin", 0); +*/ + set_occupation(opentin, "ŠÊ‚ðŠJ‚¯‚é", 0); } return; } @@ -1488,15 +1737,27 @@ STATIC_OVL int rottenfood(obj) struct obj *obj; { +/*JP pline("Blecch! Rotten %s!", foodword(obj)); +*/ + pline("ƒQƒFI•…‚Á‚½%s‚¾I", foodword(obj)); if (!rn2(4)) { if (Hallucination) +/*JP You_feel("rather trippy."); +*/ + You("‚Ö‚ë‚ւ낵‚½D"); else +/*JP You_feel("rather %s.", body_part(LIGHT_HEADED)); +*/ + You("%sD", body_part(LIGHT_HEADED)); make_confused(HConfusion + d(2, 4), FALSE); } else if (!rn2(4) && !Blind) { +/*JP pline("Everything suddenly goes dark."); +*/ + pline("“Ë‘R‘S‚Ä‚ªˆÃ‚­‚È‚Á‚½D"); make_blinded((long) d(2, 10), FALSE); if (!Blind) Your1(vision_clears); @@ -1505,17 +1766,35 @@ struct obj *obj; int duration = rnd(10); if (!Blind) +/*JP what = "goes", where = "dark"; +*/ + what = "‚È‚Á‚½", where = "ˆÃˆÅ‚É"; else if (Levitation || Is_airlevel(&u.uz) || Is_waterlevel(&u.uz)) +/*JP what = "you lose control of", where = "yourself"; +*/ + what = "§Œä‚Å‚«‚È‚­‚È‚Á‚½", where = "Ž©•ª‚ð"; else +/*JP what = "you slap against the", +*/ + what = "‚ɂԂ‚©‚Á‚½", +/*JP where = (u.usteed) ? "saddle" : surface(u.ux, u.uy); +*/ + where = (u.usteed) ? "ˆÆ" : surface(u.ux, u.uy); +/*JP pline_The("world spins and %s %s.", what, where); +*/ + pline("¢ŠE‚ª‰ñ“]‚µC%s%sD", where, what); incr_itimeout(&HDeaf, duration); nomul(-duration); multi_reason = "unconscious from rotten food"; +/*JP nomovemsg = "You are conscious again."; +*/ + nomovemsg = "‚ ‚È‚½‚Í‚Ü‚½³‹C‚¢‚½D"; afternmv = Hear_again; return 1; } @@ -1552,13 +1831,24 @@ struct obj *otmp; if (mnum != PM_ACID_BLOB && !stoneable && rotted > 5L) { boolean cannibal = maybe_cannibal(mnum, FALSE); +#if 0 /*JP*/ pline("Ulch - that %s was tainted%s!", mons[mnum].mlet == S_FUNGUS ? "fungoid vegetation" : !vegetarian(&mons[mnum]) ? "meat" : "protoplasm", cannibal ? ", you cannibal" : ""); +#else + pline("ƒIƒFI‚±‚Ì%s‚Í•…‚Á‚Ä‚¢‚é%sI", + mons[mnum].mlet == S_FUNGUS + ? "×‹Û‚ɉ˜õ‚³‚ꂽA•¨" + : !vegetarian(&mons[mnum]) ? "“÷" : "¶•¨", + cannibal ? "D‚µ‚©‚à‹¤H‚¢‚¾" : ""); +#endif if (Sick_resistance) { +/*JP pline("It doesn't seem at all sickening, though..."); +*/ + pline("‚µ‚©‚µC‚¢‚½‚Á‚ÄŒ³‹C‚¾DDD"); } else { long sick_time; @@ -1566,8 +1856,13 @@ struct obj *otmp; /* make sure new ill doesn't result in improvement */ if (Sick && (sick_time > Sick)) sick_time = (Sick > 1L) ? Sick - 1L : 1L; +#if 0 /*JP*/ make_sick(sick_time, corpse_xname(otmp, "rotted", CXN_NORMAL), TRUE, SICK_VOMITABLE); +#else + make_sick(sick_time, corpse_xname(otmp, "•…‚Á‚½", CXN_NORMAL), + TRUE, SICK_VOMITABLE); +#endif } if (carried(otmp)) useup(otmp); @@ -1576,21 +1871,44 @@ struct obj *otmp; return 2; } else if (acidic(&mons[mnum]) && !Acid_resistance) { tp++; +#if 0 /*JP:T*/ You("have a very bad case of stomach acid."); /* not body_part() */ +#else + pline("ˆÝŽ_‚Ì’²Žq‚ª‚Æ‚Ä‚àˆ«‚¢D"); +#endif +#if 0 /*JP*/ losehp(rnd(15), "acidic corpse", KILLED_BY_AN); /* acid damage */ +#else + losehp(rnd(15), "Ž_‚ÌŽ€‘Ì‚Å", KILLED_BY_AN); +#endif } else if (poisonous(&mons[mnum]) && rn2(5)) { tp++; +/*JP pline("Ecch - that must have been poisonous!"); +*/ + pline("ƒEƒQƒF[C—L“Å‚¾‚Á‚½‚É‚¿‚ª‚¢‚È‚¢I"); if (!Poison_resistance) { losestr(rnd(4)); +/*JP losehp(rnd(15), "poisonous corpse", KILLED_BY_AN); +*/ + losehp(rnd(15), "“Å‚ÌŽ€‘Ì‚Å", KILLED_BY_AN); } else +/*JP You("seem unaffected by the poison."); +*/ + You("“ł̉e‹¿‚ðŽó‚¯‚È‚¢‚悤‚¾D"); /* now any corpse left too long will make you mildly ill */ } else if ((rotted > 5L || (rotted > 3L && rn2(5))) && !Sick_resistance) { tp++; +/*JP You_feel("%ssick.", (Sick) ? "very " : ""); +*/ + You("%s‹C•ª‚ªˆ«‚¢D", (Sick) ? "‚Æ‚Ä‚à" : ""); +/*JP losehp(rnd(8), "cadaver", KILLED_BY_AN); +*/ + losehp(rnd(8), "•…—Ž€‘Ì‚Å", KILLED_BY_AN); } /* delay is weight dependent */ @@ -1606,7 +1924,10 @@ struct obj *otmp; if (!mons[otmp->corpsenm].cnutrit) { /* no nutrition: rots away, no message if you passed out */ if (!retcode) +/*JP pline_The("corpse rots away completely."); +*/ + pline("Ž€‘Ì‚ÍŠ®‘S‚É•…‚Á‚Ä‚µ‚Ü‚Á‚½D"); if (carried(otmp)) useup(otmp); else @@ -1629,6 +1950,7 @@ struct obj *otmp; : (carnivorous(youmonst.data) && !herbivorous(youmonst.data)); +#if 0 /*JP*/ pline("%s%s %s!", type_is_pname(&mons[mnum]) ? "" : the_unique_pm(&mons[mnum]) ? "The " : "This ", @@ -1638,6 +1960,15 @@ struct obj *otmp; : "is gnarly") : "is grody") : (yummy ? "is delicious" : "tastes terrible")); +#else + pline("‚±‚Ì%s‚Í%sI", + food_xname(otmp, FALSE), + Hallucination + ? (yummy ? ((u.umonnum == PM_TIGER) ? "ƒOƒDƒŒƒCƒgƒD" + : "ƒCƒP‚Ä‚é") + : "ƒCƒP‚Ä‚È‚¢") + : (yummy ? "‚Æ‚Ä‚àŽ|‚¢" : "‚Ђǂ¢–¡‚¾")); +#endif } return retcode; @@ -1690,7 +2021,10 @@ struct obj *otmp; return; } +/*JP Sprintf(msgbuf, "eating %s", food_xname(otmp, TRUE)); +*/ + Sprintf(msgbuf, "%s‚ðH‚ׂé", food_xname(otmp, TRUE)); set_occupation(eatfood, msgbuf, 0); } @@ -1705,19 +2039,40 @@ struct obj *otmp; switch (otmp->otyp) { case FOOD_RATION: if (u.uhunger <= 200) +/*JP pline(Hallucination ? "Oh wow, like, superior, man!" +*/ + pline(Hallucination ? "‚Ü‚Á‚½‚è‚Æ‚µ‚āC‚»‚ê‚Å‚¢‚Ä‚µ‚‚±‚­‚È‚¢I‚±‚ꂼ‹†‹É‚̃ƒjƒ…[‚¾I" +/*JP + : "That food really hit the spot!"); +*/ : "That food really hit the spot!"); else if (u.uhunger <= 700) +/*JP pline("That satiated your %s!", body_part(STOMACH)); +*/ + pline("–ž• ‚É‚È‚Á‚½I"); break; case TRIPE_RATION: if (carnivorous(youmonst.data) && !humanoid(youmonst.data)) +/*JP pline("That tripe ration was surprisingly good!"); +*/ + pline("‚±‚̃‚ƒc“÷‚Í‚¨‚Ç‚ë‚­‚Ù‚ÇŽ|‚¢I"); else if (maybe_polyd(is_orc(youmonst.data), Race_if(PM_ORC))) +/*JP pline(Hallucination ? "Tastes great! Less filling!" +*/ + pline(Hallucination ? "‚¤‚Ü‚¢I‚à‚Á‚Æ‚Ù‚µ‚­‚È‚é‚ˁI" +/*JP : "Mmm, tripe... not bad!"); +*/ + : "‚ñ[Cƒ‚ƒc‚©DDDˆ«‚­‚È‚¢I"); else { +/*JP pline("Yak - dog food!"); +*/ + pline("‚¤‚°CƒhƒbƒOƒt[ƒh‚¾I"); more_experienced(1, 0); newexplevel(); /* not cannibalism, but we use similar criteria @@ -1740,9 +2095,15 @@ struct obj *otmp; default: if (otmp->otyp == SLIME_MOLD && !otmp->cursed && otmp->spe == context.current_fruit) { +#if 0 /*JP*/ pline("My, that was a %s %s!", Hallucination ? "primo" : "yummy", singular(otmp, xname)); +#else + pline("‚¨‚âC‚È‚ñ‚Ä%s%s‚¾I", + Hallucination ? "ã•i‚È" : "‚¨‚¢‚µ‚¢", + singular(otmp, xname)); +#endif } else if (otmp->otyp == APPLE && otmp->cursed && !Sleep_resistance) { ; /* skip core joke; feedback deferred til fpostfx() */ @@ -1751,7 +2112,10 @@ struct obj *otmp; We check MACOSX before UNIX to get the Apple-specific apple message; the '#if UNIX' code will still kick in for pear. */ } else if (otmp->otyp == APPLE) { +/*JP pline("Delicious! Must be a Macintosh!"); +*/ + pline("‚·‚΂炵‚¢Iƒ}ƒbƒLƒ“ƒgƒbƒVƒ…‚ɈႢ‚È‚¢I"); #endif #ifdef UNIX @@ -1773,10 +2137,15 @@ struct obj *otmp; } #endif } else if (otmp->otyp == EGG && stale_egg(otmp)) { +#if 0 /*JP*/ pline("Ugh. Rotten egg."); /* perhaps others like it */ +#else + pline("ƒEƒQƒF[•…‚Á‚½—‘‚¾D"); +#endif make_vomiting((Vomiting & TIMEOUT) + (long) d(10, 4), TRUE); } else { give_feedback: +#if 0 /*JP*/ pline("This %s is %s", singular(otmp, xname), otmp->cursed ? (Hallucination ? "grody!" : "terrible!") @@ -1785,6 +2154,16 @@ struct obj *otmp; || otmp->otyp == C_RATION) ? "bland." : Hallucination ? "gnarly!" : "delicious!"); +#else + pline("‚±‚Ì%s‚Í%s", singular(otmp, xname), + otmp->cursed + ? (Hallucination ? "ƒCƒP‚Ä‚È‚¢I" : "‚Ђǂ¢–¡‚¾I") + : (otmp->otyp == CRAM_RATION + || otmp->otyp == K_RATION + || otmp->otyp == C_RATION) + ? "–¡‹C‚È‚¢D" + : Hallucination ? "ƒCƒP‚Ä‚éI" : "‚¤‚Ü‚¢I"); +#endif } break; /* default */ } /* switch */ @@ -1827,8 +2206,13 @@ STATIC_OVL void accessory_has_effect(otmp) struct obj *otmp; { +#if 0 /*JP*/ pline("Magic spreads through your body as you digest the %s.", otmp->oclass == RING_CLASS ? "ring" : "amulet"); +#else + pline("‚ ‚È‚½‚ª%s‚ðÁ‰»‚·‚é‚ƁC‚»‚Ì–‚—Í‚ª‘Ì‚É‚µ‚Ý‚±‚ñ‚¾D", + otmp->oclass == RING_CLASS ? "Žw—Ö" : "–‚œ‚¯"); +#endif } STATIC_OVL void @@ -1865,7 +2249,10 @@ struct obj *otmp; if (Invis && !oldprop && !ESee_invisible && !perceives(youmonst.data) && !Blind) { newsym(u.ux, u.uy); +/*JP pline("Suddenly you can see yourself."); +*/ + pline("“Ë‘RŽ©•ªŽ©g‚ªŒ©‚¦‚é‚悤‚É‚È‚Á‚½D"); makeknown(typ); } break; @@ -1873,8 +2260,13 @@ struct obj *otmp; if (!oldprop && !EInvis && !BInvis && !See_invisible && !Blind) { newsym(u.ux, u.uy); +#if 0 /*JP*/ Your("body takes on a %s transparency...", Hallucination ? "normal" : "strange"); +#else + pline("%s‚ ‚È‚½‚Ì‘Ì‚Í“§‰ß«‚ð‚à‚Á‚½DDD", + Hallucination ? "‚ ‚½‚è‚Ü‚¦‚È‚±‚Æ‚¾‚ª" : "Šï–­‚È‚±‚Æ‚É"); +#endif makeknown(typ); } break; @@ -1930,15 +2322,23 @@ struct obj *otmp; if (!(HSleep_resistance & FROMOUTSIDE)) accessory_has_effect(otmp); if (!Sleep_resistance) +/*JP You_feel("wide awake."); +*/ + You("‚Ï‚Á‚¿‚è–Ú‚ª‚³‚ß‚½D"); HSleep_resistance |= FROMOUTSIDE; break; case AMULET_OF_CHANGE: accessory_has_effect(otmp); makeknown(typ); change_sex(); +#if 0 /*JP*/ You("are suddenly very %s!", flags.female ? "feminine" : "masculine"); +#else + You("“Ë‘R‚Æ‚Ä‚à%s‚Á‚Û‚­‚È‚Á‚½I", + flags.female ? "—" : "’j"); +#endif context.botl = 1; break; case AMULET_OF_UNCHANGING: @@ -1982,7 +2382,10 @@ eatspecial() struct obj *otmp = context.victual.piece; /* lesshungry wants an occupation to handle choke messages correctly */ +/*JP set_occupation(eatfood, "eating non-food", 0); +*/ + set_occupation(eatfood, "H‚ׂé", 0); lesshungry(context.victual.nmod); occupation = 0; context.victual.piece = (struct obj *) 0; @@ -2014,13 +2417,21 @@ eatspecial() /* KMH -- idea by "Tommy the Terrorist" */ if (otmp->otyp == TRIDENT && !otmp->cursed) { /* sugarless chewing gum which used to be heavily advertised on TV */ +#if 0 /*JP*/ pline(Hallucination ? "Four out of five dentists agree." : "That was pure chewing satisfaction!"); +#else + pline(Hallucination ? "ŒÜl‚ÉŽll‚ÌŽ•ˆãŽÒ‚ªƒgƒ‰ƒCƒfƒ“ƒg‚ð‚¨‘E‚ß‚µ‚Ä‚¢‚Ü‚·D" + : "ƒˆ‚ÉŠš‚Ý‚½‚¢‹CŽ‚ð–ž‚½‚µ‚½I"); +#endif exercise(A_WIS, TRUE); } if (otmp->otyp == FLINT && !otmp->cursed) { /* chewable vitamin for kids based on "The Flintstones" TV cartoon */ +/*JP pline("Yabba-dabba delicious!"); +*/ + pline("ƒ„ƒbƒoƒ_ƒbƒo‚¤‚Ü‚¢I"); exercise(A_CON, TRUE); } @@ -2044,10 +2455,17 @@ eatspecial() /* NOTE: the order of these words exactly corresponds to the order of oc_material values #define'd in objclass.h. */ static const char *foodwords[] = { +#if 0 /*JP*/ "meal", "liquid", "wax", "food", "meat", "paper", "cloth", "leather", "wood", "bone", "scale", "metal", "metal", "metal", "silver", "gold", "platinum", "mithril", "plastic", "glass", "rich food", "stone" +#else + "“÷", "‰t‘Ì", "–û", "H—¿", "“÷", "Ž†", + "•ž", "”ç", "–Ø", "œ", "—Ø", "‹à‘®", + "‹à‘®", "‹à‘®", "‹â", "‹à", "ƒvƒ‰ƒ`ƒi", "ƒ~ƒXƒŠƒ‹", + "ƒvƒ‰ƒXƒ`ƒbƒN", "ƒKƒ‰ƒX", "‚‹‰—¿—", "Î" +#endif }; STATIC_OVL const char * @@ -2055,7 +2473,10 @@ foodword(otmp) struct obj *otmp; { if (otmp->oclass == FOOD_CLASS) +/*JP return "food"; +*/ + return "H—¿"; if (otmp->oclass == GEM_CLASS && objects[otmp->otyp].oc_material == GLASS && otmp->dknown) makeknown(otmp->otyp); @@ -2102,8 +2523,13 @@ struct obj *otmp; u.uhp = u.uhpmax; } else if (u.uhp <= 0) { killer.format = KILLED_BY_AN; +#if 0 /*JP*/ Strcpy(killer.name, "rotten lump of royal jelly"); done(POISONING); +#else + Strcpy(killer.name, "•…‚Á‚½ƒƒCƒ„ƒ‹ƒ[ƒŠ[‚ðH‚אH’†“Å‚Å"); + done(DIED); +#endif } } if (!otmp->cursed) @@ -2115,7 +2541,10 @@ struct obj *otmp; && !(poly_when_stoned(youmonst.data) && polymon(PM_STONE_GOLEM))) { if (!Stoned) { +/*JP Sprintf(killer.name, "%s egg", +*/ + Sprintf(killer.name, "%s‚Ì—‘‚Å", mons[otmp->corpsenm].mname); make_stoned(5L, (char *) 0, KILLED_BY_AN, killer.name); } @@ -2188,8 +2617,12 @@ struct obj *otmp; Strcpy(foodsmell, Tobjnam(otmp, "smell")); Strcpy(it_or_they, (otmp->quan == 1L) ? "it" : "they"); +#if 0 /*JP*/ Sprintf(eat_it_anyway, "Eat %s anyway?", (otmp->quan == 1L) ? "it" : "one"); +#else + Strcpy(eat_it_anyway, "‚»‚ê‚Å‚àH‚ׂéH"); +#endif if (cadaver || otmp->otyp == EGG || otmp->otyp == TIN) { /* These checks must match those in eatcorpse() */ @@ -2217,16 +2650,26 @@ struct obj *otmp; */ if (cadaver && mnum != PM_ACID_BLOB && rotted > 5L && !Sick_resistance) { /* Tainted meat */ +#if 0 /*JP*/ Sprintf(buf, "%s like %s could be tainted! %s", foodsmell, it_or_they, eat_it_anyway); +#else + Sprintf(buf, "%s‚͉˜õ‚³‚ê‚Ä‚¢‚é‚悤‚È‚É‚¨‚¢‚ª‚·‚éI%s", + foodsmell, eat_it_anyway); +#endif if (yn_function(buf, ynchars, 'n') == 'n') return 1; else return 2; } if (stoneorslime) { +#if 0 /*JP*/ Sprintf(buf, "%s like %s could be something very dangerous! %s", foodsmell, it_or_they, eat_it_anyway); +#else + Sprintf(buf, "%s‚Í‚È‚ñ‚¾‚©‚·‚²‚­ŠëŒ¯‚»‚¤‚È‚É‚¨‚¢‚ª‚·‚éI%s", + foodsmell, eat_it_anyway); +#endif if (yn_function(buf, ynchars, 'n') == 'n') return 1; else @@ -2234,8 +2677,13 @@ struct obj *otmp; } if (otmp->orotten || (cadaver && rotted > 3L)) { /* Rotten */ +#if 0 /*JP*/ Sprintf(buf, "%s like %s could be rotten! %s", foodsmell, it_or_they, eat_it_anyway); +#else + Sprintf(buf, "%s‚Í•…‚Á‚½‚悤‚È‚É‚¨‚¢‚ª‚·‚éI%s", + foodsmell, eat_it_anyway); +#endif if (yn_function(buf, ynchars, 'n') == 'n') return 1; else @@ -2243,8 +2691,13 @@ struct obj *otmp; } if (cadaver && poisonous(&mons[mnum]) && !Poison_resistance) { /* poisonous */ +#if 0 /*JP*/ Sprintf(buf, "%s like %s might be poisonous! %s", foodsmell, it_or_they, eat_it_anyway); +#else + Sprintf(buf, "%s‚Í“Å‚ð‚à‚Á‚Ä‚¢‚»‚¤‚È‚É‚¨‚¢‚ª‚·‚éI%s", + foodsmell, eat_it_anyway); +#endif if (yn_function(buf, ynchars, 'n') == 'n') return 1; else @@ -2252,20 +2705,31 @@ struct obj *otmp; } if (otmp->otyp == APPLE && otmp->cursed && !Sleep_resistance) { /* causes sleep, for long enough to be dangerous */ +#if 0 /*JP*/ Sprintf(buf, "%s like %s might have been poisoned. %s", foodsmell, it_or_they, eat_it_anyway); +#else + Sprintf(buf, "%s‚Í“Å‚ª“ü‚ê‚ç‚ê‚Ä‚¢‚»‚¤‚È‚É‚¨‚¢‚ª‚·‚éI%s", + foodsmell, eat_it_anyway); +#endif return (yn_function(buf, ynchars, 'n') == 'n') ? 1 : 2; } if (cadaver && !vegetarian(&mons[mnum]) && !u.uconduct.unvegetarian && Role_if(PM_MONK)) { +/*JP Sprintf(buf, "%s unhealthy. %s", foodsmell, eat_it_anyway); +*/ + Sprintf(buf, "%s‚ÍŒ’N‚Ɉ«‚»‚¤‚È‚É‚¨‚¢‚ª‚·‚éD%s", foodsmell, eat_it_anyway); if (yn_function(buf, ynchars, 'n') == 'n') return 1; else return 2; } if (cadaver && acidic(&mons[mnum]) && !Acid_resistance) { +/*JP Sprintf(buf, "%s rather acidic. %s", foodsmell, eat_it_anyway); +*/ + Sprintf(buf, "%s‚͏­‚µŽ_‚Á‚Ï‚»‚¤‚È‚É‚¨‚¢‚ª‚·‚éD%s", foodsmell, eat_it_anyway); if (yn_function(buf, ynchars, 'n') == 'n') return 1; else @@ -2273,8 +2737,13 @@ struct obj *otmp; } if (Upolyd && u.umonnum == PM_RUST_MONSTER && is_metallic(otmp) && otmp->oerodeproof) { +#if 0 /*JP*/ Sprintf(buf, "%s disgusting to you right now. %s", foodsmell, eat_it_anyway); +#else + Sprintf(buf, "%s‚Í‹C•ª‚ªˆ«‚­‚È‚é‚É‚¨‚¢‚ª‚·‚éD%s", foodsmell, + eat_it_anyway); +#endif if (yn_function(buf, ynchars, 'n') == 'n') return 1; else @@ -2288,8 +2757,13 @@ struct obj *otmp; && ((material == LEATHER || material == BONE || material == DRAGON_HIDE || material == WAX) || (cadaver && !vegan(&mons[mnum])))) { +#if 0 /*JP*/ Sprintf(buf, "%s foul and unfamiliar to you. %s", foodsmell, eat_it_anyway); +#else + Sprintf(buf, "%s‚͉˜‚ê‚Ä‚¢‚āC‚ ‚È‚½‚É‚È‚¶‚Ü‚È‚¢‚悤‚È‚É‚¨‚¢‚ª‚·‚éD%s", foodsmell, + eat_it_anyway); +#endif if (yn_function(buf, ynchars, 'n') == 'n') return 1; else @@ -2299,7 +2773,10 @@ struct obj *otmp; && ((material == LEATHER || material == BONE || material == DRAGON_HIDE) || (cadaver && !vegetarian(&mons[mnum])))) { +/*JP Sprintf(buf, "%s unfamiliar to you. %s", foodsmell, eat_it_anyway); +*/ + Sprintf(buf, "%s‚Í‚ ‚È‚½‚É‚È‚¶‚Ü‚È‚¢‚悤‚È‚É‚¨‚¢‚ª‚·‚éD%s", foodsmell, eat_it_anyway); if (yn_function(buf, ynchars, 'n') == 'n') return 1; else @@ -2308,8 +2785,13 @@ struct obj *otmp; if (cadaver && mnum != PM_ACID_BLOB && rotted > 5L && Sick_resistance) { /* Tainted meat with Sick_resistance */ +#if 0 /*JP*/ Sprintf(buf, "%s like %s could be tainted! %s", foodsmell, it_or_they, eat_it_anyway); +#else + Sprintf(buf, "%s‚͉˜õ‚³‚ê‚Ä‚¢‚é‚悤‚È‚É‚¨‚¢‚ª‚·‚éI%s", foodsmell, + eat_it_anyway); +#endif if (yn_function(buf, ynchars, 'n') == 'n') return 1; else @@ -2327,7 +2809,10 @@ doeat() boolean dont_start = FALSE, nodelicious = FALSE; if (Strangled) { +/*JP pline("If you can't breathe air, how can you consume solids?"); +*/ + pline("‘§‚à‚Å‚«‚È‚¢‚̂ɁC‚Ç‚¤‚â‚Á‚ĐH‚ׂ½‚ç‚¢‚¢‚ñ‚¾‚¢H"); return 0; } if (!(otmp = floorfood("eat", 0))) @@ -2338,9 +2823,14 @@ doeat() if (u.uedibility) { int res = edibility_prompts(otmp); if (res) { +#if 0 /*JP*/ Your( "%s stops tingling and your sense of smell returns to normal.", body_part(NOSE)); +#else + Your("%s‚ª‚¤‚¸‚¤‚¸‚·‚é‚Ì‚ÍŽ~‚Ü‚èCškŠo‚Í•’Ê‚É–ß‚Á‚½D", + body_part(NOSE)); +#endif u.uedibility = 0; if (res == 1) return 0; @@ -2356,12 +2846,18 @@ doeat() : touch_artifact(otmp, &youmonst))) { return 1; } else if (!is_edible(otmp)) { +/*JP You("cannot eat that!"); +*/ + You("‚»‚ê‚ðH‚ׂç‚ê‚È‚¢I"); return 0; } else if ((otmp->owornmask & (W_ARMOR | W_TOOL | W_AMUL | W_SADDLE)) != 0) { /* let them eat rings */ +/*JP You_cant("eat %s you're wearing.", something); +*/ + You("g‚ɂ‚¯‚Ä‚¢‚éŠÔ‚͐H‚ׂê‚È‚¢D"); return 0; } if (is_metallic(otmp) && u.umonnum == PM_RUST_MONSTER @@ -2373,12 +2869,20 @@ doeat() else otmp = splitobj(otmp, 1L); } +/*JP pline("Ulch - that %s was rustproofed!", xname(otmp)); +*/ + pline("ƒEƒQƒF[I%s‚Í–hŽK‚³‚ê‚Ä‚¢‚éI", xname(otmp)); /* The regurgitated object's rustproofing is gone now */ otmp->oerodeproof = 0; make_stunned((HStun & TIMEOUT) + (long) rn2(10), TRUE); +#if 0 /*JP*/ You("spit %s out onto the %s.", the(xname(otmp)), surface(u.ux, u.uy)); +#else + You("%s‚ð%s‚É“f‚«o‚µ‚½D", the(xname(otmp)), + surface(u.ux, u.uy)); +#endif if (carried(otmp)) { freeinv(otmp); dropy(otmp); @@ -2388,7 +2892,10 @@ doeat() } /* KMH -- Slow digestion is... indigestible */ if (otmp->otyp == RIN_SLOW_DIGESTION) { +/*JP pline("This ring is indigestible!"); +*/ + pline("‚±‚ÌŽw—ւ͏Á‰»‚µ‚É‚­‚¢I"); (void) rottenfood(otmp); if (otmp->dknown && !objects[otmp->otyp].oc_name_known && !objects[otmp->otyp].oc_uname) @@ -2437,13 +2944,28 @@ doeat() (void) rottenfood(otmp); if (otmp->oclass == WEAPON_CLASS && otmp->opoisoned) { +/*JP pline("Ecch - that must have been poisonous!"); +*/ + pline("ƒEƒQƒF[C—L“Å‚¾‚Á‚½‚ɈႢ‚È‚¢I"); if (!Poison_resistance) { losestr(rnd(4)); +#if 0 /*JP*/ losehp(rnd(15), xname(otmp), KILLED_BY_AN); +#else + { + char jbuf[BUFSZ]; + Sprintf(jbuf, "%s‚Å", xname(otmp)); + losehp(rnd(15), jbuf, KILLED_BY_AN); + } +#endif } else +/*JP You("seem unaffected by the poison."); +*/ + You("“ł̉e‹¿‚ðŽó‚¯‚È‚¢‚悤‚¾D"); } else if (!otmp->cursed && !nodelicious) { +#if 0 /*JP*/ pline("%s%s is delicious!", (obj_is_pname(otmp) && otmp->oartifact < ART_ORB_OF_DETECTION) @@ -2452,6 +2974,12 @@ doeat() (otmp->oclass == COIN_CLASS) ? foodword(otmp) : singular(otmp, xname)); +#else + pline("‚±‚Ì%s‚ÍŽ|‚¢I", + otmp->oclass == COIN_CLASS + ? foodword(otmp) + : singular(otmp, xname)); +#endif } eatspecial(); return 1; @@ -2469,7 +2997,10 @@ doeat() context.victual.piece = touchfood(otmp); if (context.victual.piece) context.victual.o_id = context.victual.piece->o_id; +/*JP You("resume your meal."); +*/ + You("HŽ–‚ðÄŠJ‚µ‚½D"); start_eating(context.victual.piece); return 1; } @@ -2695,8 +3226,14 @@ int num; if (u.uhunger >= 1500) { if (!context.victual.eating || (context.victual.eating && !context.victual.fullwarn)) { +/*JP pline("You're having a hard time getting all of it down."); +*/ + pline("‘S‚Ä‚ðˆù‚Ý‚±‚Þ‚É‚ÍŽžŠÔ‚ª‚©‚©‚éD"); +/*JP nomovemsg = "You're finally finished."; +*/ + nomovemsg = "‚â‚Á‚ƐH‚׏I‚¦‚½D"; if (!context.victual.eating) { multi = -2; } else { @@ -2704,7 +3241,10 @@ int num; if (context.victual.canchoke && context.victual.reqtime > 1) { /* a one-gulp food will not survive a stop */ +/*JP if (yn_function("Continue eating?", ynchars, 'n') +*/ + if (yn_function("H‚ב±‚¯‚Ü‚·‚©H", ynchars, 'n') != 'y') { reset_eat(); nomovemsg = (char *) 0; @@ -2803,13 +3343,22 @@ boolean incr; /* stop what you're doing, then faint */ stop_occupation(); +/*JP You("faint from lack of food."); +*/ + You("• ‚ªŒ¸‚Á‚Ä“|‚ꂽD"); if (!Levitation) +/*JP selftouch("Falling, you"); +*/ + selftouch("—Ž‚¿‚È‚ª‚çC‚ ‚È‚½‚Í"); incr_itimeout(&HDeaf, duration); nomul(-duration); multi_reason = "fainted from lack of food"; +/*JP nomovemsg = "You regain consciousness."; +*/ + nomovemsg = "‚ ‚È‚½‚͐³‹C‚¢‚½D"; afternmv = unfaint; newhs = FAINTED; } @@ -2817,9 +3366,15 @@ boolean incr; u.uhs = STARVED; context.botl = 1; bot(); +/*JP You("die from starvation."); +*/ + You("‰ìŽ€‚µ‚½D"); killer.format = KILLED_BY; +/*JP Strcpy(killer.name, "starvation"); +*/ + Strcpy(killer.name, "H—¿•s‘«‚ʼn쎀‚µ‚½"); done(STARVING); /* if we return, we lifesaved, and that calls newuhs */ return; @@ -2834,13 +3389,30 @@ boolean incr; switch (newhs) { case HUNGRY: if (Hallucination) { +#if 0 /*JP:T*/ You((!incr) ? "now have a lesser case of the munchies." : "are getting the munchies."); +#else + if (!incr) { + You("ƒnƒ‰ƒwƒŠ‚ªŒ¸‚Á‚½D"); + } else { + pline("ƒnƒ‰ƒwƒŠƒwƒŠƒnƒ‰D"); + } +#endif } else +/*JP You((!incr) ? "only feel hungry now." +*/ + You((!incr) ? "’P‚É• ƒyƒRó‘Ô‚É‚È‚Á‚½D" : (u.uhunger < 145) +/*JP ? "feel hungry." +*/ + ? "‹ó• Š´‚ðŠ´‚¶‚½D" +/*JP : "are beginning to feel hungry."); +*/ + : "‹ó• Š´‚ð‚¨‚Ú‚¦‚Í‚¶‚ß‚½D"); if (incr && occupation && (occupation != eatfood && occupation != opentin)) stop_occupation(); @@ -2848,19 +3420,40 @@ boolean incr; break; case WEAK: if (Hallucination) +/*JP pline((!incr) ? "You still have the munchies." +*/ + pline((!incr) ? "ƒnƒ‰ƒwƒŠ‚ªŒ¸‚ç‚È‚¢D" +/*JP : "The munchies are interfering with your motor capabilities."); +*/ + : "ƒnƒ‰ƒwƒŠ‚ªƒ‚[ƒ^[«”\‚ɉe‹¿‚ð—^‚¦‚Ä‚¢‚éD"); else if (incr && (Role_if(PM_WIZARD) || Race_if(PM_ELF) || Role_if(PM_VALKYRIE))) +/*JP pline("%s needs food, badly!", +*/ + pline("%s‚É‚ÍŽŠ‹}H—¿‚ª•K—v‚¾I", (Role_if(PM_WIZARD) || Role_if(PM_VALKYRIE)) ? urole.name.m +/*JP : "Elf"); +*/ + : "ƒGƒ‹ƒt"); else You((!incr) +/*JP ? "feel weak now." +*/ + ? "ŠŽãó‘Ô‚É‚È‚Á‚½D" +/*JP : (u.uhunger < 45) ? "feel weak." +*/ + : (u.uhunger < 45) ? "ŠŽã‚µ‚Ä‚«‚½D" +/*JP : "are beginning to feel weak."); +*/ + : "Žã‚­‚È‚Á‚Ä‚«‚½‚悤‚ÉŠ´‚¶‚½D"); if (incr && occupation && (occupation != eatfood && occupation != opentin)) stop_occupation(); @@ -2871,9 +3464,15 @@ boolean incr; context.botl = 1; bot(); if ((Upolyd ? u.mh : u.uhp) < 1) { +/*JP You("die from hunger and exhaustion."); +*/ + You("‹ó• ‚ƐŠŽã‚ÅŽ€‚ñ‚¾D"); killer.format = KILLED_BY; +/*JP Strcpy(killer.name, "exhaustion"); +*/ + Strcpy(killer.name, "‹ó• ‚ƐŠŽã‚ÅŽ€‚ñ‚¾"); done(STARVING); return; } @@ -2883,6 +3482,11 @@ boolean incr; /* Returns an object representing food. * Object may be either on floor or in inventory. */ +/*JP CHECK: 3.4.3 ‚ł̌Ăяo‚µŒ³ +apply.c:1959: if (!(corpse = floorfood("ŠÊ‹l‚ß‚É‚·‚é", 2))) return; +eat.c:2404: if (!(otmp = floorfood("H‚ׂé", 0))) return 0; +pray.c:1478: if (!(otmp = floorfood("•ù‚°‚é", 1))) return 0; +*/ struct obj * floorfood(verb, corpsecheck) const char *verb; @@ -2894,6 +3498,10 @@ int corpsecheck; /* 0, no check, 1, corpses, 2, tinnable corpses */ boolean feeding = !strcmp(verb, "eat"), /* corpsecheck==0 */ offering = !strcmp(verb, "sacrifice"); /* corpsecheck==1 */ +#if 1 /*JP*/ + const char *jverb = trans_verb(verb)->jp; +#endif + /* if we can't touch floor objects then use invent food only */ if (!can_reach_floor(TRUE) || (feeding && u.usteed) || (is_pool_or_lava(u.ux, u.uy) @@ -2909,9 +3517,18 @@ int corpsecheck; /* 0, no check, 1, corpses, 2, tinnable corpses */ /* If not already stuck in the trap, perhaps there should be a chance to becoming trapped? Probably not, because then the trap would just get eaten on the _next_ turn... */ +/*JP Sprintf(qbuf, "There is a bear trap here (%s); eat it?", +*/ + Sprintf(qbuf, "‚±‚±‚É‚ÍŒF‚Ìã©(%s)‚ª‚ ‚é; H‚ׂ܂·‚©H", +/*JP (u.utrap && u.utraptype == TT_BEARTRAP) ? "holding you" +*/ + (u.utrap && u.utraptype == TT_BEARTRAP) ? "‚ ‚È‚½‚ð’Í‚Ü‚¦‚Ä‚¢‚é" +/*JP : "armed"); +*/ + : "‰Ò“®’†"); if ((c = yn_function(qbuf, ynqchars, 'n')) == 'y') { u.utrap = u.utraptype = 0; deltrap(ttmp); @@ -2923,11 +3540,15 @@ int corpsecheck; /* 0, no check, 1, corpses, 2, tinnable corpses */ if (youmonst.data != &mons[PM_RUST_MONSTER] && (gold = g_at(u.ux, u.uy)) != 0) { +#if 0 /*JP*/ if (gold->quan == 1L) Sprintf(qbuf, "There is 1 gold piece here; eat it?"); else Sprintf(qbuf, "There are %ld gold pieces here; eat them?", gold->quan); +#else + Sprintf(qbuf, "‚±‚±‚É‚Í%ld–‡‚Ì‹à‰Ý‚ª‚ ‚éDH‚ׂ܂·‚©H", gold->quan); +#endif if ((c = yn_function(qbuf, ynqchars, 'n')) == 'y') { return gold; } else if (c == 'q') { @@ -2948,10 +3569,17 @@ int corpsecheck; /* 0, no check, 1, corpses, 2, tinnable corpses */ /* "There is here; it?" or "There are here; one?" */ +#if 0 /*JP*/ Sprintf(qbuf, "There %s ", otense(otmp, "are")); Sprintf(qsfx, " here; %s %s?", verb, one ? "it" : "one"); (void) safe_qbuf(qbuf, qbuf, qsfx, otmp, doname, ansimpleoname, one ? something : (const char *) "things"); +#else + Strcpy(qbuf, "‚±‚±‚É"); + Sprintf(qsfx, "‚ª‚ ‚é; %s%s?", one ? "" : "ˆê‚Â", jverb); + (void) safe_qbuf(qbuf, qbuf, qsfx, otmp, doname, ansimpleoname, + one ? something : (const char *) "‰½‚©"); +#endif if ((c = yn_function(qbuf, ynqchars, 'n')) == 'y') return otmp; else if (c == 'q') @@ -2967,7 +3595,10 @@ skipfloor: getobj(feeding ? allobj : offering ? offerfodder : comestibles, verb); if (corpsecheck && otmp && !(offering && otmp->oclass == AMULET_CLASS)) if (otmp->otyp != CORPSE || (corpsecheck == 2 && !tinnable(otmp))) { +/*JP You_cant("%s that!", verb); +*/ + You_cant("‚»‚ê‚ð%s‚±‚Æ‚Í‚Å‚«‚È‚¢I", jverb); return (struct obj *) 0; } return otmp; diff --git a/src/end.c b/src/end.c index 632d7a7..f92414f 100644 --- a/src/end.c +++ b/src/end.c @@ -272,6 +272,7 @@ NH_panictrace_gdb() } #endif /* PANICTRACE */ +#if 0 /*JP*//*“ú–{Œê‚Å‚ÍŽg‚í‚È‚¢*/ /* * The order of these needs to match the macros in hack.h. */ @@ -282,9 +283,11 @@ static NEARDATA const char *deaths[] = { "turned into slime", "genocided", "panic", "trickery", "quit", "escaped", "ascended" }; +#endif /*JP*/ static NEARDATA const char *ends[] = { /* "when you %s" */ +#if 0 /*JP*/ "died", "choked", "were poisoned", "starved", "drowned", "burned", "dissolved in the lava", @@ -292,6 +295,15 @@ static NEARDATA const char *ends[] = { "turned into slime", "were genocided", "panicked", "were tricked", "quit", "escaped", "ascended" +#else /*JP: ÅŒã‚ɁuŽE‚³‚ꂽv’ljÁ */ + "Ž€‚ñ‚¾", "’‚‘§‚µ‚½", "“Å‚É‚¨‚©‚³‚ꂽ", + "‰ìŽ€‚µ‚½", "“MŽ€‚µ‚½", "ÄŽ€‚µ‚½", + "—nŠâ‚É—n‚¯‚½", + "‰Ÿ‚µ’ׂ³‚ꂽ", "Î‚É‚È‚Á‚½", + "‚Ç‚ë‚Ç‚ë‚É—n‚¯‚½", "‹sŽE‚³‚ꂽ", + "ƒpƒjƒbƒN‚É‚¨‚¿‚¢‚Á‚½", "Šï–­‚ȏo—ˆŽ–‚ɉï‚Á‚½", "”²‚¯‚½", + "’Eo‚µ‚½", "¸“V‚µ‚½", "ŽE‚³‚ꂽ" +#endif }; static boolean Schroedingers_cat = FALSE; @@ -322,7 +334,10 @@ int sig_unused UNUSED; int done2() { +/*JP if (!paranoid_query(ParanoidQuit, "Really quit?")) { +*/ + if (!paranoid_query(ParanoidQuit, "–{“–‚É‚â‚ß‚éH")) { #ifndef NO_SIGNAL (void) signal(SIGINT, (SIG_RET_TYPE) done1); #endif @@ -409,10 +424,14 @@ int how; mimicker = (mtmp->m_ap_type == M_AP_MONSTER), imitator = (mptr != champtr || mimicker); +/*JP You((how == STONING) ? "turn to stone..." : "die..."); +*/ + You((how == STONING) ? "Î‚É‚È‚Á‚½DDD" : "Ž€‚É‚Ü‚µ‚½DDD"); mark_synch(); /* flush buffered screen output */ buf[0] = '\0'; killer.format = KILLED_BY_AN; +#if 0 /*JP*//* “ú–{Œê‚É‚ÍŠÖŒW‚È‚¢‚̂ł܂Ƃ߂ăRƒƒ“ƒgƒAƒEƒg */ /* "killed by the high priest of Crom" is okay, "killed by the high priest" alone isn't */ if ((mptr->geno & G_UNIQ) != 0 && !(imitator && !mimicker) @@ -426,10 +445,17 @@ int how; Strcat(buf, "the "); killer.format = KILLED_BY; } +#endif if (mtmp->minvis) +/*JP Strcat(buf, "invisible "); +*/ + Strcat(buf, "“§–¾‚È"); if (distorted) +/*JP Strcat(buf, "hallucinogen-distorted "); +*/ + Strcat(buf, "Œ¶Šo‚Řc‚ñ‚¾"); if (imitator) { char shape[BUFSZ]; @@ -464,24 +490,39 @@ int how; realnm, shape); mptr = mtmp->data; /* reset for mimicker case */ } else if (mptr == &mons[PM_GHOST]) { +#if 0 /*JP*/ Strcat(buf, "ghost"); if (has_mname(mtmp)) Sprintf(eos(buf), " of %s", MNAME(mtmp)); +#else + if (has_mname(mtmp)) + Sprintf(eos(buf), "%s‚Ì—H—ì", MNAME(mtmp)); + else + Strcat(buf, "—H—ì"); +#endif } else if (mtmp->isshk) { +#if 0 /*JP*/ const char *shknm = shkname(mtmp), *honorific = shkname_is_pname(mtmp) ? "" : mtmp->female ? "Ms. " : "Mr. "; Sprintf(eos(buf), "%s%s, the shopkeeper", honorific, shknm); +#else + Sprintf(eos(buf), "%s‚Æ‚¢‚¤–¼‚Ì“XŽå", shkname(mtmp)); +#endif killer.format = KILLED_BY; } else if (mtmp->ispriest || mtmp->isminion) { /* m_monnam() suppresses "the" prefix plus "invisible", and it overrides the effect of Hallucination on priestname() */ Strcat(buf, m_monnam(mtmp)); } else { +#if 0 /*JP*/ Strcat(buf, mptr->mname); if (has_mname(mtmp)) Sprintf(eos(buf), " called %s", MNAME(mtmp)); +#else + Strcat(buf, mptr->mname); +#endif } Strcpy(killer.name, buf); @@ -499,6 +540,23 @@ int how; && (mvitals[u.ugrave_arise].mvflags & G_GENOD)) u.ugrave_arise = NON_PM; +#if 1 /*JP*/ + if (how == STONING){ + /*JP + topten.c ‚Ì killed_by_prefix ‚ðŽQÆ‚Ì‚±‚ƁB + STONING ‚̏ꍇ‚Í "Î‰»‚µ‚½" ‚ª•â‚í‚ê‚éB + */ + Strcat(buf, "‚̍UŒ‚‚Å"); + } + if (how == DIED){ + /*JP + DIED ‚̏ꍇ‚͒ʏí "Ž€‚ñ‚¾" ‚ª•â‚í‚ê‚邪A + ‰ö•¨‚É‚æ‚éê‡‚Í "‚ÉŽE‚³‚ꂽ" ‚ð•â‚¤B + */ + killer.format = KILLED_SUFFIX; + done(DIED); + } +#endif done(how); return; } @@ -525,10 +583,19 @@ VA_DECL(const char *, str) } raw_print(program_state.gameover +/*JP ? "Postgame wrapup disrupted." +*/ + ? "ƒQ[ƒ€I—¹Žž‚̏ˆ—‚ª•ö‰ó‚µ‚½D" : !program_state.something_worth_saving +/*JP ? "Program initialization has failed." +*/ + ? "ƒvƒƒOƒ‰ƒ€‚̏‰Šú‰»‚ÉŽ¸”s‚µ‚½D" +/*JP : "Suddenly, the dungeon collapses."); +*/ + : "“Ë‘R–À‹{‚ª•ö‚ꂽD"); #ifndef MICRO #if defined(NOTIFY_NETHACK_BUGS) if (!wizard) @@ -538,9 +605,15 @@ VA_DECL(const char *, str) raw_print("\nError save file being written.\n"); #else if (!wizard) { +#if 0 /*JP*/ const char *maybe_rebuild = !program_state.something_worth_saving ? "." : "\nand it may be possible to rebuild."; +#else + const char *maybe_rebuild = !program_state.something_worth_saving + ? "D" + : "\n•œ‹Œ‚Å‚«‚é‰Â”\«‚ª‚ ‚è‚Ü‚·D"; +#endif if (sysopt.support) raw_printf("To report this error, %s%s", sysopt.support, @@ -549,8 +622,13 @@ VA_DECL(const char *, str) raw_printf("To report this error, contact %s%s", sysopt.fmtd_wizard_list, maybe_rebuild); else +#if 0 /*JP*/ raw_printf("Report error to \"%s\"%s", WIZARD_NAME, maybe_rebuild); +#else + raw_printf("\"%s\"‚ɃGƒ‰[‚ð•ñ‚µ‚Ä‚­‚¾‚³‚¢D%s", WIZARD_NAME, + maybe_rebuild); +#endif } #endif /* XXX can we move this above the prints? Then we'd be able to @@ -630,10 +708,18 @@ boolean taken; if (invent && !done_stopprint) { if (taken) +#if 0 /*JP*/ Sprintf(qbuf, "Do you want to see what you had when you %s?", (how == QUIT) ? "quit" : "died"); +#else + Sprintf(qbuf,"%s‚Æ‚«‰½‚ðŽ‚Á‚Ä‚¢‚½‚©Œ©‚Ü‚·‚©H", + (how == QUIT) ? "‚â‚ß‚½" : "Ž€‚ñ‚¾"); +#endif else +/*JP Strcpy(qbuf, "Do you want your possessions identified?"); +*/ + Strcpy(qbuf,"Ž‚¿•¨‚ðŽ¯•Ê‚µ‚Ü‚·‚©H"); ask = should_query_disclose_option('i', &defquery); c = ask ? yn_function(qbuf, ynqchars, defquery) : defquery; @@ -655,9 +741,15 @@ boolean taken; if (!done_stopprint) { ask = should_query_disclose_option('a', &defquery); +#if 0 /*JP*/ c = ask ? yn_function("Do you want to see your attributes?", ynqchars, defquery) : defquery; +#else + c = ask ? yn_function("‘®«‚ðŒ©‚Ü‚·‚©H", ynqchars, + defquery) + : defquery; +#endif if (c == 'y') enlightenment((BASICENLIGHTENMENT | MAGICENLIGHTENMENT), (how >= PANICKED) ? ENL_GAMEOVERALIVE @@ -678,9 +770,15 @@ boolean taken; if (!done_stopprint) { ask = should_query_disclose_option('c', &defquery); +#if 0 /*JP*/ c = ask ? yn_function("Do you want to see your conduct?", ynqchars, defquery) : defquery; +#else + c = ask ? yn_function("‚Ç‚¤‚¢‚¤s“®‚ð‚Æ‚Á‚½‚©Œ©‚Ü‚·‚©H", ynqchars, + defquery) + : defquery; +#endif if (c == 'y') show_conduct((how >= PANICKED) ? 1 : 2); if (c == 'q') @@ -721,7 +819,10 @@ int how; } if (how == CHOKING) init_uhunger(); +/*JP nomovemsg = "You survived that attempt on your life."; +*/ + nomovemsg = "‚ ‚È‚½‚͐¶‚«‚È‚ª‚炦‚½D"; context.move = 0; if (multi > 0) multi = 0; @@ -844,11 +945,18 @@ winid endwin; makeknown(otmp->otyp); otmp->known = otmp->dknown = otmp->bknown = otmp->rknown = 1; /* assumes artifacts don't have quan > 1 */ +#if 0 /*JP*/ Sprintf(pbuf, "%s%s (worth %ld %s and %ld points)", the_unique_obj(otmp) ? "The " : "", otmp->oartifact ? artifact_name(xname(otmp), &dummy) : OBJ_NAME(objects[otmp->otyp]), value, currency(value), points); +#else + Sprintf(pbuf, "%s(%ld%sC%ldƒ|ƒCƒ“ƒg‚̉¿’l)C", + otmp->oartifact ? artifact_name(xname(otmp), &dummy) + : OBJ_NAME(objects[otmp->otyp]), + value, currency(value), points); +#endif putstr(endwin, 0, pbuf); } } @@ -868,7 +976,10 @@ int how; killer.name[0] = 0; } if (wizard) { +/*JP You("are a very tricky wizard, it seems."); +*/ + You("‚Æ‚Ä‚àˆµ‚¢‚É‚­‚¢wizard‚̂悤‚¾D"); return; } } @@ -879,25 +990,46 @@ int how; if (!killer.name[0] && (how == STARVING || how == BURNING)) killer.format = KILLED_BY; if (!killer.name[0] || how >= PANICKED) +/*JP Strcpy(killer.name, deaths[how]); +*/ + Strcpy(killer.name, ends[how]); if (how < PANICKED) u.umortality++; if (Lifesaved && (how <= GENOCIDED)) { +/*JP pline("But wait..."); +*/ + pline("‚¿‚å‚Á‚Æ‚Ü‚Á‚½DDD"); makeknown(AMULET_OF_LIFE_SAVING); +/*JP Your("medallion %s!", !Blind ? "begins to glow" : "feels warm"); +*/ + Your("–‚œ‚¯‚Í%sI", !Blind ? "‹P‚«‚Í‚¶‚ß‚½" : "’g‚©‚­‚È‚è‚Í‚¶‚ß‚½"); if (how == CHOKING) +/*JP You("vomit ..."); +*/ + You("“f‚¢‚½DDD"); +/*JP You_feel("much better!"); +*/ + You("‹C•ª‚ª‚æ‚­‚È‚Á‚½I"); +/*JP pline_The("medallion crumbles to dust!"); +*/ + pline("–‚œ‚¯‚Í‚±‚È‚²‚È‚É‚­‚¾‚¯‚½I"); if (uamul) useup(uamul); (void) adjattrib(A_CON, -1, TRUE); savelife(how); if (how == GENOCIDED) { +/*JP pline("Unfortunately you are still genocided..."); +*/ + pline("Žc”O‚È‚ª‚çC‚ ‚È‚½‚Í‹sŽE‚³‚ꂽ‚Ü‚Ü‚¾DDD"); } else { killer.name[0] = 0; killer.format = 0; @@ -905,8 +1037,14 @@ int how; } } if ((wizard || discover) && (how <= GENOCIDED) && +/*JP !paranoid_query(ParanoidDie, "Die?")) { +*/ + !paranoid_query(ParanoidDie, "Ž€‚ñ‚Å‚Ý‚éH")) { +/*JP pline("OK, so you don't %s.", (how == CHOKING) ? "choke" : "die"); +*/ + You("Ž€‚È‚È‚©‚Á‚½D"); savelife(how); killer.name[0] = 0; killer.format = 0; @@ -959,7 +1097,10 @@ int how; * smiling... :-) -3. */ if (moves <= 1 && how < PANICKED) /* You die... --More-- */ +/*JP pline("Do not pass go. Do not collect 200 %s.", currency(200L)); +*/ + pline("’ˆÓˆê•bC‰ö‰äˆê¶CŽ€–Sˆê•àD"); if (have_windows) wait_synch(); /* flush screen output */ @@ -996,7 +1137,10 @@ int how; if (u.uhp < 1) { how = DIED; u.umortality++; /* skipped above when how==QUIT */ +/*JP Strcpy(killer.name, "quit while already on Charon's boat"); +*/ + Strcpy(killer.name, "ŽO“r‚̐ì‚Ì“n‚µ‘D‚ɏæ‚Á‚Ä‚¢‚éŠÔ‚É”²‚¯‚½"); } } if (how == ESCAPED || how == PANICKED) @@ -1038,7 +1182,10 @@ int how; : urace.malenum; } corpse = mk_named_object(CORPSE, &mons[mnum], u.ux, u.uy, plname); +/*JP Sprintf(pbuf, "%s, ", plname); +*/ + Sprintf(pbuf, "%s‚Ì•æC", plname); formatkiller(eos(pbuf), sizeof pbuf - strlen(pbuf), how); make_grave(u.ux, u.uy, pbuf); } @@ -1077,13 +1224,19 @@ int how; /* give this feedback even if bones aren't going to be created, so that its presence or absence doesn't tip off the player to new bones or their lack; it might be a lie if makemon fails */ +/*JP Your("body rises from the dead as %s...", +*/ + Your("‘Ì‚Í%s‚Æ‚µ‚ÄŽ€‘Ì‚©‚ç‘h‚Á‚½DDD", an(mons[u.ugrave_arise].mname)); display_nhwindow(WIN_MESSAGE, FALSE); } if (bones_ok) { +/*JP if (!wizard || paranoid_query(ParanoidBones, "Save bones?")) +*/ + if (!wizard || paranoid_query(ParanoidBones, "œ‚ð‚¤‚ß‚éH")) savebones(how, endtime, corpse); /* corpse may be invalid pointer now so ensure that it isn't used again */ @@ -1116,22 +1269,41 @@ int how; done_stopprint = 1; /* just avoid any more output */ if (u.uhave.amulet) { +/*JP Strcat(killer.name, " (with the Amulet)"); +*/ + Strcat(killer.name, "–‚œ‚¯‚ðŽè‚É"); } else if (how == ESCAPED) { if (Is_astralevel(&u.uz)) /* offered Amulet to wrong deity */ +/*JP Strcat(killer.name, " (in celestial disgrace)"); +*/ + Strcat(killer.name, "“Vã‚Å’pJ‚ðŽó‚¯’Eo‚µ‚½"); else if (carrying(FAKE_AMULET_OF_YENDOR)) +/*JP Strcat(killer.name, " (with a fake Amulet)"); +*/ + Strcat(killer.name, "‹U•¨‚Ì–‚œ‚¯‚ð’Í‚Ü‚³‚ê’Eo‚µ‚½"); /* don't bother counting to see whether it should be plural */ } if (!done_stopprint) { +#if 0 /*JP*/ Sprintf(pbuf, "%s %s the %s...", Goodbye(), plname, (how != ASCENDED) ? (const char *) ((flags.female && urole.name.f) ? urole.name.f : urole.name.m) : (const char *) (flags.female ? "Demigoddess" : "Demigod")); +#else + Sprintf(pbuf, "%s%s‚Ì%sDDD", Goodbye(), + how != ASCENDED + ? (const char *) ((flags.female && urole.name.f) + ? urole.name.f + : urole.name.m) + : (const char *) (flags.female ? "—_" : "_"), + plname); +#endif putstr(endwin, 0, pbuf); putstr(endwin, 0, ""); } @@ -1163,7 +1335,10 @@ int how; viz_array[0][0] |= IN_SIGHT; /* need visibility for naming */ mtmp = mydogs; if (!done_stopprint) +/*JP Strcpy(pbuf, "You"); +*/ + Strcpy(pbuf, "‚ ‚È‚½"); if (!Schroedingers_cat) /* check here in case disclosure was off */ Schroedingers_cat = odds_and_ends(invent, CAT_CHECK); if (Schroedingers_cat) { @@ -1171,28 +1346,47 @@ int how; mhp = d(m_lev, 8); nowrap_add(u.urexp, mhp); if (!done_stopprint) +/*JP Strcat(eos(pbuf), " and Schroedinger's cat"); +*/ + Strcat(eos(pbuf), "‚ƃVƒ…ƒŒƒfƒBƒ“ƒK[‚Ì”L"); } if (mtmp) { while (mtmp) { if (!done_stopprint) +/*JP Sprintf(eos(pbuf), " and %s", mon_nam(mtmp)); +*/ + Sprintf(eos(pbuf), "‚Æ%s", mon_nam(mtmp)); if (mtmp->mtame) nowrap_add(u.urexp, mtmp->mhp); mtmp = mtmp->nmon; } +#if 1 /*JP*/ + if (!done_stopprint) + Strcat(pbuf, "‚Í"); +#endif if (!done_stopprint) putstr(endwin, 0, pbuf); pbuf[0] = '\0'; } else { if (!done_stopprint) +/*JP Strcat(pbuf, " "); +*/ + Strcat(pbuf, "‚Í"); } if (!done_stopprint) { +#if 0 /*JP*/ Sprintf(eos(pbuf), "%s with %ld point%s,", how == ASCENDED ? "went to your reward" : "escaped from the dungeon", u.urexp, plur(u.urexp)); +#else + Sprintf(eos(pbuf), "%ldƒ|ƒCƒ“ƒgƒ}[ƒN‚µ%sD", + u.urexp, + how==ASCENDED ? "¸“V‚µ‚½" : "–À‹{‚©‚ç’Eo‚µ‚½"); +#endif putstr(endwin, 0, pbuf); } @@ -1216,13 +1410,24 @@ int how; if (has_oname(otmp)) free_oname(otmp); otmp->quan = count; +#if 0 /*JP*/ Sprintf(pbuf, "%8ld %s (worth %ld %s),", count, xname(otmp), count * (long) objects[typ].oc_cost, currency(2L)); +#else + Sprintf(pbuf, "%ldŒÂ‚Ì%s(%ld%s‚̉¿’l)C", count, + xname(otmp), count * (long) objects[typ].oc_cost, + currency(2L)); +#endif obfree(otmp, (struct obj *) 0); } else { +#if 0 /*JP*/ Sprintf(pbuf, "%8ld worthless piece%s of colored glass,", count, plur(count)); +#else + Sprintf(pbuf, "%ldŒÂ‚̉¿’l‚Ì‚È‚¢F‚‚«ƒKƒ‰ƒXC", + count); +#endif } putstr(endwin, 0, pbuf); } @@ -1233,33 +1438,63 @@ int how; if (u.uz.dnum == 0 && u.uz.dlevel <= 0) { /* level teleported out of the dungeon; `how' is DIED, due to falling or to "arriving at heaven prematurely" */ +#if 0 /*JP*/ Sprintf(pbuf, "You %s beyond the confines of the dungeon", (u.uz.dlevel < 0) ? "passed away" : ends[how]); +#else + Sprintf(pbuf, "–À‹{‚̗̈æ‚ð‰z‚¦%sD", + (u.uz.dlevel < 0) ? "Á‚¦‚³‚Á‚½" : ends[how]); +#endif } else { /* more conventional demise */ const char *where = dungeons[u.uz.dnum].dname; if (Is_astralevel(&u.uz)) +/*JP where = "The Astral Plane"; +*/ + where = "¸—ìŠE‚É‚Ä"; +/*JP Sprintf(pbuf, "You %s in %s", ends[how], where); +*/ + Sprintf(pbuf, "‚ ‚È‚½‚Í%s", where); if (!In_endgame(&u.uz) && !Is_knox(&u.uz)) +#if 0 /*JP*/ Sprintf(eos(pbuf), " on dungeon level %d", In_quest(&u.uz) ? dunlev(&u.uz) : depth(&u.uz)); +#else + Sprintf(eos(pbuf), "‚Ì’n‰º%dŠK‚Å", + In_quest(&u.uz) ? dunlev(&u.uz) : depth(&u.uz)); +#endif } +/*JP Sprintf(eos(pbuf), " with %ld point%s,", u.urexp, plur(u.urexp)); +*/ + Sprintf(eos(pbuf), " %ldƒ|ƒCƒ“ƒg‚ðƒ}[ƒN‚µC", u.urexp); putstr(endwin, 0, pbuf); } if (!done_stopprint) { +#if 0 /*JP*/ Sprintf(pbuf, "and %ld piece%s of gold, after %ld move%s.", umoney, plur(umoney), moves, plur(moves)); +#else + Sprintf(pbuf, "%ld–‡‚Ì‹à‰Ý‚ðŽ‚Á‚āC%ld•à“®‚¢‚½D", + umoney, moves); +#endif putstr(endwin, 0, pbuf); } if (!done_stopprint) { +#if 0 /*JP*/ Sprintf(pbuf, "You were level %d with a maximum of %d hit point%s when you %s.", u.ulevel, u.uhpmax, plur(u.uhpmax), ends[how]); +#else + Sprintf(pbuf, + "%s‚Æ‚«C‚ ‚È‚½‚̓Œƒxƒ‹%u‚ŁCÅ‘å‘Ì—Í‚Í%d‚Å‚ ‚Á‚½D", + ends[how],u.ulevel, u.uhpmax); +#endif putstr(endwin, 0, pbuf); putstr(endwin, 0, ""); } @@ -1337,7 +1572,10 @@ boolean identified, all_containers, reportempty; goto nextclass; } +/*JP Sprintf(buf, "Contents of %s:", the(xname(box))); +*/ + Sprintf(buf, "%s‚Ì’†gF", the(xname(box))); putstr(tmpwin, 0, buf); putstr(tmpwin, 0, ""); for (i = 0; i < n; i++) { @@ -1353,20 +1591,34 @@ boolean identified, all_containers, reportempty; } free(oarray); if (cat) +/*JP putstr(tmpwin, 0, "Schroedinger's cat"); +*/ + putstr(tmpwin, 0, "ƒVƒ…ƒŒƒfƒBƒ“ƒK[‚Ì”L"); else if (deadcat) +/*JP putstr(tmpwin, 0, "Schroedinger's dead cat"); +*/ + putstr(tmpwin, 0, "ƒVƒ…ƒŒƒfƒBƒ“ƒK[‚Ì”L‚ÌŽ€‘Ì"); display_nhwindow(tmpwin, TRUE); destroy_nhwindow(tmpwin); if (all_containers) container_contents(box->cobj, identified, TRUE, reportempty); } else if (cat || deadcat) { +#if 0 /*JP*/ pline("%s Schroedinger's %scat!", Tobjnam(box, "contain"), deadcat ? "dead " : ""); +#else + pline("%s‚ɂ̓Vƒ…ƒŒƒfƒBƒ“ƒK[‚Ì”L%s‚ª“ü‚Á‚Ä‚¢‚½I", xname(box), + deadcat ? "‚ÌŽ€‘Ì" : ""); +#endif display_nhwindow(WIN_MESSAGE, FALSE); } else if (reportempty) { +/*JP pline("%s is empty.", upstart(thesimpleoname(box))); +*/ + pline("%s‚Í‹ó‚Á‚Û‚¾D", xname(box)); display_nhwindow(WIN_MESSAGE, FALSE); } } @@ -1403,6 +1655,9 @@ int status; return; #endif program_state.exiting = 1; +#if 1 /*JP*/ + jputchar('\0'); /* reset terminal */ +#endif nethack_exit(status); } @@ -1439,15 +1694,25 @@ boolean ask; * includes all dead monsters, not just those killed by the player */ if (ntypes != 0) { +#if 0 /*JP*/ c = ask ? yn_function( "Do you want an account of creatures vanquished?", ynqchars, defquery) : defquery; +#else + c = ask ? yn_function( + "“|‚µ‚½“G‚̈ꗗ‚ðŒ©‚Ü‚·‚©H", + ynqchars, defquery) + : defquery; +#endif if (c == 'q') done_stopprint++; if (c == 'y' || c == 'a') { klwin = create_nhwindow(NHW_MENU); +/*JP putstr(klwin, 0, "Vanquished creatures:"); +*/ + putstr(klwin, 0, "“|‚µ‚½“GF"); putstr(klwin, 0, ""); /* countdown by monster "toughness" */ @@ -1456,10 +1721,15 @@ boolean ask; if (mons[i].mlevel == lev && (nkilled = mvitals[i].died) > 0) { if ((mons[i].geno & G_UNIQ) && i != PM_HIGH_PRIEST) { +#if 0 /*JP*/ Sprintf(buf, "%s%s", !type_is_pname(&mons[i]) ? "The " : "", mons[i].mname); +#else + Sprintf(buf, "%s", mons[i].mname); +#endif if (nkilled > 1) { +#if 0 /*JP*/ switch (nkilled) { case 2: Sprintf(eos(buf), " (twice)"); @@ -1471,6 +1741,9 @@ boolean ask; Sprintf(eos(buf), " (%d times)", nkilled); break; } +#else + Sprintf(eos(buf)," (%d‰ñ)", nkilled); +#endif } } else { /* trolls or undead might have come back, @@ -1478,8 +1751,13 @@ boolean ask; if (nkilled == 1) Strcpy(buf, an(mons[i].mname)); else +#if 0 /*JP*/ Sprintf(buf, "%d %s", nkilled, makeplural(mons[i].mname)); +#else + Sprintf(buf, "%d‘Ì‚Ì%s", nkilled, + mons[i].mname); +#endif } putstr(klwin, 0, buf); } @@ -1489,7 +1767,10 @@ boolean ask; */ if (ntypes > 1) { putstr(klwin, 0, ""); +/*JP Sprintf(buf, "%ld creatures vanquished.", total_killed); +*/ + Sprintf(buf, "%ld•C‚Ì“G‚ð“|‚µ‚½D", total_killed); putstr(klwin, 0, buf); } display_nhwindow(klwin, TRUE); @@ -1543,41 +1824,67 @@ boolean ask; /* genocided or extinct species list */ if (ngenocided != 0 || nextinct != 0) { +#if 0 /*JP*/ Sprintf(buf, "Do you want a list of %sspecies%s%s?", (nextinct && !ngenocided) ? "extinct " : "", (ngenocided) ? " genocided" : "", (nextinct && ngenocided) ? " and extinct" : ""); +#else + Sprintf(buf, "%s%s%s‚µ‚½Ží‚̈ꗗ‚ðŒ©‚Ü‚·‚©H", + (nextinct && !ngenocided) ? "â–Å" : "", + (ngenocided) ? "‹sŽE" : "", + (nextinct && ngenocided) ? "‚¨‚æ‚ѐâ–Å" : ""); +#endif c = ask ? yn_function(buf, ynqchars, defquery) : defquery; if (c == 'q') done_stopprint++; if (c == 'y') { klwin = create_nhwindow(NHW_MENU); +#if 0 /*JP*/ Sprintf(buf, "%s%s species:", (ngenocided) ? "Genocided" : "Extinct", (nextinct && ngenocided) ? " or extinct" : ""); +#else + Sprintf(buf, "%s%s‚µ‚½Ží:", + (ngenocided) ? "‹sŽE" : "â–Å", + (nextinct && ngenocided) ? "‚Ü‚½‚͐â–Å" : ""); +#endif putstr(klwin, 0, buf); putstr(klwin, 0, ""); for (i = LOW_PM; i < NUMMONS; i++) if (mvitals[i].mvflags & G_GONE && !(mons[i].geno & G_UNIQ)) { if ((mons[i].geno & G_UNIQ) && i != PM_HIGH_PRIEST) +#if 0 /*JP*/ Sprintf(buf, "%s%s", !type_is_pname(&mons[i]) ? "" : "the ", mons[i].mname); +#else + Sprintf(buf, "%s", mons[i].mname); +#endif else Strcpy(buf, makeplural(mons[i].mname)); if (!(mvitals[i].mvflags & G_GENOD)) +/*JP Strcat(buf, " (extinct)"); +*/ + Strcat(buf, "(â–Å)"); putstr(klwin, 0, buf); } putstr(klwin, 0, ""); if (ngenocided > 0) { +/*JP Sprintf(buf, "%d species genocided.", ngenocided); +*/ + Sprintf(buf, "%dŽí—Þ‚ÌŽí‚ð‹sŽE‚µ‚½D", ngenocided); putstr(klwin, 0, buf); } if (nextinct > 0) { +/*JP Sprintf(buf, "%d species extinct.", nextinct); +*/ + Sprintf(buf, "%dŽí—Þ‚ÌŽí‚ðâ–Å‚³‚¹‚½D", nextinct); putstr(klwin, 0, buf); } diff --git a/src/engrave.c b/src/engrave.c index 3cc5592..7ab835e 100644 --- a/src/engrave.c +++ b/src/engrave.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" #include "lev.h" @@ -82,7 +87,11 @@ char *engr; int cnt; unsigned seed; /* for semi-controlled randomization */ { +#if 0 /*JP*/ char *s; +#else + unsigned char *s; +#endif int i, j, nxt, use_rubout, lth = (int) strlen(engr); if (lth && cnt > 0) { @@ -100,7 +109,22 @@ unsigned seed; /* for semi-controlled randomization */ seed *= 31, seed %= (BUFSZ - 1); use_rubout = seed & 3; } +#if 0 /*JP*/ s = &engr[nxt]; +#else /*JP: “ú–{Œê‚̏ꍇ‚Íjrubout()‚ðŽg‚Á‚ďÁ‚·*/ + if (!seed) + j = rn2(2); + else { + seed *= 31, seed %= (BUFSZ-1); + j = seed % 2; + } + + if(jrubout(engr, nxt, use_rubout, j)){ + continue; + } + + s = (unsigned char *)&engr[nxt]; +#endif if (*s == ' ') continue; @@ -181,28 +205,61 @@ register int x, y; register struct rm *lev = &levl[x][y]; if (x == u.ux && y == u.uy && u.uswallow && is_animal(u.ustuck->data)) +/*JP return "maw"; +*/ + return "ˆÝ‘Ü"; else if (IS_AIR(lev->typ) && Is_airlevel(&u.uz)) +/*JP return "air"; +*/ + return "‹ó’†"; else if (is_pool(x, y)) +/*JP return (Underwater && !Is_waterlevel(&u.uz)) ? "bottom" : "water"; +*/ + return (Underwater && !Is_waterlevel(&u.uz)) ? "…‚Ì’ê" : "…’†"; else if (is_ice(x, y)) +/*JP return "ice"; +*/ + return "•X"; else if (is_lava(x, y)) +/*JP return "lava"; +*/ + return "—nŠâ"; else if (lev->typ == DRAWBRIDGE_DOWN) +/*JP return "bridge"; +*/ + return "‹´"; else if (IS_ALTAR(levl[x][y].typ)) +/*JP return "altar"; +*/ + return "Õ’d"; else if (IS_GRAVE(levl[x][y].typ)) +/*JP return "headstone"; +*/ + return "•æÎ"; else if (IS_FOUNTAIN(levl[x][y].typ)) +/*JP return "fountain"; +*/ + return "ò"; else if ((IS_ROOM(lev->typ) && !Is_earthlevel(&u.uz)) || IS_WALL(lev->typ) || IS_DOOR(lev->typ) || lev->typ == SDOOR) +/*JP return "floor"; +*/ + return "°"; else +/*JP return "ground"; +*/ + return "’n–Ê"; } const char * @@ -216,23 +273,47 @@ register int x, y; * see check_special_room() */ if (*in_rooms(x, y, VAULT)) +/*JP what = "vault's ceiling"; +*/ + what = "‘qŒÉ‚Ì“Vˆä"; else if (*in_rooms(x, y, TEMPLE)) +/*JP what = "temple's ceiling"; +*/ + what = "Ž›‰@‚Ì“Vˆä"; else if (*in_rooms(x, y, SHOPBASE)) +/*JP what = "shop's ceiling"; +*/ + what = "“X‚Ì“Vˆä"; else if (Is_waterlevel(&u.uz)) /* water plane has no surface; its air bubbles aren't below sky */ +/*JP what = "water above"; +*/ + what = "…‚̏ã•û"; else if (IS_AIR(lev->typ)) +/*JP what = "sky"; +*/ + what = "‹ó"; else if (Underwater) +/*JP what = "water's surface"; +*/ + what = "…–Ê"; else if ((IS_ROOM(lev->typ) && !Is_earthlevel(&u.uz)) || IS_WALL(lev->typ) || IS_DOOR(lev->typ) || lev->typ == SDOOR) +/*JP what = "ceiling"; +*/ + what = "“Vˆä"; else +/*JP what = "rock cavern"; +*/ + what = "“´ŒA‚Ì“Vˆä"; return what; } @@ -321,29 +402,46 @@ int x, y; case DUST: if (!Blind) { sensed = 1; +#if 0 /*JP*/ pline("%s is written here in the %s.", Something, is_ice(x, y) ? "frost" : "dust"); +#else + pline("‰½‚©‚Ì•¶Žš‚ª%s‚ɏ‘‚¢‚Ä‚ ‚éD", + is_ice(x, y) ? "‘š" : "‚Ù‚±‚è"); +#endif } break; case ENGRAVE: case HEADSTONE: if (!Blind || can_reach_floor(TRUE)) { sensed = 1; +/*JP pline("%s is engraved here on the %s.", Something, +*/ + pline("‰½‚©‚Ì•¶Žš‚ª%s‚ɍ‚Ü‚ê‚Ä‚¢‚éD", surface(x, y)); } break; case BURN: if (!Blind || can_reach_floor(TRUE)) { sensed = 1; +#if 0 /*JP*/ pline("Some text has been %s into the %s here.", is_ice(x, y) ? "melted" : "burned", surface(x, y)); +#else + pline("‰½‚©‚Ì•¶Žš‚ª%s%s‚¢‚éD", + surface(x,y), + is_ice(x,y) ? "‚ɍ‚Ü‚ê‚Ä" : "‚ɏĂ«•t‚¯‚ç‚ê‚Ä"); +#endif } break; case MARK: if (!Blind) { sensed = 1; +/*JP pline("There's some graffiti on the %s here.", surface(x, y)); +*/ + pline("%s‚É—Ž‘‚ª‚ ‚éD", surface(x,y)); } break; case ENGR_BLOOD: @@ -353,7 +451,10 @@ int x, y; */ if (!Blind) { sensed = 1; +/*JP You_see("a message scrawled in blood here."); +*/ + You("ŒŒ•¶Žš‚ª‚È‚®‚菑‚«‚³‚ê‚Ä‚¢‚é‚Ì‚ðŒ©‚Â‚¯‚½D"); } break; default: @@ -362,14 +463,20 @@ int x, y; } if (sensed) { char *et; +/*JP unsigned maxelen = BUFSZ - sizeof("You feel the words: \"\". "); +*/ + unsigned maxelen = BUFSZ - sizeof("‚ ‚È‚½‚ÍŽŸ‚̂悤‚ÉŠ´‚¶‚½Fuv"); if (strlen(ep->engr_txt) > maxelen) { (void) strncpy(buf, ep->engr_txt, (int) maxelen); buf[maxelen] = '\0'; et = buf; } else et = ep->engr_txt; +/*JP You("%s: \"%s\".", (Blind) ? "feel the words" : "read", et); +*/ + You("%sFu%sv", (Blind) ? "ŽŸ‚̂悤‚ÉŠ´‚¶‚½" : "“Ç‚ñ‚¾", et); if (context.run > 1) nomul(0); } @@ -414,7 +521,7 @@ int x, y; } /* - * freehand - returns true if player has a free hand + * freehand - returns true if player has a free hand */ int freehand() @@ -429,30 +536,30 @@ static NEARDATA const char styluses[] = { ALL_CLASSES, ALLOW_NONE, RING_CLASS, 0 }; /* Mohs' Hardness Scale: - * 1 - Talc 6 - Orthoclase - * 2 - Gypsum 7 - Quartz - * 3 - Calcite 8 - Topaz - * 4 - Fluorite 9 - Corundum - * 5 - Apatite 10 - Diamond + * 1 - Talc 6 - Orthoclase + * 2 - Gypsum 7 - Quartz + * 3 - Calcite 8 - Topaz + * 4 - Fluorite 9 - Corundum + * 5 - Apatite 10 - Diamond * * Since granite is an igneous rock hardness ~ 7, anything >= 8 should * probably be able to scratch the rock. * Devaluation of less hard gems is not easily possible because obj struct * does not contain individual oc_cost currently. 7/91 * - * steel - 5-8.5 (usu. weapon) - * diamond - 10 * jade - 5-6 (nephrite) - * ruby - 9 (corundum) * turquoise - 5-6 - * sapphire - 9 (corundum) * opal - 5-6 - * topaz - 8 * glass - ~5.5 - * emerald - 7.5-8 (beryl) * dilithium - 4-5?? - * aquamarine - 7.5-8 (beryl) * iron - 4-5 - * garnet - 7.25 (var. 6.5-8) * fluorite - 4 - * agate - 7 (quartz) * brass - 3-4 - * amethyst - 7 (quartz) * gold - 2.5-3 - * jasper - 7 (quartz) * silver - 2.5-3 - * onyx - 7 (quartz) * copper - 2.5-3 - * moonstone - 6 (orthoclase) * amber - 2-2.5 + * steel - 5-8.5 (usu. weapon) + * diamond - 10 * jade - 5-6 (nephrite) + * ruby - 9 (corundum) * turquoise - 5-6 + * sapphire - 9 (corundum) * opal - 5-6 + * topaz - 8 * glass - ~5.5 + * emerald - 7.5-8 (beryl) * dilithium - 4-5?? + * aquamarine - 7.5-8 (beryl) * iron - 4-5 + * garnet - 7.25 (var. 6.5-8) * fluorite - 4 + * agate - 7 (quartz) * brass - 3-4 + * amethyst - 7 (quartz) * gold - 2.5-3 + * jasper - 7 (quartz) * silver - 2.5-3 + * onyx - 7 (quartz) * copper - 2.5-3 + * moonstone - 6 (orthoclase) * amber - 2-2.5 */ /* return 1 if action took 1 (or more) moves, 0 if error or aborted */ @@ -497,7 +604,10 @@ doengrave() if (u.uswallow) { if (is_animal(u.ustuck->data)) { +/*JP pline("What would you write? \"Jonah was here\"?"); +*/ + pline("‰½‚ð‘‚­‚ñ‚¾‚¢Huƒˆƒi‚Í‚±‚±‚É‚¢‚évH"); return 0; } else if (is_whirly(u.ustuck->data)) { cant_reach_floor(u.ux, u.uy, FALSE, FALSE); @@ -505,22 +615,37 @@ doengrave() } else jello = TRUE; } else if (is_lava(u.ux, u.uy)) { +/*JP You_cant("write on the %s!", surface(u.ux, u.uy)); +*/ + You("%s‚É“Í‚©‚È‚¢D", surface(u.ux,u.uy)); return 0; } else if (is_pool(u.ux, u.uy) || IS_FOUNTAIN(levl[u.ux][u.uy].typ)) { +/*JP You_cant("write on the %s!", surface(u.ux, u.uy)); +*/ + You("%s‚ɂ͏‘‚¯‚È‚¢I", surface(u.ux, u.uy)); return 0; } if (Is_airlevel(&u.uz) || Is_waterlevel(&u.uz) /* in bubble */) { +/*JP You_cant("write in thin air!"); +*/ + You("‹ó’†‚ɂ͏‘‚¯‚È‚¢I"); return 0; } else if (!accessible(u.ux, u.uy)) { /* stone, tree, wall, secret corridor, pool, lava, bars */ +/*JP You_cant("write here."); +*/ + You_cant("‚±‚±‚ɂ͏‘‚¯‚È‚¢D"); return 0; } if (cantwield(youmonst.data)) { +/*JP You_cant("even hold anything!"); +*/ + You("‰½‚©‚ðŽ‚Â‚±‚Æ‚·‚ç‚Å‚«‚È‚¢I"); return 0; } if (check_capacity((char *) 0)) @@ -544,13 +669,22 @@ doengrave() * while both your hands are tied up. */ if (!freehand() && otmp != uwep && !otmp->owornmask) { +/*JP You("have no free %s to write with!", body_part(HAND)); +*/ + pline("%s‚ÌŽ©—R‚ªŒø‚©‚È‚¢‚̂ŏ‘‚¯‚È‚¢I", body_part(HAND)); return 0; } if (jello) { +/*JP You("tickle %s with %s.", mon_nam(u.ustuck), writer); +*/ + You("%s‚Å%s‚ð‚­‚·‚®‚Á‚½D", writer, mon_nam(u.ustuck)); +/*JP Your("message dissolves..."); +*/ + Your("ƒƒbƒZ[ƒW‚͏Á‚¦‚½DDD"); return 0; } if (otmp->oclass != WAND_CLASS && !can_reach_floor(TRUE)) { @@ -558,17 +692,26 @@ doengrave() return 0; } if (IS_ALTAR(levl[u.ux][u.uy].typ)) { +/*JP You("make a motion towards the altar with %s.", writer); +*/ + You("%s‚ðŽg‚Á‚čՒd‚ɏ‘‚±‚¤‚Æ‚µ‚½D", writer); altar_wrath(u.ux, u.uy); return 0; } if (IS_GRAVE(levl[u.ux][u.uy].typ)) { if (otmp == &zeroobj) { /* using only finger */ +/*JP You("would only make a small smudge on the %s.", +*/ + You("‚Í%s‚ɏ¬‚³‚È‚µ‚Ý‚ð‚‚¯‚邱‚Æ‚µ‚©‚Å‚«‚È‚©‚Á‚½D", surface(u.ux, u.uy)); return 0; } else if (!levl[u.ux][u.uy].disturbed) { +/*JP You("disturb the undead!"); +*/ + You("•sŽ€‚ÌŽÒ‚Ì–°‚è‚ð–W‚°‚½I"); levl[u.ux][u.uy].disturbed = 1; (void) makemon(&mons[PM_GHOUL], u.ux, u.uy, NO_MM_FLAGS); exercise(A_WIS, FALSE); @@ -603,15 +746,23 @@ doengrave() /* Objects too large to engrave with */ case BALL_CLASS: case ROCK_CLASS: +/*JP You_cant("engrave with such a large object!"); +*/ + pline("‚»‚ñ‚È‘å‚«‚È‚à‚Ì‚ðŽg‚Á‚Ä•¶Žš‚ð‚ß‚È‚¢I"); ptext = FALSE; break; /* Objects too silly to engrave with */ case FOOD_CLASS: case SCROLL_CLASS: case SPBOOK_CLASS: +#if 0 /*JP*/ pline("%s would get %s.", Yname2(otmp), is_ice(u.ux, u.uy) ? "all frosty" : "too dirty"); +#else + Your("%s‚Í%s‚È‚Á‚½D", xname(otmp), + is_ice(u.ux,u.uy) ? "‘š‚¾‚炯‚É" : "‰˜‚È‚­"); +#endif ptext = FALSE; break; case RANDOM_CLASS: /* This should mean fingers */ @@ -653,17 +804,26 @@ doengrave() */ case WAN_STRIKING: Strcpy(post_engr_text, +/*JP "The wand unsuccessfully fights your attempt to write!"); +*/ + "‚ ‚È‚½‚ª‘‚±‚¤‚Æ‚·‚é‚Əñ‚Í’ïR‚µ‚½I"); break; case WAN_SLOW_MONSTER: if (!Blind) { +/*JP Sprintf(post_engr_text, "The bugs on the %s slow down!", +*/ + Sprintf(post_engr_text, "%s‚̏ã‚Ì’Ž‚Ì“®‚«‚ª’x‚­‚È‚Á‚½I", surface(u.ux, u.uy)); } break; case WAN_SPEED_MONSTER: if (!Blind) { +/*JP Sprintf(post_engr_text, "The bugs on the %s speed up!", +*/ + Sprintf(post_engr_text, "%s‚̏ã‚Ì’Ž‚Ì“®‚«‚ª‘¬‚­‚È‚Á‚½I", surface(u.ux, u.uy)); } break; @@ -687,7 +847,10 @@ doengrave() ptext = TRUE; if (!Blind) { Sprintf(post_engr_text, +/*JP "The %s is riddled by bullet holes!", +*/ + "%s‚ÍŽU’e‚ōׂ©‚¢ŒŠ‚¾‚炯‚É‚È‚Á‚½I", surface(u.ux, u.uy)); } break; @@ -695,21 +858,30 @@ doengrave() case WAN_SLEEP: case WAN_DEATH: if (!Blind) { +/*JP Sprintf(post_engr_text, "The bugs on the %s stop moving!", +*/ + Sprintf(post_engr_text, "%s‚̏ã‚Ì’Ž‚Ì“®‚«‚ªŽ~‚Ü‚Á‚½I", surface(u.ux, u.uy)); } break; case WAN_COLD: if (!Blind) Strcpy(post_engr_text, +/*JP "A few ice cubes drop from the wand."); +*/ + "•X‚Ì‚©‚¯‚炪ñ‚©‚炱‚Ú‚ê—Ž‚¿‚½D"); if (!oep || (oep->engr_type != BURN)) break; case WAN_CANCELLATION: case WAN_MAKE_INVISIBLE: if (oep && oep->engr_type != HEADSTONE) { if (!Blind) +/*JP pline_The("engraving on the %s vanishes!", +*/ + pline("%s‚̏ã‚Ì•¶Žš‚͏Á‚¦‚½I", surface(u.ux, u.uy)); dengr = TRUE; } @@ -717,7 +889,10 @@ doengrave() case WAN_TELEPORTATION: if (oep && oep->engr_type != HEADSTONE) { if (!Blind) +/*JP pline_The("engraving on the %s vanishes!", +*/ + pline("%s‚̏ã‚Ì•¶Žš‚͏Á‚¦‚½I", surface(u.ux, u.uy)); teleengr = TRUE; } @@ -728,9 +903,13 @@ doengrave() type = ENGRAVE; if (!objects[otmp->otyp].oc_name_known) { if (flags.verbose) +/*JP pline("This %s is a wand of digging!", xname(otmp)); +*/ + pline("‚±‚ê‚ÍŒŠŒ@‚è‚̏ñ‚¾I"); doknown = TRUE; } +#if 0 /*JP*/ Strcpy(post_engr_text, Blind ? "You hear drilling!" @@ -742,6 +921,19 @@ doengrave() == DRAWBRIDGE_DOWN) ? "Splinters fly up from the bridge." : "Gravel flies up from the floor."); +#else + Strcpy(post_engr_text, + Blind + ? "ŒŠ‚ªŠJ‚­‰¹‚ð•·‚¢‚½I" + : IS_GRAVE(levl[u.ux][u.uy].typ) + ? "•æÎ‚©‚ç”j•Ð‚ª”ò‚ÑŽU‚Á‚½D" + : is_ice(u.ux,u.uy) + ? "•X‚Ì•\–Ê‚©‚ç•X‚Ì‚©‚¯‚炪”ò‚ÑŽU‚Á‚½D" + : (level.locations[u.ux][u.uy].typ + == DRAWBRIDGE_DOWN) + ? "”j•Ð‚ª‹´‚©‚ç•‘‚¢‚ ‚ª‚Á‚½D" + : "»—˜‚ª°‚©‚ç”ò‚ÑŽU‚Á‚½D"); +#endif break; /* type = BURN wands */ case WAN_FIRE: @@ -749,25 +941,42 @@ doengrave() type = BURN; if (!objects[otmp->otyp].oc_name_known) { if (flags.verbose) +/*JP pline("This %s is a wand of fire!", xname(otmp)); +*/ + pline("‚±‚ê‚͉Š‚̏ñ‚¾I"); doknown = TRUE; } +#if 0 /*JP*/ Strcpy(post_engr_text, Blind ? "You feel the wand heat up." : "Flames fly from the wand."); +#else + Strcpy(post_engr_text, Blind ? "ñ‚ª’g‚©‚­‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½D" + : "‰Š‚ªñ‚©‚ç”ò‚ÑŽU‚Á‚½D"); +#endif break; case WAN_LIGHTNING: ptext = TRUE; type = BURN; if (!objects[otmp->otyp].oc_name_known) { if (flags.verbose) +/*JP pline("This %s is a wand of lightning!", xname(otmp)); +*/ + pline("‚±‚ê‚Í—‹‚̏ñ‚¾I"); doknown = TRUE; } if (!Blind) { +/*JP Strcpy(post_engr_text, "Lightning arcs from the wand."); +*/ + Strcpy(post_engr_text, "‰Î‰Ô‚ªñ‚©‚ç”ò‚ÑŽU‚Á‚½D"); doblind = TRUE; } else +/*JP Strcpy(post_engr_text, "You hear crackling!"); +*/ + Strcpy(post_engr_text, "ƒpƒ`ƒpƒ`‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½I"); break; /* type = MARK wands */ @@ -784,7 +993,10 @@ doengrave() zapwand = TRUE; /* empty wand just doesn't write */ else +/*JP pline_The("wand is too worn out to engrave."); +*/ + pline_The("ñ‚Í•¶Žš‚ð‚Þ‚É‚ÍŽg‚¢‚·‚¬‚Ä‚¢‚éD"); } } break; @@ -794,20 +1006,29 @@ doengrave() if ((int) otmp->spe > -3) type = ENGRAVE; else +/*JP pline("%s too dull for engraving.", Yobjnam2(otmp, "are")); +*/ + pline("%s‚͐n‚ªƒ{ƒƒ{ƒ‚ŁC•¶Žš‚𒤂ê‚È‚¢D", xname(otmp)); } break; case TOOL_CLASS: if (otmp == ublindf) { pline( +/*JP "That is a bit difficult to engrave with, don't you think?"); +*/ + "‚¿‚å‚Á‚Æ‚»‚ê‚Å’¤‚é‚Ì‚Í‘å•Ï‚¾‚낤C‚»‚¤Žv‚í‚È‚¢H"); return 0; } switch (otmp->otyp) { case MAGIC_MARKER: if (otmp->spe <= 0) +/*JP Your("marker has dried out."); +*/ + Your("ƒ}[ƒJ‚ÍŠ£‚«‚«‚Á‚½D"); else type = MARK; break; @@ -821,16 +1042,32 @@ doengrave() if (is_wet_towel(otmp)) dry_a_towel(otmp, -1, TRUE); if (!Blind) +/*JP You("wipe out the message here."); +*/ + You("ƒƒbƒZ[ƒW‚ð@‚«‚Æ‚Á‚½D"); else +#if 0 /*JP*/ pline("%s %s.", Yobjnam2(otmp, "get"), is_ice(u.ux, u.uy) ? "frosty" : "dusty"); +#else + pline("%s‚Í%s‚É‚È‚Á‚½D", xname(otmp), + is_ice(u.ux,u.uy) ? "‘š‚¾‚炯" : "‚Ù‚±‚è‚Ü‚Ý‚ê"); +#endif dengr = TRUE; } else +/*JP pline("%s can't wipe out this engraving.", Yname2(otmp)); +*/ + pline("‚±‚Ì•¶Žš‚Í%s‚ł͐@‚«‚Æ‚ê‚È‚¢D", xname(otmp)); else +#if 0 /*JP*/ pline("%s %s.", Yobjnam2(otmp, "get"), is_ice(u.ux, u.uy) ? "frosty" : "dusty"); +#else + pline("%s‚Í%s‚É‚È‚Á‚½D", xname(otmp), + is_ice(u.ux,u.uy) ? "‘š‚¾‚炯" : "‚Ù‚±‚è‚Ü‚Ý‚ê"); +#endif break; default: break; @@ -839,7 +1076,10 @@ doengrave() case VENOM_CLASS: if (wizard) { +/*JP pline("Writing a poison pen letter??"); +*/ + pline("‚ӂށD‚±‚ꂱ‚»–{“–‚̓ŐゾD"); break; } /*FALLTHRU*/ @@ -881,16 +1121,30 @@ doengrave() /* Something has changed the engraving here */ if (*buf) { make_engr_at(u.ux, u.uy, buf, moves, type); +/*JP pline_The("engraving now reads: \"%s\".", buf); +*/ + pline("‚܂ꂽ•¶Žš‚ð“Ç‚ñ‚¾Fu%svD", buf); ptext = FALSE; } if (zapwand && (otmp->spe < 0)) { +#if 0 /*JP*/ pline("%s %sturns to dust.", The(xname(otmp)), Blind ? "" : "glows violently, then "); +#else + pline("%s‚Í%s‚¿‚è‚Æ‚È‚Á‚½D", xname(otmp), + Blind ? "" : "Œƒ‚µ‚­‹P‚«C"); +#endif if (!IS_GRAVE(levl[u.ux][u.uy].typ)) +#if 0 /*JP*/ You( "are not going to get anywhere trying to write in the %s with your dust.", is_ice(u.ux, u.uy) ? "frost" : "dust"); +#else + You( + "o‚Å%s‚ɉ½‚©‘‚±‚¤‚Æ‚µ‚½‚ªC‚Å‚«‚È‚©‚Á‚½D", + is_ice(u.ux,u.uy) ? "•X" : "‚Ù‚±‚è"); +#endif useup(otmp); otmp = 0; /* wand is now gone */ ptext = FALSE; @@ -915,7 +1169,10 @@ doengrave() } else if (type == oep->engr_type && (!Blind || oep->engr_type == BURN || oep->engr_type == ENGRAVE)) { +/*JP c = yn_function("Do you want to add to the current engraving?", +*/ + c = yn_function("‰½‚©‘‚«‰Á‚¦‚Ü‚·‚©H", ynqchars, 'y'); if (c == 'q') { pline1(Never_mind); @@ -928,12 +1185,21 @@ doengrave() || oep->engr_type == ENGR_BLOOD || oep->engr_type == MARK) { if (!Blind) { +#if 0 /*JP*/ You("wipe out the message that was %s here.", (oep->engr_type == DUST) ? "written in the dust" : (oep->engr_type == ENGR_BLOOD) ? "scrawled in blood" : "written"); +#else + You("%sƒƒbƒZ[ƒW‚ð@‚«‚Æ‚Á‚½D", + (oep->engr_type == DUST) + ? "‚Ù‚±‚è‚ɏ‘‚©‚ê‚Ä‚¢‚é" + : (oep->engr_type == BLOOD) + ? "ŒŒ•¶Žš‚Å‚È‚®‚菑‚«‚³‚ê‚Ä‚¢‚é" + : "‘‚©‚ê‚Ä‚¢‚é"); +#endif del_engr(oep); oep = (struct engr *) 0; } else @@ -941,15 +1207,25 @@ doengrave() */ eow = TRUE; } else if (type == DUST || type == MARK || type == ENGR_BLOOD) { +#if 0 /*JP*/ You("cannot wipe out the message that is %s the %s here.", oep->engr_type == BURN ? (is_ice(u.ux, u.uy) ? "melted into" : "burned into") : "engraved in", surface(u.ux, u.uy)); +#else + You("%sƒƒbƒZ[ƒW‚ð@‚«‚Æ‚ê‚È‚©‚Á‚½D", + oep->engr_type == BURN + ? (is_ice(u.ux, u.uy) ? "‚Ü‚ê‚Ä‚¢‚é" : "Ä‚«•t‚¯‚ç‚ê‚Ä‚¢‚é") + : "‚Ü‚ê‚Ä‚¢‚é"); +#endif return 1; } else if (type != oep->engr_type || c == 'n') { if (!Blind || can_reach_floor(TRUE)) +/*JP You("will overwrite the current message."); +*/ + You("ƒƒbƒZ[ƒW‚ðã‘‚«‚µ‚悤‚Æ‚µ‚½D"); eow = TRUE; } } @@ -958,42 +1234,84 @@ doengrave() eloc = surface(u.ux, u.uy); switch (type) { default: +/*JP everb = (oep && !eow ? "add to the weird writing on" +*/ + everb = (oep && !eow ? "Šï–­‚È•¶Žš—ñ‚ɏ‘‚«‰Á‚¦‚é" +/*JP : "write strangely on"); +*/ + : "Šï–­‚È•¶Žš—ñ‚ð‘‚­"); break; case DUST: +/*JP everb = (oep && !eow ? "add to the writing in" : "write in"); +*/ + everb = (oep && !eow ? "‘‚«‰Á‚¦‚é" : "‘‚­"); +/*JP eloc = is_ice(u.ux, u.uy) ? "frost" : "dust"; +*/ + eloc = is_ice(u.ux,u.uy) ? "‘š" : "‚Ù‚±‚è"; break; case HEADSTONE: +/*JP everb = (oep && !eow ? "add to the epitaph on" : "engrave on"); +*/ + everb = (oep && !eow ? "•æ”è–Á‚ð‚Ý‰Á‚¦‚é" : "•æ”è–Á‚ð‚Þ"); break; case ENGRAVE: +/*JP everb = (oep && !eow ? "add to the engraving in" : "engrave in"); +*/ + everb = (oep && !eow ? "‚݉Á‚¦‚é" : "‚Þ"); break; case BURN: +#if 0 /*JP*/ everb = (oep && !eow ? (is_ice(u.ux, u.uy) ? "add to the text melted into" : "add to the text burned into") : (is_ice(u.ux, u.uy) ? "melt into" : "burn into")); +#else + everb = (oep && !eow + ? ( is_ice(u.ux,u.uy) ? "‚݉Á‚¦‚é" + : "”R‚¦‚Ä‚¢‚镶Žš‚ɏ‘‚«‰Á‚¦‚é") + : ( is_ice(u.ux,u.uy) ? "‚Þ" : "Äˆó‚ð‚¢‚ê‚é")); +#endif break; case MARK: +/*JP everb = (oep && !eow ? "add to the graffiti on" : "scribble on"); +*/ + everb = (oep && !eow ? "—Ž‘‚ɏ‘‚«‰Á‚¦‚é" : "‚Í‚µ‚菑‚«‚·‚é"); break; case ENGR_BLOOD: +/*JP everb = (oep && !eow ? "add to the scrawl on" : "scrawl on"); +*/ + everb = (oep && !eow ? "‚È‚®‚菑‚«‚ɏ‘‚«‰Á‚¦‚é" : "‚È‚®‚菑‚«‚·‚é"); break; } /* Tell adventurer what is going on */ if (otmp != &zeroobj) +/*JP You("%s the %s with %s.", everb, eloc, doname(otmp)); +*/ + You("%s‚Å%s‚É%sD", doname(otmp), eloc, jpast(everb)); else +#if 0 /*JP*/ You("%s the %s with your %s.", everb, eloc, makeplural(body_part(FINGER))); +#else + You("%s‚Å%s‚É%sD", body_part(FINGER), + eloc, jpast(everb)); +#endif /* Prompt for engraving! */ +/*JP Sprintf(qbuf, "What do you want to %s the %s here?", everb, eloc); +*/ + Sprintf(qbuf,"%s‚ɉ½‚Æ%s‚©H", eloc, jpolite(everb)); getlin(qbuf, ebuf); /* convert tabs to spaces and condense consecutive spaces to one */ mungspaces(ebuf); @@ -1007,8 +1325,12 @@ doengrave() if (len == 0 || index(ebuf, '\033')) { if (zapwand) { if (!Blind) +#if 0 /*JP*/ pline("%s, then %s.", Tobjnam(otmp, "glow"), otense(otmp, "fade")); +#else + pline("%s‚Í‹P‚¢‚½‚ªC‚·‚®‚ɏÁ‚¦‚½D", xname(otmp)); +#endif return 1; } else { pline1(Never_mind); @@ -1028,8 +1350,19 @@ doengrave() if (((type == DUST || type == ENGR_BLOOD) && !rn2(25)) || (Blind && !rn2(11)) || (Confusion && !rn2(7)) || (Stunned && !rn2(4)) || (Hallucination && !rn2(2))) +#if 0 /*JP*/ *sp = ' ' + rnd(96 - 2); /* ASCII '!' thru '~' (excludes ' ' and DEL) */ +#else /*JP:“ú–{Œê‚щƒ“ƒ_ƒ€‰» */ + { + if(is_kanji1(ebuf, sp-ebuf)) + jrndm_replace(sp); + else if(is_kanji2(ebuf, sp-ebuf)) + jrndm_replace(sp-1); + else + *sp = '!' + rn2(93); /* ASCII-code only */ + } +#endif } /* Previous engraving is overwritten */ @@ -1045,12 +1378,18 @@ doengrave() default: multi = -(len / 10); if (multi) +/*JP nomovemsg = "You finish your weird engraving."; +*/ + nomovemsg = "‚ ‚È‚½‚ÍŠï–­‚ȍ‚Ý‚ðI‚¦‚½D"; break; case DUST: multi = -(len / 10); if (multi) +/*JP nomovemsg = "You finish writing in the dust."; +*/ + nomovemsg = "‚ ‚È‚½‚Í‚Ù‚±‚è‚ɏ‘‚«I‚¦‚½D"; break; case HEADSTONE: case ENGRAVE: @@ -1064,7 +1403,10 @@ doengrave() * to engrave "Elbereth" all at once. * However, you can engrave "Elb", then "ere", then "th". */ +/*JP pline("%s dull.", Yobjnam2(otmp, "get")); +*/ + Your("%s‚͐n‚±‚ڂꂵ‚½D", xname(otmp)); costly_alteration(otmp, COST_DEGRD); if (len > maxelen) { multi = -maxelen; @@ -1077,21 +1419,33 @@ doengrave() multi = -len; } if (multi) +/*JP nomovemsg = "You finish engraving."; +*/ + nomovemsg = "‚ ‚È‚½‚͍‚ݏI‚¦‚½D"; break; case BURN: multi = -(len / 10); if (multi) nomovemsg = is_ice(u.ux, u.uy) +/*JP ? "You finish melting your message into the ice." +*/ + ? "•X‚ÖƒƒbƒZ[ƒW‚ð‚ÝI‚¦‚½D" +/*JP : "You finish burning your message into the floor."; +*/ + : "°‚ÖƒƒbƒZ[ƒW‚ðÄ‚«‚¢‚êI‚¦‚½D"; break; case MARK: multi = -(len / 10); if (otmp->otyp == MAGIC_MARKER) { maxelen = otmp->spe * 2; /* one charge / 2 letters */ if (len > maxelen) { +/*JP Your("marker dries out."); +*/ + Your("ƒ}[ƒJ‚ÍŠ£‚«‚«‚Á‚½D"); otmp->spe = 0; multi = -(maxelen / 10); } else if (len > 1) @@ -1100,12 +1454,18 @@ doengrave() otmp->spe -= 1; /* Prevent infinite graffiti */ } if (multi) +/*JP nomovemsg = "You finish defacing the dungeon."; +*/ + nomovemsg = "‚ ‚È‚½‚Í–À‹{‚Ö‚Ì—Ž‘‚ð‘‚«I‚¦‚½D"; break; case ENGR_BLOOD: multi = -(len / 10); if (multi) +/*JP nomovemsg = "You finish scrawling."; +*/ + nomovemsg = "‚Í‚µ‚菑‚«‚ð‘‚«I‚¦‚½D"; break; } @@ -1115,10 +1475,20 @@ doengrave() if (*sp == ' ') maxelen--; if (!maxelen && *sp) { +#if 1 /*JP*//*Š¿Žš‚Ì1ƒoƒCƒg–Ú‚¾‚¯‚ªŽc‚ç‚È‚¢‚悤‚É*/ + if(is_kanji2(ebuf, sp - ebuf)) + --sp; +#endif *sp = '\0'; if (multi) +/*JP nomovemsg = "You cannot write any more."; +*/ + nomovemsg = "‚±‚êˆÈã‰½‚à‘‚¯‚È‚©‚Á‚½D"; +/*JP You("are only able to write \"%s\".", ebuf); +*/ + You("u%sv‚Æ‚Ü‚Å‚µ‚©‘‚¯‚È‚©‚Á‚½D", ebuf); } } @@ -1131,7 +1501,10 @@ doengrave() if (post_engr_text[0]) pline("%s", post_engr_text); if (doblind && !resists_blnd(&youmonst)) { +/*JP You("are blinded by the flash!"); +*/ + You("‚܂΂䂢Œõ‚Å–Ú‚ª‚­‚ç‚ñ‚¾I"); make_blinded((long) rnd(50), FALSE); if (!Blind) Your1(vision_clears); diff --git a/src/exper.c b/src/exper.c index 06456e0..595068d 100644 --- a/src/exper.c +++ b/src/exper.c @@ -196,7 +196,10 @@ const char *drainer; /* cause of death, if drain should be fatal */ return; if (u.ulevel > 1) { +/*JP pline("%s level %d.", Goodbye(), u.ulevel--); +*/ + pline("‚³‚悤‚Ȃ烌ƒxƒ‹%dD", u.ulevel--); /* remove intrinsic abilities */ adjabil(u.ulevel + 1, u.ulevel); reset_rndmonst(NON_PM); /* new monster selection */ @@ -264,7 +267,10 @@ boolean incr; /* true iff via incremental experience growth */ int hpinc, eninc; if (!incr) +/*JP You_feel("more experienced."); +*/ + You("‚æ‚èŒoŒ±‚ð‚‚ñ‚¾‚悤‚È‹C‚ª‚µ‚½D"); /* increase hit points (when polymorphed, do monster form first in order to retain normal human/whatever increase for later) */ @@ -295,7 +301,10 @@ boolean incr; /* true iff via incremental experience growth */ ++u.ulevel; if (u.ulevelmax < u.ulevel) u.ulevelmax = u.ulevel; +/*JP pline("Welcome to experience level %d.", u.ulevel); +*/ + pline("ƒŒƒxƒ‹%d‚ɂ悤‚±‚»D", u.ulevel); adjabil(u.ulevel - 1, u.ulevel); /* give new intrinsics */ reset_rndmonst(NON_PM); /* new monster selection */ } diff --git a/src/explode.c b/src/explode.c index 08a9a70..7b4821f 100644 --- a/src/explode.c +++ b/src/explode.c @@ -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 = "–‚–@‚Ì•—"; 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) ? "”R‚¦‚Ä‚¢‚é–û" + : (olet == SCROLL_CLASS) ? "‰Î’Œ" : "‰Î‚Ì‹Ê"; +#endif /* fire damage, not physical damage */ adtyp = AD_FIRE; break; case 2: +/*JP str = "ball of cold"; +*/ + str = "•X‚Ì‹Ê"; adtyp = AD_COLD; break; case 4: +#if 0 /*JP*/ str = (olet == WAND_CLASS) ? "death field" : "disintegration field"; +#else + str = (olet == WAND_CLASS) ? "Ž€‚Ì•—" + : "•ª‰ð‚Ì•—"; +#endif adtyp = AD_DISN; break; case 5: +/*JP str = "ball of lightning"; +*/ + str = "—‹‹Ê"; adtyp = AD_ELEC; break; case 6: +/*JP str = "poison gas cloud"; +*/ + str = "“ł̉_"; adtyp = AD_DRST; break; case 7: +/*JP str = "splash of acid"; +*/ + str = "Ž_‚Ì‚µ‚Ô‚«"; 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 = "”š”­"; generic = TRUE; } if (!Deaf && olet != SCROLL_CLASS) +/*JP You_hear("a blast."); +*/ + You_hear("”š”­‰¹‚ð•·‚¢‚½D"); } if (dam) @@ -320,64 +356,121 @@ int expltype; if (is_animal(u.ustuck->data)) { switch (adtyp) { case AD_FIRE: +/*JP adj = "heartburn"; +*/ + adj = "”R‚¦‚½"; break; case AD_COLD: +/*JP adj = "chilly"; +*/ + adj = "“€‚炳‚ꂽ"; break; case AD_DISN: if (olet == WAND_CLASS) +/*JP adj = "irradiated by pure energy"; +*/ + adj = "ò‰»‚̗͂𗁂т½"; else +/*JP adj = "perforated"; +*/ + adj = "ŒŠ‚ð‚ ‚¯‚ç‚ꂽ"; break; case AD_ELEC: +/*JP adj = "shocked"; +*/ + adj = "“dŒ‚‚ð‚­‚ç‚Á‚½"; break; case AD_DRST: +/*JP adj = "poisoned"; +*/ + adj = "“Å‚ð‚­‚ç‚Á‚½"; break; case AD_ACID: +/*JP adj = "an upset stomach"; +*/ + adj = "Ž_‚ð‚­‚ç‚Á‚½"; break; default: +/*JP adj = "fried"; +*/ + adj = "ƒpƒŠƒpƒŠ‚É‚È‚Á‚½"; break; } +/*JP pline("%s gets %s!", Monnam(u.ustuck), adj); +*/ + pline("%s‚Í%sI", Monnam(u.ustuck), adj); } else { switch (adtyp) { case AD_FIRE: +/*JP adj = "toasted"; +*/ + adj = "Å‚°‚½"; break; case AD_COLD: +/*JP adj = "chilly"; +*/ + adj = "“€‚Á‚½"; break; case AD_DISN: if (olet == WAND_CLASS) +/*JP adj = "overwhelmed by pure energy"; +*/ + adj = "ò‰»‚̗͂𗁂т½"; else +/*JP adj = "perforated"; +*/ + adj = "ŒŠ‚ð‚ ‚¯‚ç‚ꂽ"; break; case AD_ELEC: +/*JP adj = "shocked"; +*/ + adj = "“dŒ‚‚ð‚­‚ç‚Á‚½"; break; case AD_DRST: +/*JP adj = "intoxicated"; +*/ + adj = "“Å‚ð‚­‚ç‚Á‚½"; break; case AD_ACID: +/*JP adj = "burned"; +*/ + adj = "Ž_‚ð‚­‚ç‚Á‚½"; break; default: +/*JP adj = "fried"; +*/ + adj = "ƒpƒŠƒpƒŠ‚É‚È‚Á‚½"; break; } +/*JP pline("%s gets slightly %s!", Monnam(u.ustuck), adj); +*/ + pline("%s‚͏­‚µ‚¾‚¯%sI", 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‚Í%s‚ɂ‚‚܂ꂽI", 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: == */ if (cansee(i + x - 1, j + y - 1) || inside_engulfer) +/*JP pline("%s resists the %s!", Monnam(mtmp), str); +*/ + pline("%s‚Í%s‚É’ïR‚µ‚½I", 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‚ɂ‚‚܂ꂽI", 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("‚‚©‚È‚¢I"); } 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, "‚Å"); +#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, "Ž©•ªŽ©g‚Ì%s‚ɂ‚‚܂ê‚Ä", + str); +#endif } else { +#if 0 /*JP*//* an ‚ð‚‚¯‚é‚©‚Ç‚¤‚©‚ÍŠÖŒW‚È‚¢ */ 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, "‚Å"); +#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 + ? "”R‚â‚·" + : adtyp == AD_COLD + ? "•²X‚É‚·‚é" + : adtyp == AD_DISN ? "•²Ó‚·‚é" + : "”j‰ó‚·‚é", + 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‚͈ꕔ•ª‚ªÓ‚¯‚½D",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‚Í‚±‚È‚²‚È‚É‚È‚Á‚½D",xname(otmp)); (void) break_statue(otmp); +#ifndef FIX_BUG_C340_2 place_object(otmp, sx, sy); /* put fragments on floor */ +#endif } used_up = TRUE; diff --git a/src/files.c b/src/files.c index 1b74a56..dcc5663 100644 --- a/src/files.c +++ b/src/files.c @@ -255,6 +255,13 @@ int bufsz; *op++ = *sp; *op = '\0'; cnt++; +#if 1 /*JP*/ + } else if (is_kanji1(s, sp - s)) { + *op++ = *sp++; + *op++ = *sp; + *op = '\0'; + cnt += 2; +#endif } else { (void) sprintf(op, "%c%02X", quotechar, *sp); op += 3; @@ -541,8 +548,13 @@ char errbuf[]; settle for `lock' instead of `fq_lock' because the latter might end up being too big for nethack's BUFSZ */ if (fd < 0 && errbuf) +#if 0 /*JP*/ Sprintf(errbuf, "Cannot open file \"%s\" for level %d (errno %d).", lock, lev, errno); +#else + Sprintf(errbuf, "’n‰º%dŠK‚̃tƒ@ƒCƒ‹\"%s\"‚ðŠJ‚¯‚È‚¢(errno %d)D", + lev, lock, errno); +#endif return fd; } @@ -1946,6 +1958,16 @@ int src; return fp; #else /* should be only UNIX left */ envp = nh_getenv("HOME"); +#if 1 /*JP*//*".jnethackrc"‚ð—Dæ‚µ‚ēǂݍž‚Ý*/ + if (!envp) + Strcpy(tmp_config, ".jnethackrc"); + else + Sprintf(tmp_config, "%s/%s", envp, ".jnethackrc"); + + (void) strncpy(lastconfigfile, tmp_config, BUFSZ - 1); + if ((fp = fopenp(lastconfigfile, "r")) != (FILE *) 0) + return fp; +#endif if (!envp) Strcpy(tmp_config, ".nethackrc"); else diff --git a/src/fountain.c b/src/fountain.c index 71c9467..ff0c079 100644 --- a/src/fountain.c +++ b/src/fountain.c @@ -4,6 +4,11 @@ /* Code for drinking from fountains. */ +/* 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" STATIC_DCL void NDECL(dowatersnakes); @@ -18,12 +23,18 @@ void floating_above(what) const char *what; { +/*JP const char *umsg = "are floating high above the %s."; +*/ + const char *umsg = "%s‚Ì—y‚©ã•û‚É•‚‚¢‚Ä‚¢‚éD"; if (u.utrap && (u.utraptype == TT_INFLOOR || u.utraptype == TT_LAVA)) { /* when stuck in floor (not possible at fountain or sink location, so must be attempting to move down), override the usual message */ +/*JP umsg = "are trapped in the %s."; +*/ + umsg = "%s‚ɂ‚©‚Ü‚Á‚Ä‚¢‚éD"; what = surface(u.ux, u.uy); /* probably redundant */ } You(umsg, what); @@ -38,17 +49,28 @@ dowatersnakes() if (!(mvitals[PM_WATER_MOCCASIN].mvflags & G_GONE)) { if (!Blind) +#if 0 /*JP*/ pline("An endless stream of %s pours forth!", Hallucination ? makeplural(rndmonnam(NULL)) : "snakes"); +#else + pline("%s‚ª‚Ç‚Ç‚Á‚Æ—¬‚êo‚Ä‚«‚½I", + Hallucination ? rndmonnam(NULL) : "ŽÖ"); +#endif else +/*JP You_hear("%s hissing!", something); +*/ + You_hear("ƒV[ƒb‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½I"); while (num-- > 0) if ((mtmp = makemon(&mons[PM_WATER_MOCCASIN], u.ux, u.uy, NO_MM_FLAGS)) != 0 && t_at(mtmp->mx, mtmp->my)) (void) mintrap(mtmp); } else +/*JP pline_The("fountain bubbles furiously for a moment, then calms."); +*/ + pline("ò‚Í“Ë‘RŒƒ‚µ‚­–A‚¾‚¿C‚₪‚Đ©‚É‚È‚Á‚½D"); } /* Water demon */ @@ -61,22 +83,36 @@ dowaterdemon() if ((mtmp = makemon(&mons[PM_WATER_DEMON], u.ux, u.uy, NO_MM_FLAGS)) != 0) { if (!Blind) +/*JP You("unleash %s!", a_monnam(mtmp)); +*/ + You("%s‚ð‰ð‚«•ú‚µ‚½I", a_monnam(mtmp)); else +/*JP You_feel("the presence of evil."); +*/ + You_feel("Ž×ˆ«‚È‘¶Ý‚ðŠ´‚¶‚½I"); /* Give those on low levels a (slightly) better chance of survival */ if (rnd(100) > (80 + level_difficulty())) { +#if 0 /*JP*/ pline("Grateful for %s release, %s grants you a wish!", mhis(mtmp), mhe(mtmp)); +#else + pline("%s‚͉ð•ú‚ð‚Æ‚Ä‚àŠ´ŽÓ‚µC‚Ì‚¼‚Ý‚ð‚©‚È‚¦‚Ä‚­‚ê‚é‚悤‚¾I", + mhe(mtmp)); +#endif /* give a wish and discard the monster (mtmp set to null) */ mongrantswish(&mtmp); } else if (t_at(mtmp->mx, mtmp->my)) (void) mintrap(mtmp); } } else +/*JP pline_The("fountain bubbles furiously for a moment, then calms."); +*/ + pline("ò‚Í“Ë‘RŒƒ‚µ‚­–A‚¾‚¿C‚₪‚Đ©‚É‚È‚Á‚½D"); } /* Water Nymph */ @@ -89,16 +125,28 @@ dowaternymph() && (mtmp = makemon(&mons[PM_WATER_NYMPH], u.ux, u.uy, NO_MM_FLAGS)) != 0) { if (!Blind) +/*JP You("attract %s!", a_monnam(mtmp)); +*/ + pline("%s‚ªŒ»‚í‚ꂽI", a_monnam(mtmp)); else +/*JP You_hear("a seductive voice."); +*/ + You_hear("–£˜f“I‚Ȑº‚ð•·‚¢‚½D"); mtmp->msleeping = 0; if (t_at(mtmp->mx, mtmp->my)) (void) mintrap(mtmp); } else if (!Blind) +/*JP pline("A large bubble rises to the surface and pops."); +*/ + pline("‘å‚«‚È–A‚ª•¦‚«o‚Ä‚Í‚¶‚¯‚½D"); else +/*JP You_hear("a loud pop."); +*/ + You_hear("‘å‚«‚È‚à‚Ì‚ª‚Í‚¶‚¯‚鉹‚ð•·‚¢‚½D"); } /* Gushing forth along LOS from (u.ux, u.uy) */ @@ -111,9 +159,15 @@ int drinking; do_clear_area(u.ux, u.uy, 7, gush, (genericptr_t) &madepool); if (!madepool) { if (drinking) +/*JP Your("thirst is quenched."); +*/ + Your("Š‰‚«‚Í–ü‚³‚ꂽD"); else +/*JP pline("Water sprays all over you."); +*/ + pline("…‚µ‚Ô‚«‚ª‚ ‚È‚½‚É‚©‚©‚Á‚½D"); } } @@ -134,7 +188,10 @@ genericptr_t poolcnt; return; if (!((*(int *) poolcnt)++)) +/*JP pline("Water gushes forth from the overflowing fountain!"); +*/ + pline("ò‚©‚琅‚ª‚Ç‚Ç‚Á‚ƈì‚êo‚½I"); /* Put a pool at x, y */ levl[x][y].typ = POOL; @@ -153,9 +210,15 @@ STATIC_OVL void dofindgem() { if (!Blind) +/*JP You("spot a gem in the sparkling waters!"); +*/ + pline("‚«‚ç‚ß‚­…‚Ì’†‚É•óÎ‚ðŒ©‚Â‚¯‚½I"); else +/*JP You_feel("a gem here!"); +*/ + You_feel("•óÎ‚ª‚ ‚é‚悤‚¾I"); (void) mksobj_at(rnd_class(DILITHIUM_CRYSTAL, LUCKSTONE - 1), u.ux, u.uy, FALSE, FALSE); SET_FOUNTAIN_LOOTED(u.ux, u.uy); @@ -180,18 +243,30 @@ boolean isyou; continue; if (is_watch(mtmp->data) && couldsee(mtmp->mx, mtmp->my) && mtmp->mpeaceful) { +/*JP pline("%s yells:", Amonnam(mtmp)); +*/ + pline("%s‚Í‹©‚ñ‚¾F", Amonnam(mtmp)); +/*JP verbalize("Hey, stop using that fountain!"); +*/ + verbalize("‚¨‚¢Cò‚ð‰˜‚·‚ȁI"); break; } } /* You can see or hear this effect */ if (!mtmp) +/*JP pline_The("flow reduces to a trickle."); +*/ + pline("—¬‚ê‚Í‚¿‚å‚ë‚¿‚å‚ë‚É‚È‚Á‚½D"); return; } if (isyou && wizard) { +/*JP if (yn("Dry up fountain?") == 'n') +*/ + if (yn("ò‚ðŠ±ã‚ª‚点‚Ü‚·‚©H") == 'n') return; } /* replace the fountain with ordinary floor */ @@ -199,7 +274,10 @@ boolean isyou; levl[x][y].looted = 0; levl[x][y].blessedftn = 0; if (cansee(x, y)) +/*JP pline_The("fountain dries up!"); +*/ + pline("ò‚ÍŠ±ã‚ª‚Á‚½I"); /* The location is seen if the hero/monster is invisible or felt if the hero is blind. */ newsym(x, y); @@ -217,14 +295,20 @@ drinkfountain() register int fate = rnd(30); if (Levitation) { +/*JP floating_above("fountain"); +*/ + floating_above("ò"); return; } if (mgkftn && u.uluck >= 0 && fate >= 10) { int i, ii, littleluck = (u.uluck < 4); +/*JP pline("Wow! This makes you feel great!"); +*/ + pline("ƒƒHI‚Æ‚Ä‚à‹CŽ‚¿‚æ‚­‚È‚Á‚½I"); /* blessed restore ability */ for (ii = 0; ii < A_MAX; ii++) if (ABASE(ii) < AMAX(ii)) { @@ -240,14 +324,20 @@ drinkfountain() i = 0; } display_nhwindow(WIN_MESSAGE, FALSE); +/*JP pline("A wisp of vapor escapes the fountain..."); +*/ + pline("‰Œ‚Ì‚©‚½‚܂肪ò‚©‚瓦‚°‚½DDD"); exercise(A_WIS, TRUE); levl[u.ux][u.uy].blessedftn = 0; return; } if (fate < 10) { +/*JP pline_The("cool draught refreshes you."); +*/ + pline("—₽‚¢ˆê”t‚Å‚³‚Á‚ς肵‚½D"); u.uhunger += rnd(10); /* don't choke on water */ newuhs(FALSE); if (mgkftn) @@ -255,27 +345,48 @@ drinkfountain() } else { switch (fate) { case 19: /* Self-knowledge */ +/*JP You_feel("self-knowledgeable..."); +*/ + You("Ž©•ªŽ©g‚ª”»‚é‚悤‚È‹C‚ª‚µ‚½DDD"); display_nhwindow(WIN_MESSAGE, FALSE); enlightenment(MAGICENLIGHTENMENT, ENL_GAMEINPROGRESS); exercise(A_WIS, TRUE); +/*JP pline_The("feeling subsides."); +*/ + pline("‚»‚ÌŠ´‚¶‚Í‚È‚­‚È‚Á‚½D"); break; case 20: /* Foul water */ +/*JP pline_The("water is foul! You gag and vomit."); +*/ + pline("…‚͂Ђǂ­•s‰õ‚È–¡‚ª‚µ‚½I‚ ‚È‚½‚Í“f‚«–ß‚µ‚½D"); morehungry(rn1(20, 11)); vomit(); break; case 21: /* Poisonous */ +/*JP pline_The("water is contaminated!"); +*/ + pline("…‚͉˜õ‚³‚ê‚Ä‚¢‚éI"); if (Poison_resistance) { +/*JP pline("Perhaps it is runoff from the nearby %s farm.", +*/ + pline("‚½‚Ô‚ñC‚±‚ê‚Í‹ß‚­‚Ì%s‚Ì”_ê‚©‚ç—¬‚ê‚Ä‚¢‚éD", fruitname(FALSE)); +/*JP losehp(rnd(4), "unrefrigerated sip of juice", KILLED_BY_AN); +*/ + losehp(rnd(4),"•…‚Á‚½‰Ê`‚Ì‚µ‚½‚½‚è‚Å", KILLED_BY_AN); break; } losestr(rn1(4, 3)); +/*JP losehp(rnd(10), "contaminated water", KILLED_BY); +*/ + losehp(rnd(10),"‰˜õ‚³‚ꂽ…‚Å", KILLED_BY); exercise(A_CON, FALSE); break; case 22: /* Fountain of snakes! */ @@ -287,7 +398,10 @@ drinkfountain() case 24: /* Curse an item */ { register struct obj *obj; +/*JP pline("This water's no good!"); +*/ + pline("‚±‚̐…‚Í‚Æ‚Ä‚à‚Ü‚¸‚¢I"); morehungry(rn1(20, 11)); exercise(A_CON, FALSE); for (obj = invent; obj; obj = obj->nobj) @@ -298,14 +412,29 @@ drinkfountain() case 25: /* See invisible */ if (Blind) { if (Invisible) { +/*JP You("feel transparent."); +*/ + You("“§–¾‚É‚È‚Á‚½‹C‚ª‚·‚éD"); } else { +/*JP You("feel very self-conscious."); +*/ + You("Ž©ˆÓŽ¯‰ßè‚ÉŠ´‚¶‚½D"); +/*JP pline("Then it passes."); +*/ + pline("‚»‚ÌŠ´‚¶‚͏Á‚¦‚½D"); } } else { +/*JP You_see("an image of someone stalking you."); +*/ + You("‰½‚©‚ªŽ©•ª‚ÌŒã‚ð‚‚¯‚Ä‚¢‚é‰f‘œ‚ðŒ©‚½D"); +/*JP pline("But it disappears."); +*/ + pline("‚µ‚©‚µC‚»‚ê‚͏Á‚¦‚Ä‚µ‚Ü‚Á‚½D"); } HSee_invisible |= FROMOUTSIDE; newsym(u.ux, u.uy); @@ -327,7 +456,10 @@ drinkfountain() { register struct monst *mtmp; +/*JP pline("This water gives you bad breath!"); +*/ + pline("…‚ðˆù‚ñ‚¾‚瑧‚ªL‚­‚È‚Á‚½I"); for (mtmp = fmon; mtmp; mtmp = mtmp->nmon) { if (DEADMONSTER(mtmp)) continue; @@ -339,7 +471,10 @@ drinkfountain() dogushforth(TRUE); break; default: +/*JP pline("This tepid water is tasteless."); +*/ + pline("‚±‚Ì‚È‚Ü‚Ê‚é‚¢…‚Í–¡‚ª‚È‚¢D"); break; } } @@ -351,7 +486,10 @@ dipfountain(obj) register struct obj *obj; { if (Levitation) { +/*JP floating_above("fountain"); +*/ + floating_above("ò"); return; } @@ -363,8 +501,14 @@ register struct obj *obj; if (u.ualign.type != A_LAWFUL) { /* Ha! Trying to cheat her. */ pline( +/*JP "A freezing mist rises from the water and envelopes the sword."); +*/ + "•X‚Ì–¶‚ª…‚©‚ç—§‚¿¸‚èCŒ•‚ð‚‚‚ñ‚¾D"); +/*JP pline_The("fountain disappears!"); +*/ + pline("ò‚͏Á‚¦‚Ä‚µ‚Ü‚Á‚½I"); curse(obj); if (obj->spe > -6 && !rn2(3)) obj->spe--; @@ -374,8 +518,14 @@ register struct obj *obj; /* The lady of the lake acts! - Eric Backus */ /* Be *REAL* nice */ pline( +/*JP "From the murky depths, a hand reaches up to bless the sword."); +*/ + "‚É‚²‚Á‚½[‚Ý‚©‚çCŒ•‚ðj•Ÿ‚¹‚ñ‚Ǝ肪L‚Ñ‚Ä‚«‚½D"); +/*JP pline("As the hand retreats, the fountain disappears!"); +*/ + pline("Žè‚ª‘Þ‚­‚ƁCò‚͏Á‚¦‚Ä‚µ‚Ü‚Á‚½I"); obj = oname(obj, artiname(ART_EXCALIBUR)); discover_artifact(ART_EXCALIBUR); bless(obj); @@ -413,10 +563,16 @@ register struct obj *obj; case 20: /* Uncurse the item */ if (obj->cursed) { if (!Blind) +/*JP pline_The("water glows for a moment."); +*/ + pline("…‚Í‹P‚«‚¾‚µ‚½D"); uncurse(obj); } else { +/*JP pline("A feeling of loss comes over you."); +*/ + pline("Šï–­‚È’E—ÍŠ´‚ª‚ ‚È‚½‚ð‚¨‚»‚Á‚½D"); } break; case 21: /* Water Demon */ @@ -437,13 +593,22 @@ register struct obj *obj; dogushforth(FALSE); break; case 26: /* Strange feeling */ +/*JP pline("A strange tingling runs up your %s.", body_part(ARM)); +*/ + pline("Šï–­‚È‚µ‚тꂪ‚ ‚È‚½‚Ì%s‚É‘–‚Á‚½D", body_part(ARM)); break; case 27: /* Strange feeling */ +/*JP You_feel("a sudden chill."); +*/ + You("“Ë‘RŠ¦‚¯‚ðŠ´‚¶‚½D"); break; case 28: /* Strange feeling */ +/*JP pline("An urge to take a bath overwhelms you."); +*/ + pline("•—˜C‚É“ü‚肽‚¢‚Æ‚¢‚¤—~–]‚É‚©‚ç‚ꂽD"); { long money = money_cnt(invent); struct obj *otmp; @@ -462,7 +627,10 @@ register struct obj *obj; if (!otmp->quan) delobj(otmp); } +/*JP You("lost some of your money in the fountain!"); +*/ + You("‹à‰Ý‚𐔖‡Cò‚É—Ž‚Æ‚µ‚Ä‚µ‚Ü‚Á‚½I"); CLEAR_FOUNTAIN_LOOTED(u.ux, u.uy); exercise(A_WIS, FALSE); } @@ -471,7 +639,7 @@ register struct obj *obj; case 29: /* You see coins */ /* We make fountains have more coins the closer you are to the * surface. After all, there will have been more people going - * by. Just like a shopping mall! Chris Woodbury */ + * by. Just like a shopping mall! Chris Woodbury */ if (FOUNTAIN_IS_LOOTED(u.ux, u.uy)) break; @@ -480,7 +648,10 @@ register struct obj *obj; + 1) * 2) + 5), u.ux, u.uy); if (!Blind) +/*JP pline("Far below you, you see coins glistening in the water."); +*/ + You("—y‚©‰º‚̐…’†‚É‹à‰Ý‚Ì‹P‚«‚ð‚݂‚¯‚½D"); exercise(A_WIS, TRUE); newsym(u.ux, u.uy); break; @@ -494,7 +665,10 @@ breaksink(x, y) int x, y; { if (cansee(x, y) || (x == u.ux && y == u.uy)) +/*JP pline_The("pipes break! Water spurts out!"); +*/ + pline("”zŠÇ‚ª‰ó‚ꐅ‚ª•¬o‚µ‚½I"); level.flags.nsinks--; levl[x][y].doormask = 0; levl[x][y].typ = FOUNTAIN; @@ -509,33 +683,60 @@ drinksink() struct monst *mtmp; if (Levitation) { +/*JP floating_above("sink"); +*/ + floating_above("—¬‚µ‘ä"); return; } switch (rn2(20)) { case 0: +/*JP You("take a sip of very cold water."); +*/ + You("‚Æ‚Ä‚à—₽‚¢…‚ðˆêŒûˆù‚ñ‚¾D"); break; case 1: +/*JP You("take a sip of very warm water."); +*/ + You("‚Æ‚Ä‚à‚ ‚½‚½‚©‚¢…‚ðˆêŒûˆù‚ñ‚¾D"); break; case 2: +/*JP You("take a sip of scalding hot water."); +*/ + You("‚Æ‚Ä‚à”M‚¢…‚ðˆêŒûˆù‚ñ‚¾D"); if (Fire_resistance) +/*JP pline("It seems quite tasty."); +*/ + pline("‚Æ‚Ä‚à‚¨‚¢‚µ‚¢…‚¾D"); else +/*JP losehp(rnd(6), "sipping boiling water", KILLED_BY); +*/ + losehp(rnd(6), "•¦“«‚µ‚½…‚ðˆù‚ñ‚Å", KILLED_BY); /* boiling water burns considered fire damage */ break; case 3: if (mvitals[PM_SEWER_RAT].mvflags & G_GONE) +/*JP pline_The("sink seems quite dirty."); +*/ + pline("—¬‚µ‘ä‚Í‚Æ‚Ä‚à‰˜‚Ȃ炵‚¢D"); else { mtmp = makemon(&mons[PM_SEWER_RAT], u.ux, u.uy, NO_MM_FLAGS); if (mtmp) +#if 0 /*JP*/ pline("Eek! There's %s in the sink!", (Blind || !canspotmon(mtmp)) ? "something squirmy" : a_monnam(mtmp)); +#else + pline("‚°I—¬‚µ‘ä‚É%s‚ª‚¢‚éI", + (Blind || !canspotmon(mtmp)) ? "g‚à‚¾‚¦‚·‚é‚悤‚È‚à‚Ì" + : a_monnam(mtmp)); +#endif } break; case 4: @@ -547,8 +748,14 @@ drinksink() } } while (!otmp); otmp->cursed = otmp->blessed = 0; +#if 0 /*JP*/ pline("Some %s liquid flows from the faucet.", Blind ? "odd" : hcolor(OBJ_DESCR(objects[otmp->otyp]))); +#else + pline("ŽÖŒû‚©‚ç%s‰t‘Ì‚ª—¬‚ꂽD", + Blind ? "Šï–­‚È" : + hcolor(OBJ_DESCR(objects[otmp->otyp]))); +#endif otmp->dknown = !(Blind || Hallucination); otmp->quan++; /* Avoid panic upon useup() */ otmp->fromsink = 1; /* kludge for docall() */ @@ -557,55 +764,93 @@ drinksink() break; case 5: if (!(levl[u.ux][u.uy].looted & S_LRING)) { +/*JP You("find a ring in the sink!"); +*/ + You("—¬‚µ‘ä‚ÉŽw—Ö‚ð‚݂‚¯‚½I"); (void) mkobj_at(RING_CLASS, u.ux, u.uy, TRUE); levl[u.ux][u.uy].looted |= S_LRING; exercise(A_WIS, TRUE); newsym(u.ux, u.uy); } else +/*JP pline("Some dirty water backs up in the drain."); +*/ + pline("‰˜…‚ª”r…Œû‚©‚ç‹t—¬‚µ‚Ä‚«‚½D"); break; case 6: breaksink(u.ux, u.uy); break; case 7: +/*JP pline_The("water moves as though of its own will!"); +*/ + pline("…‚ªˆÓŽv‚ðŽ‚Á‚Ä‚¢‚é‚©‚̂悤‚É“®‚¢‚½I"); if ((mvitals[PM_WATER_ELEMENTAL].mvflags & G_GONE) || !makemon(&mons[PM_WATER_ELEMENTAL], u.ux, u.uy, NO_MM_FLAGS)) +/*JP pline("But it quiets down."); +*/ + pline("‚µ‚©‚µCÃ‚©‚É‚È‚Á‚½D"); break; case 8: +/*JP pline("Yuk, this water tastes awful."); +*/ + pline("ƒIƒFC‚Æ‚Ä‚à‚Ђǂ¢–¡‚ª‚·‚éD"); more_experienced(1, 0); newexplevel(); break; case 9: +/*JP pline("Gaggg... this tastes like sewage! You vomit."); +*/ + pline("ƒQƒF[D‰º…‚̂悤‚È–¡‚ª‚·‚éI‚ ‚È‚½‚Í“f‚«–ß‚µ‚½D"); morehungry(rn1(30 - ACURR(A_CON), 11)); vomit(); break; case 10: +/*JP pline("This water contains toxic wastes!"); +*/ + pline("‚±‚̐…‚Í—L“Å‚È”r…‚ðŠÜ‚ñ‚Å‚¢‚éI"); if (!Unchanging) { +/*JP You("undergo a freakish metamorphosis!"); +*/ + You("ŠïŒ`‚ȕω»‚ð‚µ‚Í‚¶‚ß‚½I"); polyself(0); } break; /* more odd messages --JJB */ case 11: +/*JP You_hear("clanking from the pipes..."); +*/ + You_hear("”zŠÇ‚̃Jƒ`ƒ“‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½DDD"); break; case 12: +/*JP You_hear("snatches of song from among the sewers..."); +*/ + You_hear("‰º…‚Ì’†‚©‚ç‚Æ‚¬‚ê‚Æ‚¬‚ê‚̉̂𕷂¢‚½DDD"); break; case 19: if (Hallucination) { +/*JP pline("From the murky drain, a hand reaches up... --oops--"); +*/ + pline("ˆÃ‚¢”r…Œû‚©‚çCŽè‚ªL‚Ñ‚Ä‚«‚½DD--‚¨‚Á‚Æ--"); break; } default: +#if 0 /*JP*/ You("take a sip of %s water.", rn2(3) ? (rn2(2) ? "cold" : "warm") : "hot"); +#else + You("%s…‚ðˆêŒûˆù‚ñ‚¾D", + rn2(3) ? (rn2(2) ? "—₽‚¢" : "‚ ‚½‚½‚©‚¢") : "”M‚¢"); +#endif } } diff --git a/src/hack.c b/src/hack.c index 3e606f6..d49b495 100644 --- a/src/hack.c +++ b/src/hack.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" /* #define DEBUG */ /* uncomment for debugging */ @@ -114,14 +119,20 @@ moverock() if (Levitation || Is_airlevel(&u.uz)) { if (Blind) feel_location(sx, sy); +/*JP You("don't have enough leverage to push %s.", the(xname(otmp))); +*/ + You("‘Ì‚ª•‚‚¢‚Ä‚¢‚é‚Ì‚Å%s‚ð‰Ÿ‚¹‚È‚¢D", the(xname(otmp))); /* Give them a chance to climb over it? */ return -1; } if (verysmall(youmonst.data) && !u.usteed) { if (Blind) feel_location(sx, sy); +/*JP pline("You're too small to push that %s.", xname(otmp)); +*/ + You("¬‚³‚·‚¬‚Ä%s‚ð‰Ÿ‚¹‚È‚¢D",xname(otmp)); goto cannot_push; } if (isok(rx, ry) && !IS_ROCK(levl[rx][ry].typ) @@ -135,12 +146,18 @@ moverock() if (Sokoban && u.dx && u.dy) { if (Blind) feel_location(sx, sy); +/*JP pline("%s won't roll diagonally on this %s.", +*/ + pline("%s‚̏ã‚Å‚Í%s‚͎΂߂ɉŸ‚¹‚È‚¢D", The(xname(otmp)), surface(sx, sy)); goto cannot_push; } +/*JP if (revive_nasty(rx, ry, "You sense movement on the other side.")) +*/ + if (revive_nasty(rx, ry, "”½‘Α¤‚É“®‚«‚ðŠ´‚¶‚½D")) return -1; if (mtmp && !noncorporeal(mtmp->data) @@ -150,14 +167,24 @@ moverock() if (Blind) feel_location(sx, sy); if (canspotmon(mtmp)) +/*JP pline("There's %s on the other side.", a_monnam(mtmp)); +*/ + pline("”½‘Α¤‚É%s‚ª‚¢‚éD", a_monnam(mtmp)); else { +/*JP You_hear("a monster behind %s.", the(xname(otmp))); +*/ + pline("%s‚Ì”wŒã‚ɉö•¨‚Ì‹C”z‚ª‚·‚éD", the(xname(otmp))); map_invisible(rx, ry); } if (flags.verbose) +#if 0 /*JP*/ pline("Perhaps that's why %s cannot move it.", u.usteed ? y_monnam(u.usteed) : "you"); +#else + pline("‚½‚Ô‚ñ‚±‚ꂪCŠâ‚ð“®‚©‚¹‚È‚¢——R‚¾D"); +#endif goto cannot_push; } @@ -172,9 +199,15 @@ moverock() obj_extract_self(otmp); place_object(otmp, rx, ry); newsym(sx, sy); +#if 0 /*JP*/ pline("KAABLAMM!!! %s %s land mine.", Tobjnam(otmp, "trigger"), ttmp->madeby_u ? "your" : "a"); +#else + pline("‚¿‚ã‚ǁ[‚ñII%s‚Å%s’n—‹‚Ì‹N”šƒXƒCƒbƒ`‚ª“ü‚Á‚½D", + xname(otmp), + ttmp->madeby_u ? "‚ ‚È‚½‚ÌŽdŠ|‚¯‚½" : ""); +#endif blow_up_landmine(ttmp); /* if the boulder remains, it should fill the pit */ fill_pit(u.ux, u.uy); @@ -191,7 +224,10 @@ moverock() if this is one among multiple boulders */ if (!Blind) viz_array[ry][rx] |= IN_SIGHT; +/*JP if (!flooreffects(otmp, rx, ry, "fall")) { +*/ + if (!flooreffects(otmp, rx, ry, "—Ž‚¿‚é")) { place_object(otmp, rx, ry); } if (mtmp && !Blind) @@ -200,9 +236,13 @@ moverock() case HOLE: case TRAPDOOR: if (Blind) +/*JP pline("Kerplunk! You no longer feel %s.", +*/ + pline("ƒhƒTƒbI‚ ‚È‚½‚Í‚à‚¤%s‚ðŠ´‚¶‚ç‚ê‚È‚¢D", the(xname(otmp))); else +#if 0 /*JP*/ pline("%s%s and %s a %s in the %s!", Tobjnam(otmp, (ttmp->ttyp == TRAPDOOR) ? "trigger" @@ -211,6 +251,12 @@ moverock() otense(otmp, "plug"), (ttmp->ttyp == TRAPDOOR) ? "trap door" : "hole", surface(rx, ry)); +#else + pline("%s‚Í—Ž‚¿‚Ä%s‚Ì%s‚ð–„‚ß‚½I", + xname(otmp), + surface(rx, ry), + (ttmp->ttyp == TRAPDOOR) ? "—Ž‚µ”à" : "ŒŠ"); +#endif deltrap(ttmp); delobj(otmp); bury_objs(rx, ry); @@ -231,10 +277,16 @@ moverock() goto dopush; } if (u.usteed) +/*JP pline("%s pushes %s and suddenly it disappears!", +*/ + pline("%s‚ª%s‚ð‰Ÿ‚·‚ƁC“Ë‘R‚»‚ê‚͏Á–Å‚µ‚½I", upstart(y_monnam(u.usteed)), the(xname(otmp))); else +/*JP You("push %s and suddenly it disappears!", +*/ + pline("‚ ‚È‚½‚ª%s‚ð‰Ÿ‚·‚ƁC“Ë‘R‚»‚ê‚͏Á–Å‚µ‚½I", the(xname(otmp))); if (ttmp->ttyp == TELEP_TRAP) { (void) rloco(otmp); @@ -278,14 +330,25 @@ moverock() dopush: if (!u.usteed) { if (moves > lastmovetime + 2 || moves < lastmovetime) +#if 0 /*JP*/ pline("With %s effort you move %s.", throws_rocks(youmonst.data) ? "little" : "great", the(xname(otmp))); +#else + pline("%s—Í‚ð‚±‚ß‚Ä%s‚ð‰Ÿ‚µ‚½D", + throws_rocks(youmonst.data) ? "­‚µ" : "‚©‚È‚è", + the(xname(otmp))); +#endif exercise(A_STR, TRUE); } else +#if 0 /*JP*/ pline("%s moves %s.", upstart(y_monnam(u.usteed)), the(xname(otmp))); +#else + pline("%s‚Í%s‚ð“®‚©‚µ‚½D", upstart(y_monnam(u.usteed)), + xname(otmp)); +#endif lastmovetime = moves; } @@ -302,22 +365,43 @@ moverock() } else { nopushmsg: if (u.usteed) +#if 0 /*JP*/ pline("%s tries to move %s, but cannot.", upstart(y_monnam(u.usteed)), the(xname(otmp))); +#else + pline("%s‚Í%s‚ð“®‚©‚»‚¤‚Æ‚µ‚½‚ªo—ˆ‚È‚©‚Á‚½D", + upstart(y_monnam(u.usteed)), the(xname(otmp))); +#endif else +/*JP You("try to move %s, but in vain.", the(xname(otmp))); +*/ + You("%s‚ð“®‚©‚»‚¤‚Æ‚µ‚½‚ªC‚¾‚ß‚¾‚Á‚½D", the(xname(otmp))); if (Blind) feel_location(sx, sy); cannot_push: if (throws_rocks(youmonst.data)) { if (u.usteed && P_SKILL(P_RIDING) < P_BASIC) { +#if 0 /*JP*/ You("aren't skilled enough to %s %s from %s.", (flags.pickup && !Sokoban) ? "pick up" : "push aside", the(xname(otmp)), y_monnam(u.usteed)); +#else + You("%s‚É%s‚ð%s‚é‚Ù‚Ç‹Z—Ê‚ª‚È‚¢D", + y_monnam(u.usteed), + the(xname(otmp)), + (flags.pickup && !Sokoban) ? "E‚킹" : "‰Ÿ‚³‚¹"); +#endif } else { +#if 0 /*JP*/ pline("However, you can easily %s.", (flags.pickup && !Sokoban) ? "pick it up" : "push it aside"); +#else + pline("‚µ‚©‚µC‚ ‚È‚½‚ÍŠÈ’P‚É‚»‚ê‚ð%sD", + (flags.pickup && !Sokoban) + ? "E‚¦‚½" : "•Ê‚Ì•û‚ɉŸ‚¹‚½"); +#endif sokoban_guilt(); break; } @@ -330,7 +414,10 @@ moverock() && IS_ROCK(levl[sx][u.uy].typ)))) || verysmall(youmonst.data))) { pline( +/*JP "However, you can squeeze yourself into a small opening."); +*/ + "‚µ‚©‚µC‚ ‚È‚½‚͏¬‚³‚¢Œ„ŠÔ‚É‚±‚¶“ü‚Á‚½D"); sokoban_guilt(); break; } else @@ -359,12 +446,21 @@ xchar x, y; sizeof(struct dig_info)); if (!boulder && IS_ROCK(lev->typ) && !may_dig(x, y)) { +#if 0 /*JP*/ You("hurt your teeth on the %s.", (lev->typ == IRONBARS) ? "bars" : IS_TREE(lev->typ) ? "tree" : "hard stone"); +#else + You("%s‚ÅŽ•‚ð’É‚ß‚½D", + (lev->typ == IRONBARS) + ? "“S‚Ì–_" + : IS_TREE(lev->typ) + ? "–Ø" + : "ŒÅ‚¢Šâ"); +#endif nomul(0); return 1; } else if (context.digging.pos.x != x || context.digging.pos.y != y @@ -378,6 +474,7 @@ xchar x, y; /* solid rock takes more work & time to dig through */ context.digging.effort = (IS_ROCK(lev->typ) && !IS_TREE(lev->typ) ? 30 : 60) + u.udaminc; +#if 0 /*JP*/ You("start chewing %s %s.", (boulder || IS_TREE(lev->typ) || lev->typ == IRONBARS) ? "on a" @@ -391,10 +488,26 @@ xchar x, y; : lev->typ == IRONBARS ? "bar" : "door"); +#else + You("%s%s‚Í‚¶‚ß‚½D", + boulder + ? "Šâ" + : IS_TREE(lev->typ) + ? "–Ø" + : IS_ROCK(lev->typ) + ? "Î" + : lev->typ == IRONBARS + ? "“S‚Ì–_" + : "”à", + (boulder || IS_TREE(lev->typ) || lev->typ == IRONBARS) + ? "‚ðŠš‚Ý" + : "‚ÉŒŠ‚ð‚ ‚¯"); +#endif watch_dig((struct monst *) 0, x, y, FALSE); return 1; } else if ((context.digging.effort += (30 + u.udaminc)) <= 100) { if (flags.verbose) +#if 0 /*JP*/ You("%s chewing on the %s.", context.digging.chew ? "continue" : "begin", boulder @@ -406,6 +519,19 @@ xchar x, y; : (lev->typ == IRONBARS) ? "bars" : "door"); +#else + You("%s‚ðŠš‚Ý%sD", + boulder + ? "Šâ" + : IS_TREE(lev->typ) + ? "–Ø" + : IS_ROCK(lev->typ) + ? "Î" + : lev->typ == IRONBARS + ? "“S‚Ì–_" + : "”à", + context.digging.chew ? "‘±‚¯‚½" : "‚Í‚¶‚ß‚½"); +#endif context.digging.chew = TRUE; watch_dig((struct monst *) 0, x, y, FALSE); return 1; @@ -417,7 +543,11 @@ xchar x, y; if (boulder) { delobj(boulder); /* boulder goes bye-bye */ +#if 0 /*JP*/ You("eat the boulder."); /* yum */ +#else + You("Šâ‚ðH‚ׂ½D"); /* yum */ +#endif /* * The location could still block because of @@ -438,9 +568,15 @@ xchar x, y; } else if (IS_WALL(lev->typ)) { if (*in_rooms(x, y, SHOPBASE)) { add_damage(x, y, 10L * ACURRSTR); +/*JP dmgtxt = "damage"; +*/ + dmgtxt = "‚‚¯‚é"; } +/*JP digtxt = "chew a hole in the wall."; +*/ + digtxt = "•Ç‚ÉŒŠ‚ðŠJ‚¯‚½D"; if (level.flags.is_maze_lev) { lev->typ = ROOM; } else if (level.flags.is_cavernous_lev && !in_town(x, y)) { @@ -450,17 +586,29 @@ xchar x, y; lev->doormask = D_NODOOR; } } else if (IS_TREE(lev->typ)) { +/*JP digtxt = "chew through the tree."; +*/ + digtxt = "–Ø‚ÉŒŠ‚ðŠJ‚¯‚½D"; lev->typ = ROOM; } else if (lev->typ == IRONBARS) { +/*JP digtxt = "eat through the bars."; +*/ + digtxt = "“S‚Ì–_‚ÉŒŠ‚ðŠJ‚¯‚½D"; dissolve_bars(x, y); } else if (lev->typ == SDOOR) { if (lev->doormask & D_TRAPPED) { lev->doormask = D_NODOOR; +/*JP b_trapped("secret door", 0); +*/ + b_trapped("”é–§‚Ì”à", 0); } else { +/*JP digtxt = "chew through the secret door."; +*/ + digtxt = "”é–§‚Ì”à‚ðŠš‚ÝÓ‚¢‚½D"; lev->doormask = D_BROKEN; } lev->typ = DOOR; @@ -468,18 +616,30 @@ xchar x, y; } else if (IS_DOOR(lev->typ)) { if (*in_rooms(x, y, SHOPBASE)) { add_damage(x, y, 400L); +/*JP dmgtxt = "break"; +*/ + dmgtxt = "‰ó‚·"; } if (lev->doormask & D_TRAPPED) { lev->doormask = D_NODOOR; +/*JP b_trapped("door", 0); +*/ + b_trapped("”à", 0); } else { +/*JP digtxt = "chew through the door."; +*/ + digtxt = "”à‚ðÓ‚¢‚½D"; lev->doormask = D_BROKEN; } } else { /* STONE or SCORR */ +/*JP digtxt = "chew a passage through the rock."; +*/ + digtxt = "Šâ‚ðŠš‚ÝÓ‚¢‚Ēʂ蔲‚¯‚½D"; lev->typ = CORR; } @@ -506,7 +666,10 @@ register xchar ox, oy; newsym(ox, oy); } +/*JP static NEARDATA const char fell_on_sink[] = "fell onto a sink"; +*/ +static NEARDATA const char fell_on_sink[] = "—¬‚µ‘ä‚É—Ž‚¿‚Ä"; STATIC_OVL void dosinkfall() @@ -518,8 +681,14 @@ dosinkfall() ufall = (!innate_lev && !(HFlying || EFlying)); /* BFlying */ if (!ufall) { +/*JP You(innate_lev ? "wobble unsteadily for a moment." +*/ + You(innate_lev ? "‚¿‚å‚Á‚Æ‚Ó‚ç‚‚¢‚½D" +/*JP : "gain control of your flight."); +*/ + : "”òs’†‚̐§Œä‚ðŽæ‚è‚à‚Ç‚µ‚½D"); } else { long save_ELev = ELevitation, save_HLev = HLevitation; @@ -528,16 +697,30 @@ dosinkfall() be fatal; fortunately the fact that rings and boots are really still worn has no effect on bones data */ ELevitation = HLevitation = 0L; +/*JP You("crash to the floor!"); +*/ + You("°‚É’@‚«‚‚¯‚ç‚ꂽI"); dmg = rn1(8, 25 - (int) ACURR(A_CON)); losehp(Maybe_Half_Phys(dmg), fell_on_sink, NO_KILLER_PREFIX); exercise(A_DEX, FALSE); +/*JP selftouch("Falling, you"); +*/ + selftouch("—Ž‚¿‚È‚ª‚çC‚ ‚È‚½‚Í"); for (obj = level.objects[u.ux][u.uy]; obj; obj = obj->nexthere) if (obj->oclass == WEAPON_CLASS || is_weptool(obj)) { +/*JP You("fell on %s.", doname(obj)); +*/ + You("%s‚̏ã‚É—Ž‚¿‚½D",doname(obj)); +#if 0 /*JP*/ losehp(Maybe_Half_Phys(rnd(3)), fell_on_sink, NO_KILLER_PREFIX); +#else + losehp(Maybe_Half_Phys(rnd(3)), fell_on_sink, + KILLED_BY); +#endif exercise(A_CON, FALSE); } ELevitation = save_ELev; @@ -686,7 +869,10 @@ int mode; } if (!(Passes_walls || passes_bars(youmonst.data))) { if (iflags.mention_walls) +/*JP You("cannot pass through the bars."); +*/ + You("“S‚Ì–_‚ð’ʂ蔲‚¯‚ç‚ê‚È‚¢D"); return FALSE; } } else if (tunnels(youmonst.data) && !needspick(youmonst.data)) { @@ -702,13 +888,22 @@ int mode; } else { if (mode == DO_MOVE) { if (Is_stronghold(&u.uz) && is_db_wall(x, y)) +/*JP pline_The("drawbridge is up!"); +*/ + pline("’µ‚Ë‹´‚͏ã‚Á‚Ä‚¢‚éI"); /* sokoban restriction stays even after puzzle is solved */ else if (Passes_walls && !may_passwall(x, y) && In_sokoban(&u.uz)) +/*JP pline_The("Sokoban walls resist your ability."); +*/ + pline_The("‘qŒÉ”Ô‚Ì•Ç‚Í‚ ‚È‚½‚Ì”\—Í‚É’ïR‚µ‚½D"); else if (iflags.mention_walls) +/*JP pline("It's a wall."); +*/ + pline("‚±‚ê‚Í•Ç‚¾D"); } return FALSE; } @@ -720,7 +915,10 @@ int mode; ; /* do nothing */ else if (can_ooze(&youmonst)) { if (mode == DO_MOVE) +/*JP You("ooze under the door."); +*/ + You("ƒhƒA‚̉º‚©‚ç‚É‚¶‚ݏo‚½D"); } else if (tunnels(youmonst.data) && !needspick(youmonst.data)) { /* Eat the door. */ if (mode == DO_MOVE && still_chewing(x, y)) @@ -729,7 +927,10 @@ int mode; if (mode == DO_MOVE) { if (amorphous(youmonst.data)) You( +/*JP "try to ooze under the door, but can't squeeze your possessions through."); +*/ + "ƒhƒA‚̉º‚©‚ç‚É‚¶‚ݏo‚悤‚Æ‚µ‚½C‚µ‚©‚µŽ‚¿•¨‚Í‚»‚¤‚Í‚¢‚©‚È‚¢D"); if (flags.autoopen && !context.run && !Confusion && !Stunned && !Fumbling) { context.door_opened = context.move = @@ -738,14 +939,23 @@ int mode; if (Blind || Stunned || ACURR(A_DEX) < 10 || Fumbling) { if (u.usteed) { +/*JP You_cant("lead %s through that closed door.", +*/ + You_cant("%s‚ɕ‚܂Á‚½”à‚ð’ʉ߂³‚¹‚邱‚Æ‚Í‚Å‚«‚È‚¢D", y_monnam(u.usteed)); } else { +/*JP pline("Ouch! You bump into a door."); +*/ + pline("‚¢‚Ä‚ÁI“ª‚ð”à‚ɂԂ‚¯‚½D"); exercise(A_DEX, FALSE); } } else +/*JP pline("That door is closed."); +*/ + pline("”à‚͕‚܂Á‚Ä‚¢‚éD"); } } else if (mode == TEST_TRAV) goto testdiag; @@ -768,15 +978,24 @@ int mode; switch (cant_squeeze_thru(&youmonst)) { case 3: if (mode == DO_MOVE) +/*JP You("cannot pass that way."); +*/ + You("’Ê‚è‚Ê‚¯‚Å‚«‚È‚¢D"); return FALSE; case 2: if (mode == DO_MOVE) +/*JP You("are carrying too much to get through."); +*/ + pline("•¨‚ðŽ‚¿‚·‚¬‚Ä’Ê‚è‚Ê‚¯‚ç‚ê‚È‚¢D"); return FALSE; case 1: if (mode == DO_MOVE) +/*JP Your("body is too large to fit through."); +*/ + Your("‘Ì‚ª‘å‚«‚·‚¬‚Ä’Ê‚è‚Ê‚¯‚ç‚ê‚È‚¢D"); return FALSE; default: break; /* can squeeze through */ @@ -1068,11 +1287,20 @@ struct trap *desttrap; /* nonnull if another trap at */ switch (u.utraptype) { case TT_BEARTRAP: if (flags.verbose) { +/*JP predicament = "caught in a bear trap"; +*/ + predicament = "ŒF‚Ì㩂ɂ‚©‚Ü‚Á‚½"; if (u.usteed) +/*JP Norep("%s is %s.", upstart(steedname), predicament); +*/ + Norep("%s‚Í%sD", upstart(steedname), predicament); else +/*JP Norep("You are %s.", predicament); +*/ + Norep("‚ ‚È‚½‚Í%sD", predicament); } /* [why does diagonal movement give quickest escape?] */ if ((u.dx && u.dy) || !rn2(5)) @@ -1088,40 +1316,73 @@ struct trap *desttrap; /* nonnull if another trap at */ case TT_WEB: if (uwep && uwep->oartifact == ART_STING) { u.utrap = 0; +/*JP pline("Sting cuts through the web!"); +*/ + pline("ƒXƒeƒBƒ“ƒO‚Í‚­‚à‚Ì‘ƒ‚ðØ‚肳‚¢‚½I"); break; /* escape trap but don't move */ } if (--u.utrap) { if (flags.verbose) { +/*JP predicament = "stuck to the web"; +*/ + predicament = "‚­‚à‚Ì‘ƒ‚ɂЂÁ‚©‚©‚Á‚½"; if (u.usteed) +/*JP Norep("%s is %s.", upstart(steedname), predicament); +*/ + Norep("%s‚Í%sD", upstart(steedname), predicament); else +/*JP Norep("You are %s.", predicament); +*/ + Norep("‚ ‚È‚½‚Í%sD", predicament); } } else { if (u.usteed) +/*JP pline("%s breaks out of the web.", upstart(steedname)); +*/ + pline("%s‚Í‚­‚à‚Ì‘ƒ‚ð‰ó‚µ‚½D", upstart(steedname)); else +/*JP You("disentangle yourself."); +*/ + You("Ž©•ª‚Å‚Ù‚Ç‚¢‚½D"); } break; case TT_LAVA: if (flags.verbose) { +/*JP predicament = "stuck in the lava"; +*/ + predicament = "—nŠâ‚É‚Í‚Ü‚Á‚½"; if (u.usteed) +/*JP Norep("%s is %s.", upstart(steedname), predicament); +*/ + Norep("%s‚Í%sD", upstart(steedname), predicament); else +/*JP Norep("You are %s.", predicament); +*/ + Norep("‚ ‚È‚½‚Í%sD", predicament); } if (!is_lava(x, y)) { u.utrap--; if ((u.utrap & 0xff) == 0) { u.utrap = 0; if (u.usteed) +/*JP You("lead %s to the edge of the lava.", steedname); +*/ + You("%s‚ð—nŠâ‚Ì’[‚Ü‚Å“±‚¢‚½D", steedname); else +/*JP You("pull yourself to the edge of the lava."); +*/ + You("—nŠâ‚Ì’[‚Ü‚Å‚©‚낤‚¶‚āC‚½‚Ç‚è‚‚¢‚½D"); } } u.umoved = TRUE; @@ -1188,10 +1449,14 @@ boolean u_rooted() { if (!youmonst.data->mmove) { +#if 0 /*JP*/ You("are rooted %s.", Levitation || Is_airlevel(&u.uz) || Is_waterlevel(&u.uz) ? "in place" : "to the ground"); +#else + You("‚»‚̏ê‚É—§‚¿‚·‚­‚ñ‚¾D"); +#endif nomul(0); return TRUE; } @@ -1226,10 +1491,16 @@ domove() : (u.uhp < 10 && u.uhp != u.uhpmax)))) && !Is_airlevel(&u.uz)) { if (wtcap < OVERLOADED) { +/*JP You("don't have enough stamina to move."); +*/ + You("‚Ö‚Æ‚Ö‚Æ‚Å“®‚¯‚È‚¢D"); exercise(A_CON, FALSE); } else +/*JP You("collapse under your load."); +*/ + pline("•¨‚ðŽ‚¿‚·‚¬‚Ä“|‚ꂽD"); nomul(0); return; } @@ -1242,14 +1513,23 @@ domove() if (Is_airlevel(&u.uz) && rn2(4) && !Levitation && !Flying) { switch (rn2(3)) { case 0: +/*JP You("tumble in place."); +*/ + You("‚»‚̏ê‚Å“|‚ꂽD"); exercise(A_DEX, FALSE); break; case 1: +/*JP You_cant("control your movements very well."); +*/ + You("‚¤‚Ü‚­•à‚¯‚È‚¢D"); break; case 2: +/*JP pline("It's hard to walk in thin air."); +*/ + pline("‹ó’†‚ð•à‚­‚͓̂‚¢D"); exercise(A_DEX, TRUE); break; } @@ -1323,7 +1603,10 @@ domove() /* When polymorphed into a sticking monster, * u.ustuck means it's stuck to you, not you to it. */ +/*JP You("release %s.", mon_nam(u.ustuck)); +*/ + You("%s‚ð•ú‚µ‚½D", mon_nam(u.ustuck)); u.ustuck = 0; } else { /* If holder is asleep or paralyzed: @@ -1340,7 +1623,10 @@ domove() case 1: case 2: pull_free: +/*JP You("pull free from %s.", mon_nam(u.ustuck)); +*/ + You("%s‚ð‚Ђ«‚Í‚È‚µ‚½D", mon_nam(u.ustuck)); u.ustuck = 0; break; case 3: @@ -1353,7 +1639,10 @@ domove() default: if (u.ustuck->mtame && !Conflict && !u.ustuck->mconf) goto pull_free; +/*JP You("cannot escape from %s!", mon_nam(u.ustuck)); +*/ + You("%s‚©‚瓦‚°‚ç‚ê‚È‚¢I", mon_nam(u.ustuck)); nomul(0); return; } @@ -1406,9 +1695,15 @@ domove() && !sensemon(mtmp)) stumble_onto_mimic(mtmp); else if (mtmp->mpeaceful && !Hallucination) +/*JP pline("Pardon me, %s.", m_monnam(mtmp)); +*/ + pline("‚¿‚å‚Á‚Æ‚²‚ß‚ñ‚È‚³‚¢‚æC%s‚³‚ñD", m_monnam(mtmp)); else +/*JP You("move right into %s.", mon_nam(mtmp)); +*/ + You("%s‚Ì‚»‚΂Ɉړ®‚µ‚½D", mon_nam(mtmp)); return; } if (context.forcefight || !mtmp->mundetected || sensemon(mtmp) @@ -1588,7 +1883,10 @@ domove() && (bigmonst(mtmp->data) || (curr_mon_load(mtmp) > 600))) { /* can't swap places when pet won't fit thru the opening */ u.ux = u.ux0, u.uy = u.uy0; /* didn't move after all */ +/*JP You("stop. %s won't fit through.", upstart(y_monnam(mtmp))); +*/ + You("Ž~‚Ü‚Á‚½D%s‚͒ʂ蔲‚¯‚ç‚ê‚È‚¢D", upstart(y_monnam(mtmp))); } else { char pnambuf[BUFSZ]; @@ -1600,8 +1898,14 @@ domove() newsym(x, y); newsym(u.ux0, u.uy0); +#if 0 /*JP*/ You("%s %s.", mtmp->mtame ? "swap places with" : "frighten", pnambuf); +#else + You("%s%s‚½D", + pnambuf, + mtmp->mtame ? "‚Əꏊ‚ð“ü‚ꊷ‚í‚Á" : "‚ð•|‚ª‚点"); +#endif /* check for displacing it into pools and traps */ switch (minliquid(mtmp) ? 2 : mintrap(mtmp)) { @@ -1637,7 +1941,10 @@ domove() * patron deity care at all, let alone enough to get mad?] */ if (rn2(4)) { +/*JP You_feel("guilty about losing your pet like this."); +*/ + pline("‚±‚̂悤‚ÈŒ`‚Ńyƒbƒg‚ðŽ¸‚¤‚Ƃ͍ߐ[‚¢‚±‚Æ‚¾‚ÆŽv‚Á‚½D"); u.ugangr++; adjalign(-15); } @@ -1725,7 +2032,10 @@ overexertion() if (*hp > 1) { *hp -= 1; } else { +/*JP You("pass out from exertion!"); +*/ + You("‹Câ‚µ‚½D"); exercise(A_CON, FALSE); fall_asleep(-10, FALSE); } @@ -1743,17 +2053,34 @@ invocation_message() nomul(0); /* stop running or travelling */ if (u.usteed) +/*JP Sprintf(buf, "beneath %s", y_monnam(u.usteed)); +*/ + Sprintf(buf, "%s‚̉º‚É", y_monnam(u.usteed)); else if (Levitation || Flying) +/*JP Strcpy(buf, "beneath you"); +*/ + Strcpy(buf, "‰º•û‚É"); else +/*JP Sprintf(buf, "under your %s", makeplural(body_part(FOOT))); +*/ + Strcpy(buf, "‘«Œ³‚É"); +/*JP You_feel("a strange vibration %s.", buf); +*/ + You("%sŠï–­‚ȐU“®‚ðŠ´‚¶‚½D", buf); u.uevent.uvibrated = 1; if (otmp && otmp->spe == 7 && otmp->lamplit) +#if 0 /*JP*/ pline("%s %s!", The(xname(otmp)), Blind ? "throbs palpably" : "glows with a strange light"); +#else + pline("%s‚Í%s‚µ‚½I", The(xname(otmp)), + Blind ? "‚©‚·‚©‚ɐU“®" : "Šï–­‚ÈŒõ‚ð”­"); +#endif } } @@ -1807,20 +2134,41 @@ boolean newspot; /* true if called by spoteffects */ if (!is_pool(u.ux, u.uy)) { if (Is_waterlevel(&u.uz)) +/*JP You("pop into an air bubble."); +*/ + You("‚Ђ傢‚Æ‹ó‹C‚Ì–A‚É“ü‚Á‚½D"); else if (is_lava(u.ux, u.uy)) +#if 0 /*JP*/ You("leave the water..."); /* oops! */ +#else + You("…‚©‚甲‚¯‚¾‚µ‚½DDD"); /* oops! */ +#endif else +#if 0 /*JP*/ You("are on solid %s again.", is_ice(u.ux, u.uy) ? "ice" : "land"); +#else + You("ŒÅ‚¢%s‚̏ã‚É‚Ü‚½–ß‚Á‚½D", + is_ice(u.ux, u.uy) ? "•X" : "’n–Ê"); +#endif } else if (Is_waterlevel(&u.uz)) { still_inwater = TRUE; } else if (Levitation) { +/*JP You("pop out of the water like a cork!"); +*/ + You("ƒRƒ‹ƒN‚̂悤‚É”ò‚Ñ‚¾‚µ‚½I"); } else if (Flying) { +/*JP You("fly out of the water."); +*/ + You("…‚©‚ç”ò‚Ñ‚¾‚µ‚½D"); } else if (Wwalking) { +/*JP You("slowly rise above the surface."); +*/ + You("‚ä‚Á‚­‚萅–ʂ܂ŏオ‚Á‚½D"); } else { still_inwater = TRUE; } @@ -1973,20 +2321,38 @@ boolean pick; mtmp->mundetected = mtmp->msleeping = 0; switch (mtmp->data->mlet) { case S_PIERCER: +#if 0 /*JP*/ pline("%s suddenly drops from the %s!", Amonnam(mtmp), ceiling(u.ux, u.uy)); +#else + pline("%s‚ª“Ë‘R%s‚©‚ç—Ž‚¿‚Ä‚«‚½I", + Amonnam(mtmp), ceiling(u.ux,u.uy)); +#endif if (mtmp->mtame) /* jumps to greet you, not attack */ ; else if (uarmh && is_metallic(uarmh)) +/*JP pline("Its blow glances off your %s.", +*/ + pline("UŒ‚‚Í‚ ‚È‚½‚Ì%s‚ð‚©‚·‚ß‚½‚¾‚¯‚¾‚Á‚½D", helm_simple_name(uarmh)); else if (u.uac + 3 <= rnd(20)) +#if 0 /*JP*/ You("are almost hit by %s!", x_monnam(mtmp, ARTICLE_A, "falling", 0, TRUE)); +#else + You("—Ž‚¿‚Ä‚«‚½%s‚É‚à‚¤­‚µ‚Å“–‚½‚é‚Æ‚±‚낾‚Á‚½D", + x_monnam(mtmp, ARTICLE_A, "", 0, TRUE)); +#endif else { int dmg; +#if 0 /*JP*/ You("are hit by %s!", x_monnam(mtmp, ARTICLE_A, "falling", 0, TRUE)); +#else + You("—Ž‚¿‚Ä‚«‚½%s‚É“–‚½‚Á‚½I", + x_monnam(mtmp, ARTICLE_A, "", 0, TRUE)); +#endif dmg = d(4, 6); if (Half_physical_damage) dmg = (dmg + 1) / 2; @@ -1995,14 +2361,25 @@ boolean pick; break; default: /* monster surprises you. */ if (mtmp->mtame) +#if 0 /*JP*/ pline("%s jumps near you from the %s.", Amonnam(mtmp), ceiling(u.ux, u.uy)); +#else + pline("%s‚ª%s‚©‚ç‚ ‚È‚½‚Ì‹ß‚­‚É”ò‚ñ‚Å‚«‚½D", Amonnam(mtmp), + ceiling(u.ux,u.uy)); +#endif else if (mtmp->mpeaceful) { +/*JP You("surprise %s!", +*/ + You("%s‚ð‹Á‚©‚µ‚½I", Blind && !sensemon(mtmp) ? something : a_monnam(mtmp)); mtmp->mpeaceful = 0; } else +/*JP pline("%s attacks you by surprise!", Amonnam(mtmp)); +*/ + pline("%s‚Í‹Á‚¢‚Ä‚ ‚È‚½‚ðUŒ‚‚µ‚½I", Amonnam(mtmp)); break; } mnexto(mtmp); /* have to move the monster */ @@ -2196,51 +2573,96 @@ register boolean newlev; * but everything else gives a message only the first time */ switch (rt) { case ZOO: +/*JP pline("Welcome to David's treasure zoo!"); +*/ + pline("ƒfƒrƒbƒg•ó” “®•¨‰€‚ɂ悤‚±‚»I"); break; case SWAMP: +#if 0 /*JP*/ pline("It %s rather %s down here.", Blind ? "feels" : "looks", Blind ? "humid" : "muddy"); +#else + pline("‚©‚È‚è%sD", + Blind ? "Ž¼‹C‚ª‚ ‚éêŠ‚̂悤‚¾" + : "‚Ç‚ë‚ǂ낵‚Ä‚¢‚éêŠ‚¾"); +#endif break; case COURT: +/*JP You("enter an opulent throne room!"); +*/ + You("‰Ø‚â‚©‚ȋʍÀ‚ÌŠÔ‚É“ü‚Á‚½I"); break; case LEPREHALL: +/*JP You("enter a leprechaun hall!"); +*/ + You("ƒŒƒvƒ‰ƒR[ƒ“ƒz[ƒ‹‚É“ü‚Á‚½I"); break; case MORGUE: if (midnight()) { +#if 0 /*JP*/ const char *run = locomotion(youmonst.data, "Run"); pline("%s away! %s away!", run, run); +#else + pline("“¦‚°‚ëI“¦‚°‚ëI"); +#endif } else +/*JP You("have an uncanny feeling..."); +*/ + You("•s‹C–¡‚ÈŠ´‚¶‚ª‚µ‚½DDD"); break; case BEEHIVE: +/*JP You("enter a giant beehive!"); +*/ + You("‹‘å‚È–I‚Ì‘ƒ‚É“ü‚Á‚½I"); break; case COCKNEST: +/*JP You("enter a disgusting nest!"); +*/ + You("‚Þ‚Á‚Æ‚·‚éL‚¢‚Ì‚·‚é’¹‚Ì‘ƒ‚É“ü‚Á‚½I"); break; case ANTHOLE: +/*JP You("enter an anthole!"); +*/ + You("ƒAƒŠ‚Ì‘ƒ‚É“ü‚Á‚½I"); break; case BARRACKS: if (monstinroom(&mons[PM_SOLDIER], roomno) || monstinroom(&mons[PM_SERGEANT], roomno) || monstinroom(&mons[PM_LIEUTENANT], roomno) || monstinroom(&mons[PM_CAPTAIN], roomno)) +/*JP You("enter a military barracks!"); +*/ + You("ŒR‘à‚Ì•ºäq‚É“ü‚Á‚½I"); else +/*JP You("enter an abandoned barracks."); +*/ + You("•ú’u‚³‚ꂽ‚Ü‚Ü‚Ì•ºäq‚É“ü‚Á‚½D"); break; case DELPHI: { struct monst *oracle = monstinroom(&mons[PM_ORACLE], roomno); if (oracle) { if (!oracle->mpeaceful) +/*JP verbalize("You're in Delphi, %s.", plname); +*/ + verbalize("‚¨‚Ü‚¦‚̓fƒ‹ƒtƒ@ƒC‚̐_‘õŠ‚É‚¢‚éD"); else +#if 0 /*JP*/ verbalize("%s, %s, welcome to Delphi!", Hello((struct monst *) 0), plname); +#else + verbalize("‚¨‚¨%sCƒfƒ‹ƒtƒ@ƒC‚̐_‘õŠ‚É‚æ‚­‚¼‚Ü‚¢‚ç‚ꂽI", + plname); +#endif } else msg_given = FALSE; break; @@ -2309,11 +2731,22 @@ dopickup() if (u.uswallow) { if (!u.ustuck->minvent) { if (is_animal(u.ustuck->data)) { +/*JP You("pick up %s tongue.", s_suffix(mon_nam(u.ustuck))); +*/ + You("%s‚̐ã‚ðE‚Á‚½D", mon_nam(u.ustuck)); +/*JP pline("But it's kind of slimy, so you drop it."); +*/ + pline("‚µ‚©‚µC‚»‚ê‚Í‚Ê‚é‚ʂ邵‚Ä•s‰õ‚¾‚Á‚½‚Ì‚ÅŽÌ‚Ä‚Ä‚µ‚Ü‚Á‚½D"); } else +#if 0 /*JP*/ You("don't %s anything in here to pick up.", Blind ? "feel" : "see"); +#else + pline("‚±‚±‚ɂ͏E‚¦‚é‚à‚Ì‚ª‚È‚¢%sD", + Blind ? "‚悤‚¾" : ""); +#endif return 1; } else { int tmpcount = -count; @@ -2323,20 +2756,32 @@ dopickup() if (is_pool(u.ux, u.uy)) { if (Wwalking || is_floater(youmonst.data) || is_clinger(youmonst.data) || (Flying && !Breathless)) { +/*JP You("cannot dive into the water to pick things up."); +*/ + You("•¨‚ðE‚¢‚ ‚°‚邽‚߂ɐ…‚É”ò‚Ñ‚±‚ß‚È‚¢D"); return 0; } else if (!Underwater) { +/*JP You_cant("even see the bottom, let alone pick up %s.", something); +*/ + pline("’ꂳ‚¦Œ©‚¦‚È‚¢CE‚¤‚Ì‚Í‚â‚߂悤D"); return 0; } } if (is_lava(u.ux, u.uy)) { if (Wwalking || is_floater(youmonst.data) || is_clinger(youmonst.data) || (Flying && !Breathless)) { +/*JP You_cant("reach the bottom to pick things up."); +*/ + You_cant("•¨‚ðE‚¢ã‚°‚邽‚ß‚É’ê‚Ü‚Å‚¢‚¯‚È‚¢D"); return 0; } else if (!likes_lava(youmonst.data)) { +/*JP You("would burn to a crisp trying to pick things up."); +*/ + You("E‚¢ã‚°‚悤‚Æ‚µ‚½‚çŠÛÅ‚°‚É‚È‚Á‚Ä‚µ‚Ü‚¤‚¾‚낤D"); return 0; } } @@ -2353,18 +2798,27 @@ dopickup() else if (IS_DOOR(lev->typ) && (lev->doormask & D_ISOPEN)) pline("It won't come off the hinges."); else +/*JP There("is nothing here to pick up."); +*/ + pline("‚±‚±‚ɂ͏E‚¦‚é‚à‚Ì‚Í‚È‚¢D"); return 0; } if (!can_reach_floor(TRUE)) { if (traphere && uteetering_at_seen_pit(traphere)) +/*JP You("cannot reach the bottom of the pit."); +*/ + You("—Ž‚µŒŠ‚Ì’ê‚É%s‚ª“Í‚©‚È‚©‚Á‚½D", body_part(HAND)); else if (u.usteed && P_SKILL(P_RIDING) < P_BASIC) rider_cant_reach(); else if (Blind && !can_reach_floor(TRUE)) You("cannot reach anything here."); else +/*JP You("cannot reach the %s.", surface(u.ux, u.uy)); +*/ + You("%s‚É‚½‚Ç‚è‚‚­‚±‚Æ‚ª‚Å‚«‚È‚¢D", surface(u.ux, u.uy)); return 0; } @@ -2629,22 +3083,42 @@ maybe_wail() const char *who; int i, powercnt; +#if 0 /*JP*/ who = (Role_if(PM_WIZARD) || Role_if(PM_VALKYRIE)) ? urole.name.m : "Elf"; +#else + who = (Role_if(PM_WIZARD) || Role_if(PM_VALKYRIE)) ? urole.name.m + : "ƒGƒ‹ƒt"; +#endif if (u.uhp == 1) { +/*JP pline("%s is about to die.", who); +*/ + pline("%s‚ÍŽ€‚É‚©‚¯‚Ä‚¢‚éD", who); } else { for (i = 0, powercnt = 0; i < SIZE(powers); ++i) if (u.uprops[powers[i]].intrinsic & INTRINSIC) ++powercnt; +/*JP pline(powercnt >= 4 ? "%s, all your powers will be lost..." +*/ + pline(powercnt >= 4 ? "%sC‚ ‚È‚½‚Ì‘S‚Ä‚Ì—Í‚ÍŽ¸‚í‚ê‚‚‚ ‚éDDD" +/*JP : "%s, your life force is running out.", +*/ + : "%sC‚ ‚È‚½‚̐¶–½—͂͐s‚«‚悤‚Æ‚µ‚Ä‚¢‚éDDD", who); } } else { +/*JP You_hear(u.uhp == 1 ? "the wailing of the Banshee..." +*/ + You_hear(u.uhp == 1 ? "ƒoƒ“ƒV[‚Ì‚·‚·‚苃‚«‚ª•·‚±‚¦‚éDDD" +/*JP : "the howling of the CwnAnnwn..."); +*/ + : "ƒN[ƒ“EƒAƒ“ƒk[ƒ“‚̉“–i‚ª•·‚±‚¦‚éDDD"); } } @@ -2674,7 +3148,10 @@ boolean k_format; killer.format = k_format; if (killer.name != knam) /* the thing that killed you */ Strcpy(killer.name, knam ? knam : ""); +/*JP You("die..."); +*/ + pline("‚ ‚È‚½‚ÍŽ€‚É‚Ü‚µ‚½DDD"); done(DIED); } else if (n > 0 && u.uhp * 10 < u.uhpmax) { maybe_wail(); @@ -2778,7 +3255,10 @@ const char *str; if (str) pline1(str); else +/*JP You_cant("do that while carrying so much stuff."); +*/ + You("‘òŽR‚à‚Ì‚ðŽ‚¿‚·‚¬‚Ä‚¢‚é‚̂ŁC‚»‚ñ‚È‚±‚Æ‚Í‚Å‚«‚È‚¢D"); return 1; } return 0; diff --git a/src/hacklib.c b/src/hacklib.c index a590968..83e48c3 100644 --- a/src/hacklib.c +++ b/src/hacklib.c @@ -107,6 +107,9 @@ char *s; register char *p; for (p = s; *p; p++) +#if 1 /*JP*//*Š¿Žš‚͏¬•¶Žš‰»‚µ‚È‚¢*/ + if (is_kanji(*(unsigned char *)p)) p++; else +#endif if ('A' <= *p && *p <= 'Z') *p |= 040; return s; @@ -120,6 +123,9 @@ char *s; register char *p; for (p = s; *p; p++) +#if 1 /*JP*//*Š¿Žš‚͑啶Žš‰»‚µ‚È‚¢*/ + if (is_kanji(*(unsigned char *)p)) p++; else +#endif if ('a' <= *p && *p <= 'z') *p &= ~040; return s; @@ -265,6 +271,7 @@ const char *s; Static char buf[BUFSZ]; Strcpy(buf, s); +#if 0 /*JP*//*“ú–{Œê‚ł͏Š—LŠi‚Ìs‚ð•t‚¯‚È‚¢*/ if (!strcmpi(buf, "it")) /* it -> its */ Strcat(buf, "s"); else if (!strcmpi(buf, "you")) /* you -> your */ @@ -273,6 +280,7 @@ const char *s; Strcat(buf, "'"); else /* X -> X's */ Strcat(buf, "'s"); +#endif return buf; } diff --git a/src/invent.c b/src/invent.c index 430894a..dbe4392 100644 --- a/src/invent.c +++ b/src/invent.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" #define NOINVSYM '#' @@ -803,9 +808,13 @@ long amount; { const char *res; +#if 0 /*JP*/ res = Hallucination ? currencies[rn2(SIZE(currencies))] : "zorkmid"; if (amount != 1L) res = makeplural(res); +#else + res = Hallucination ? currencies[rn2(SIZE(currencies))] : "ƒS[ƒ‹ƒh"; +#endif return res; } @@ -947,6 +956,13 @@ const char *action; !!!! test if gold can be used in unusual ways (eaten etc.) !!!! may be able to remove "usegold" */ +/*JP +** word ‚ɂ͉pŒê‚Å“®ŽŒ‚ª“ü‚éD +** +** “ú–{Œê‚ł́Cu‚Ç‚ê‚ð‘‚«‚Ü‚·‚©v‚æ‚èu‚Ç‚ê‚ɏ‘‚«‚Ü‚·‚©v‚Ì•û‚ªŽ©‘R‚Ȃ̂ŁC +** Å‰‚̈ꕶŽš‚Ɂu‚Ɂv‚âu‚́v‚ðŽw’肵‚½ê‡‚͏•ŽŒ‚ð•ÏX‚·‚éD +** +*/ struct obj * getobj(let, word) register const char *let, *word; @@ -968,6 +984,17 @@ register const char *let, *word; boolean prezero; long dummymask; +#if 1 /*JP*/ + const char *jword; + const char *joshi; + const char *what; + + struct trans_verb *tv = trans_verb(word); + + jword = tv->jp; + what = tv->what; + joshi = tv->particle; +#endif if (*let == ALLOW_COUNT) let++, allowcnt = 1; if (*let == COIN_CLASS) @@ -1151,7 +1178,10 @@ register const char *let, *word; *ap = '\0'; if (!foo && !allowall && !allownone) { +/*JP You("don't have anything %sto %s.", foox ? "else " : "", word); +*/ + You("%s%s‚à‚Ì‚ðŽ‚Á‚Ä‚¢‚È‚¢D", foox ? "‘¼‚É" : "", jconj(jword, "‚ê‚é")); return (struct obj *) 0; } for (;;) { @@ -1160,16 +1190,25 @@ register const char *let, *word; allowcnt = 1; /* abort previous count */ prezero = FALSE; if (!buf[0]) { +/*JP Sprintf(qbuf, "What do you want to %s? [*]", word); +*/ + Sprintf(qbuf, "%s%s%s‚©H[*]", what, joshi, jpolite(jword)); } else { +/*JP Sprintf(qbuf, "What do you want to %s? [%s or ?*]", word, buf); +*/ + Sprintf(qbuf, "%s%s%s‚©H[%s or ?*]", what, joshi, jpolite(jword), buf); } if (in_doagain) ilet = readchar(); else ilet = yn_function(qbuf, (char *) 0, '\0'); if (digit(ilet) && !allowcnt) { +/*JP pline("No count allowed with this command."); +*/ + pline("‚±‚̃Rƒ}ƒ“ƒh‚ɐ”Žš‚͂‚©‚¦‚È‚¢D"); continue; } if (ilet == '0') @@ -1251,7 +1290,10 @@ register const char *let, *word; than one invent slot of gold and picking the non-'$' one */ || (otmp && otmp->oclass == COIN_CLASS)) { if (!usegold) { +/*JP You("cannot %s gold.", word); +*/ + You("‹à‰Ý%s%s‚±‚Æ‚Í‚Å‚«‚È‚¢D", joshi, jword); return (struct obj *) 0; } /* Historic note: early Nethack had a bug which was @@ -1263,7 +1305,10 @@ register const char *let, *word; if (allowcnt == 2 && cnt <= 0) { if (cnt < 0 || !prezero) pline_The( +/*JP "LRS would be very interested to know you have that much."); +*/ + "‚»‚Ì‹Z‚Í‚Æ‚ ‚éƒQ[ƒ€‚̃JƒWƒm‚ÅŽg‚¦‚½‚¯‚ǁC‚à‚Í‚âŽg‚¦‚È‚¢‚æD"); return (struct obj *) 0; } } @@ -1277,7 +1322,10 @@ register const char *let, *word; if (cnt == 0 && prezero) return (struct obj *) 0; if (cnt > 1) { +/*JP You("can only throw one item at a time."); +*/ + You("“¯Žž‚É‚½‚­‚³‚ñ‚Ì‚à‚Ì‚ð“Š‚°‚ç‚ê‚È‚¢D"); continue; } } @@ -1287,12 +1335,18 @@ register const char *let, *word; that's been moved above so that otmp can be checked earlier] */ /* verify the chosen object */ if (!otmp) { +/*JP You("don't have that object."); +*/ + You("‚»‚ñ‚È‚à‚Ì‚ÍŽ‚Á‚Ä‚¢‚È‚¢D"); if (in_doagain) return (struct obj *) 0; continue; } else if (cnt < 0 || otmp->quan < cnt) { +/*JP You("don't have that many! You have only %ld.", otmp->quan); +*/ + pline("‚»‚ñ‚È‚É‚½‚­‚³‚ñ‚ÍŽ‚Á‚Ä‚¢‚È‚¢I‚¹‚¢‚º‚¢%ldŒÂ‚Á‚Ä‚Æ‚±‚¾D", otmp->quan); if (in_doagain) return (struct obj *) 0; continue; @@ -1301,7 +1355,11 @@ register const char *let, *word; } if (!allowall && let && !index(let, otmp->oclass) && !(usegold && otmp->oclass == COIN_CLASS)) { +#if 0 /*JP*/ silly_thing(word, otmp); +#else + silly_thing(jword, otmp); +#endif return (struct obj *) 0; } if (allowcnt == 2) { /* cnt given */ @@ -1334,25 +1392,44 @@ struct obj *otmp; /* check for attempted use of accessory commands ('P','R') on armor and for corresponding armor commands ('W','T') on accessories */ if (ocls == ARMOR_CLASS) { +#if 0 /*JP*/ if (!strcmp(word, "put on")) s1 = "W", s2 = "wear", s3 = ""; else if (!strcmp(word, "remove")) s1 = "T", s2 = "take", s3 = " off"; +#else + if (!strcmp(word, "g‚ɂ‚¯‚é")) + s1 = "W", s2 = "g‚ɂ‚¯‚é", s3 = ""; + else if (!strcmp(word, "‚Í‚¸‚·")) + s1 = "T", s2 = "‚Í‚¸‚·", s3 = ""; +#endif } else if ((ocls == RING_CLASS || otyp == MEAT_RING) || ocls == AMULET_CLASS || (otyp == BLINDFOLD || otyp == TOWEL || otyp == LENSES)) { +#if 0 /*JP*/ if (!strcmp(word, "wear")) s1 = "P", s2 = "put", s3 = " on"; else if (!strcmp(word, "take off")) s1 = "R", s2 = "remove", s3 = ""; +#else + if (!strcmp(word, "g‚ɂ‚¯‚é")) + s1 = "P", s2 = "g‚ɂ‚¯‚é", s3 = ""; + else if (!strcmp(word, "‚Í‚¸‚·")) + s1 = "R", s2 = "‚Í‚¸‚·", s3 = ""; +#endif } if (s1) { +#if 0 /*JP*/ what = "that"; /* quantity for armor and accessory objects is always 1, but some things should be referred to as plural */ if (otyp == LENSES || is_gloves(otmp) || is_boots(otmp)) what = "those"; +#endif +/*JP pline("Use the '%s' command to %s %s%s.", s1, s2, what, s3); +*/ + pline("‚»‚ê‚ð%s‚É‚Í'%s'ƒRƒ}ƒ“ƒh‚ðŽg‚¤‚±‚ƁD", s2, s1); } else #endif pline(silly_thing_to, word); @@ -1420,6 +1497,13 @@ static NEARDATA const char removeables[] = { ARMOR_CLASS, WEAPON_CLASS, /* interactive version of getobj - used for Drop, Identify and */ /* Takeoff (A). Return the number of times fn was called successfully */ /* If combo is TRUE, we just use this to get a category list */ +/*JP CHECK: 3.4.3 ‚̌Ăяo‚µŒ³ +do.c:864: (result = ggetobj("drop", drop, 0, FALSE, (unsigned *)0)) < -1) +do.c:925: i = ggetobj("drop", drop, 0, TRUE, &ggoresults); +do_wear.c:2538: (result = ggetobj("take off", select_off, 0, FALSE, (unsigned *)0)) < -1) +do_wear.c:2586: if (ggetobj("take off", select_off, 0, TRUE, (unsigned *)0) == -2) +invent.c:1782: n = ggetobj("identify", identify, id_limit, FALSE, (unsigned *)0); +*/ int ggetobj(word, fn, mx, combo, resultflags) const char *word; @@ -1435,12 +1519,23 @@ unsigned *resultflags; char sym, *ip, olets[MAXOCLASSES + 5], ilets[MAXOCLASSES + 5]; char extra_removeables[3 + 1]; /* uwep,uswapwep,uquiver */ char buf[BUFSZ], qbuf[QBUFSZ]; +#if 1 /*JP*/ + const char *joshi = "‚ð"; + const char *jword; + + const struct trans_verb *tv = trans_verb(word); + jword = tv->jp; + joshi = tv->particle; +#endif if (resultflags) *resultflags = 0; takeoff = ident = allflag = m_seen = FALSE; if (!invent) { +/*JP You("have nothing to %s.", word); +*/ + You("%s‚à‚Ì‚ÍŽ‚Á‚Ä‚¢‚È‚¢D", jcan(jword)); return 0; } add_valid_menu_class(0); /* reset */ @@ -1480,8 +1575,13 @@ unsigned *resultflags; ilets[iletct] = '\0'; for (;;) { +#if 0 /*JP*/ Sprintf(qbuf, "What kinds of thing do you want to %s? [%s]", word, ilets); +#else + Sprintf(qbuf,"‚Ç‚ÌŽí—Þ‚Ì‚à‚Ì%s%s‚©H[%s]", joshi, + jpolite(jword), ilets); +#endif getlin(qbuf, buf); if (buf[0] == '\033') return 0; @@ -1514,23 +1614,38 @@ unsigned *resultflags; if (index(extra_removeables, oc_of_sym)) { ; /* skip rest of takeoff checks */ } else if (!index(removeables, oc_of_sym)) { +/*JP pline("Not applicable."); +*/ + pline("‚»‚ê‚Í‚Å‚«‚È‚¢D"); return 0; } else if (oc_of_sym == ARMOR_CLASS && !wearing_armor()) { noarmor(FALSE); return 0; } else if (oc_of_sym == WEAPON_CLASS && !uwep && !uswapwep && !uquiver) { +/*JP You("are not wielding anything."); +*/ + You("‰½‚à‘•”õ‚µ‚Ä‚¢‚È‚¢D"); return 0; } else if (oc_of_sym == RING_CLASS && !uright && !uleft) { +/*JP You("are not wearing rings."); +*/ + You("Žw—Ö‚ðg‚ɂ‚¯‚Ä‚¢‚È‚¢D"); return 0; } else if (oc_of_sym == AMULET_CLASS && !uamul) { +/*JP You("are not wearing an amulet."); +*/ + You("–‚œ‚¯‚ðg‚ɂ‚¯‚Ä‚¢‚È‚¢D"); return 0; } else if (oc_of_sym == TOOL_CLASS && !ublindf) { +/*JP You("are not wearing a blindfold."); +*/ + You("–Ú‰B‚µ‚ð‚µ‚Ä‚¢‚È‚¢D"); return 0; } } @@ -1559,7 +1674,10 @@ unsigned *resultflags; } else if (sym == 'm') { m_seen = TRUE; } else if (oc_of_sym == MAXOCLASSES) { +/*JP You("don't have any %c's.", sym); +*/ + You("%c‚É‘®‚·‚镨‚ðŽ‚Á‚Ä‚¢‚È‚¢D", sym); } else if (oc_of_sym != VENOM_CLASS) { /* suppress venom */ if (!index(olets, oc_of_sym)) { add_valid_menu_class(oc_of_sym); @@ -1599,6 +1717,12 @@ unsigned *resultflags; * If allflag then no questions are asked. Max gives the max nr of * objects to be treated. Return the number of objects treated. */ +/*JP CHECK: 3.4.3 ‚ł̌Ăяo‚µŒ³ +invent.c:1512:ggetobj() int cnt = askchain(&invent, olets, allflag, fn, ckfn, mx, word); +pickup.c:2615:("nodot") if (askchain((struct obj **)¤t_container->cobj, +pickup.c:2711:("nodot") (void) askchain((struct obj **)&invent, + word‚É‚Í“®ŽŒ‚ª‰pŒê‚Å“ü‚éB +*/ int askchain(objchn, olets, allflag, fn, ckfn, mx, word) struct obj **objchn; @@ -1666,9 +1790,15 @@ nextclass: Sprintf(qpfx, "%s: ", word), *qpfx = highc(*qpfx); first = FALSE; } +#if 0 /*JP*/ (void) safe_qbuf( qbuf, qpfx, "?", otmp, ininv ? safeq_xprname : doname, ininv ? safeq_shortxprname : ansimpleoname, "item"); +#else + (void) safe_qbuf( + qbuf, qpfx, "H", otmp, ininv ? safeq_xprname : doname, + ininv ? safeq_shortxprname : ansimpleoname, "ƒAƒCƒeƒ€"); +#endif sym = (takeoff || ident || otmp->quan < 2L) ? nyaq(qbuf) : nyNaq(qbuf); } else @@ -1724,9 +1854,15 @@ nextclass: if (olets && *olets && *++olets) goto nextclass; if (!takeoff && (dud || cnt)) +/*JP pline("That was all."); +*/ + pline("‚±‚ê‚Å‘S•”‚¾D"); else if (!dud && !cnt) +/*JP pline("No applicable objects."); +*/ + pline("‚»‚ê‚Í‚Å‚«‚È‚¢D"); ret: bypass_objlist(*objchn, FALSE); return cnt; @@ -1772,8 +1908,13 @@ int id_limit; /* assumptions: id_limit > 0 and at least one unID'd item is present */ while (id_limit) { +#if 0 /*JP:T*/ Sprintf(buf, "What would you like to identify %s?", first ? "first" : "next"); +#else + Sprintf(buf, "‚Ç‚ê‚ð%s‚ÉŽ¯•Ê‚µ‚Ü‚·‚©H", + first ? "Å‰" : "ŽŸ"); +#endif n = query_objlist(buf, invent, SIGNAL_NOMENU | SIGNAL_ESCAPE | USE_INVLET | INVORDER_SORT, &pick_list, PICK_ANY, not_fully_identified); @@ -1789,7 +1930,10 @@ int id_limit; } else if (n == -2) { /* player used ESC to quit menu */ break; } else if (n == -1) { /* no eligible items found */ +/*JP pline("That was all."); +*/ + pline("‚±‚ê‚Å‘S•”‚¾D"); break; } else if (!--tryct) { /* stop re-prompting */ pline1(thats_enough_tries); @@ -1816,8 +1960,13 @@ boolean learning_id; /* true if we just read unknown identify scroll */ ++unid_cnt, the_obj = obj; if (!unid_cnt) { +#if 0 /*JP:T*/ You("have already identified all %sof your possessions.", learning_id ? "the rest " : ""); +#else + You("%s‘S‚Ă̏Š—L•¨‚ðŽ¯•Ê‚µ‚Ä‚µ‚Ü‚Á‚Ä‚¢‚éD", + learning_id ? "Žc‚è" : ""); +#endif } else if (!id_limit || id_limit >= unid_cnt) { /* identify everything */ if (unid_cnt == 1) { @@ -1892,8 +2041,14 @@ long quan; { if (!prefix) prefix = ""; +#if 0 /*JP*/ pline("%s%s%s", prefix, *prefix ? " " : "", xprname(obj, (char *) 0, obj_to_let(obj), TRUE, 0L, quan)); +#else + pline("%s%s", + xprname(obj, (char *)0, obj_to_let(obj), *prefix ? FALSE : TRUE, 0L, quan), + prefix); +#endif } char * @@ -1925,13 +2080,20 @@ long quan; /* if non-0, print this quantity, not obj->quan */ */ if (cost != 0 || let == '*') { /* if dot is true, we're doing Iu, otherwise Ix */ +#if 0 /*JP*/ Sprintf(li, "%c - %-45s %6ld %s", +#else + Sprintf(li, "%c - %-45s %6ld%s", +#endif (dot && use_invlet ? obj->invlet : let), (txt ? txt : doname(obj)), cost, currency(cost)); } else { /* ordinary inventory display or pickup message */ Sprintf(li, "%c - %s%s", (use_invlet ? obj->invlet : let), +/*JP (txt ? txt : doname(obj)), (dot ? "." : "")); +*/ + (txt ? txt : doname(obj)), (dot ? "D" : "")); } if (savequan) obj->quan = savequan; @@ -2036,7 +2198,10 @@ long *out_cnt; * to here is short circuited away. */ if (!invent && !(flags.perm_invent && !lets && !want_reply)) { +/*JP pline("Not carrying anything."); +*/ + pline("‰½‚àŽ‚Á‚Ä‚¢‚È‚¢D"); return 0; } @@ -2394,8 +2559,13 @@ dounpaid() } putstr(win, 0, ""); +#if 0 /*JP*/ putstr(win, 0, xprname((struct obj *) 0, "Total:", '*', FALSE, totcost, 0L)); +#else + putstr(win, 0, + xprname((struct obj *) 0, "‡ŒvF", '*', FALSE, totcost, 0L)); +#endif display_nhwindow(win, FALSE); destroy_nhwindow(win); } @@ -2442,10 +2612,16 @@ dotypeinv() boolean billx = *u.ushops && doinvbill(0); menu_item *pick_list; boolean traditional = TRUE; +/*JP const char *prompt = "What type of object do you want an inventory of?"; +*/ + const char *prompt = "‚Ç‚ÌŽí—Þ‚ÌŽ‚¿•¨‚ðŒ©‚Ü‚·‚©H"; if (!invent && !billx) { +/*JP You("aren't carrying anything."); +*/ + You("‚»‚ÌŽí—Þ‚Ì•¨‚͉½‚àŽ‚Á‚Ä‚¢‚È‚¢D"); return 0; } unpaid_count = count_unpaid(invent); @@ -2538,15 +2714,23 @@ dotypeinv() if (billx) (void) doinvbill(1); else +#if 0 /*JP*/ pline("No used-up objects%s.", unpaid_count ? " on your shopping bill" : ""); +#else + pline("Žg‚Á‚Ä‚µ‚Ü‚Á‚½•¨‚Í%s‚È‚¢D", + unpaid_count ? "¤“X‚̐¿‹‘‚É‚Í" : ""); +#endif return 0; } if (c == 'u' || (c == 'U' && unpaid_count && !ucnt)) { if (unpaid_count) dounpaid(); else +/*JP You("are not carrying any unpaid objects."); +*/ + You("–¢•¥‚¢‚̃AƒCƒeƒ€‚ðŽ‚Á‚Ä‚¢‚È‚¢D"); return 0; } if (traditional) { @@ -2576,11 +2760,17 @@ dotypeinv() "have no objects whose blessed/uncursed/cursed status is unknown."); break; /* better phrasing is desirable */ default: +/*JP which = "such"; +*/ + which = "‚»‚̂悤‚È"; break; } if (which) +/*JP You("have no %s objects.", which); +*/ + You("%s‚à‚͉̂½‚àŽ‚Á‚Ä‚¢‚È‚¢D", which); return 0; } this_type = oclass; @@ -2614,7 +2804,10 @@ char *buf; cmap = S_vodoor; break; /* "open door" */ case D_BROKEN: +/*JP dfeature = "broken door"; +*/ + dfeature = "‰ó‚ꂽ”à"; break; default: cmap = S_vcdoor; @@ -2622,7 +2815,10 @@ char *buf; } /* override door description for open drawbridge */ if (is_drawbridge_wall(x, y) >= 0) +/*JP dfeature = "open drawbridge portcullis", cmap = -1; +*/ + dfeature = "~‚è‚Ä‚¢‚é’µ‚Ë‹´", cmap = -1; } else if (IS_FOUNTAIN(ltyp)) cmap = S_fountain; /* "fountain" */ else if (IS_THRONE(ltyp)) @@ -2632,10 +2828,14 @@ char *buf; else if (is_ice(x, y)) cmap = S_ice; /* "ice" */ else if (is_pool(x, y)) +/*JP dfeature = "pool of water"; +*/ + dfeature = "…‚½‚Ü‚è"; else if (IS_SINK(ltyp)) cmap = S_sink; /* "sink" */ else if (IS_ALTAR(ltyp)) { +#if 0 /*JP*/ Sprintf(altbuf, "%saltar to %s (%s)", ((lev->altarmask & AM_SHRINE) && (Is_astralevel(&u.uz) || Is_sanctum(&u.uz))) @@ -2643,6 +2843,15 @@ char *buf; : "", a_gname(), align_str(Amask2align(lev->altarmask & ~AM_SHRINE))); +#else + Sprintf(altbuf, "%s%s‚̍Ւd(%s)", + ((lev->altarmask & AM_SHRINE) + && (Is_astralevel(&u.uz) || Is_sanctum(&u.uz))) + ? "‚ˆÊ‚Ì" + : "", + a_gname(), + align_str(Amask2align(lev->altarmask & ~AM_SHRINE))); +#endif dfeature = altbuf; } else if ((x == xupstair && y == yupstair) || (x == sstairs.sx && y == sstairs.sy && sstairs.up)) @@ -2663,7 +2872,10 @@ char *buf; else if (ltyp == TREE) cmap = S_tree; /* "tree" */ else if (ltyp == IRONBARS) +/*JP dfeature = "set of iron bars"; +*/ + dfeature = "“S‚Ì–_"; if (cmap >= 0) dfeature = defsyms[cmap].explanation; @@ -2681,7 +2893,11 @@ boolean picked_some; { struct obj *otmp; struct trap *trap; +#if 0 /*JP:C*/ const char *verb = Blind ? "feel" : "see"; +#else + const char *verb = Blind ? "‚ª‚ ‚é‚悤‚È‹C‚ª‚µ‚½" : "‚ð‚݂‚¯‚½"; +#endif const char *dfeature = (char *) 0; char fbuf[BUFSZ], fbuf2[BUFSZ]; winid tmpwin; @@ -2692,11 +2908,22 @@ boolean picked_some; skip_objects = (flags.pile_limit > 0 && obj_cnt >= flags.pile_limit); if (u.uswallow && u.ustuck) { struct monst *mtmp = u.ustuck; +#if 0 /*JP:T*/ Sprintf(fbuf, "Contents of %s %s", s_suffix(mon_nam(mtmp)), mbodypart(mtmp, STOMACH)); +#else + Sprintf(fbuf, "%s‚Ì%s‚Ì’†g", mon_nam(mtmp), + mbodypart(mtmp, STOMACH)); +#endif +#if 0 /*JP*//*Œê‡‚ªˆá‚¤‚Ì‚Å‘f’¼‚É*/ /* Skip "Contents of " by using fbuf index 12 */ You("%s to %s what is lying in %s.", Blind ? "try" : "look around", verb, &fbuf[12]); +#else + You("%s‚Ì%s‚ɉ½‚ª‚ ‚é‚©%sD", + mon_nam(mtmp), mbodypart(mtmp, STOMACH), + Blind ? "‚³‚®‚Á‚½" : "Œ©‰ñ‚µ‚½"); +#endif otmp = mtmp->minvent; if (otmp) { for (; otmp; otmp = otmp->nobj) { @@ -2705,31 +2932,53 @@ boolean picked_some; if (otmp->otyp == CORPSE) feel_cockatrice(otmp, FALSE); } +#if 0 /*JP*/ if (Blind) Strcpy(fbuf, "You feel"); Strcat(fbuf, ":"); +#else + Sprintf(fbuf, "‚±‚±‚É‚ ‚é%s‚à‚̂́F", Blind ? "‚炵‚¢" : ""); +#endif (void) display_minventory(mtmp, MINV_ALL, fbuf); } else { +#if 0 /*JP:C*/ You("%s no objects here.", verb); +#else + pline(Blind ? "‚ ‚È‚½‚͉½‚à‚È‚¢‚悤‚È‹C‚ª‚µ‚½D" + : "‚ ‚È‚½‚͉½‚à‚݂‚¯‚ç‚ê‚È‚©‚Á‚½D"); +#endif } return !!Blind; } if (!skip_objects && (trap = t_at(u.ux, u.uy)) && trap->tseen) +/*JP There("is %s here.", +*/ + pline("‚±‚±‚É‚Í%s‚ª‚ ‚éD", an(defsyms[trap_to_defsym(trap->ttyp)].explanation)); otmp = level.objects[u.ux][u.uy]; dfeature = dfeature_at(u.ux, u.uy, fbuf2); +/*JP if (dfeature && !strcmp(dfeature, "pool of water") && Underwater) +*/ + if (dfeature && !strcmp(dfeature, "…‚½‚Ü‚è") && Underwater) dfeature = 0; if (Blind) { boolean drift = Is_airlevel(&u.uz) || Is_waterlevel(&u.uz); +/*JP if (dfeature && !strncmp(dfeature, "altar ", 6)) { +*/ + if (dfeature && !strncmp(dfeature, "Õ’d", 4)) { /* don't say "altar" twice, dfeature has more info */ +/*JP You("try to feel what is here."); +*/ + You("‚±‚±‚ɉ½‚ª‚ ‚é‚Ì‚©’²‚ׂ悤‚Æ‚µ‚½D"); } else { +#if 0 /*JP*/ const char *where = (Blind && !can_reach_floor(TRUE)) ? "lying beneath you" : "lying here on the ", @@ -2739,17 +2988,32 @@ boolean picked_some; You("try to feel what is %s%s.", drift ? "floating here" : where, drift ? "" : onwhat); +#else + if (drift) { + You("‰½‚ª•‚‚¢‚Ä‚¢‚é‚Ì‚©’²‚ׂ悤‚Æ‚µ‚½D"); + } else if (Blind && !can_reach_floor(TRUE)) { + You("‰½‚ª‘«‰º‚É‚ ‚é‚Ì‚©’²‚ׂ悤‚Æ‚µ‚½D"); + } else { + You("‰½‚ª%s‚̏ã‚É‚ ‚é‚Ì‚©’²‚ׂ悤‚Æ‚µ‚½D", surface(u.ux, u.uy)); + } +#endif } if (dfeature && !drift && !strcmp(dfeature, surface(u.ux, u.uy))) dfeature = 0; /* ice already identified */ if (!can_reach_floor(TRUE)) { +/*JP pline("But you can't reach it!"); +*/ + pline("‚µ‚©‚µ“Í‚©‚È‚¢I"); return 0; } } if (dfeature) +/*JP Sprintf(fbuf, "There is %s here.", an(dfeature)); +*/ + Sprintf(fbuf, "‚±‚±‚É‚Í%s‚ª‚ ‚éD", an(dfeature)); if (!otmp || is_lava(u.ux, u.uy) || (is_pool(u.ux, u.uy) && !Underwater)) { @@ -2757,7 +3021,13 @@ boolean picked_some; pline1(fbuf); read_engr_at(u.ux, u.uy); /* Eric Backus */ if (!skip_objects && (Blind || !dfeature)) +#if 0 /*JP:C*/ You("%s no objects here.", verb); +#else + pline(Blind ? + "‚È‚É‚à‚È‚¢‚悤‚È‹C‚ª‚·‚éD" : + "‚È‚É‚à‚݂‚¯‚ç‚ê‚È‚©‚Á‚½D"); +#endif return !!Blind; } /* we know there is something here */ @@ -2769,6 +3039,7 @@ boolean picked_some; if (obj_cnt == 1 && otmp->quan == 1L) There("is %s object here.", picked_some ? "another" : "an"); else +#if 0 /*JP*/ There("are %s%s objects here.", (obj_cnt < 5) ? "a few" @@ -2776,6 +3047,13 @@ boolean picked_some; ? "several" : "many", picked_some ? " more" : ""); +#else + pline("‚±‚±‚É‚Í%s%s‚à‚Ì‚ª‚ ‚éD", + picked_some ? "‚³‚ç‚É" : "", + (obj_cnt < 10) + ? "‚¢‚­‚‚©‚Ì" + : "‚½‚­‚³‚ñ‚Ì"); +#endif for (; otmp; otmp = otmp->nexthere) if (otmp->otyp == CORPSE && will_feel_cockatrice(otmp, FALSE)) { pline("%s %s%s.", @@ -2796,7 +3074,10 @@ boolean picked_some; if (dfeature) pline1(fbuf); read_engr_at(u.ux, u.uy); /* Eric Backus */ +/*JP You("%s here %s.", verb, doname_with_price(otmp)); +*/ + pline("%s%sD", doname_with_price(otmp), verb); iflags.last_msg = PLNMSG_ONE_ITEM_HERE; if (otmp->otyp == CORPSE) feel_cockatrice(otmp, FALSE); @@ -2809,9 +3090,15 @@ boolean picked_some; putstr(tmpwin, 0, fbuf); putstr(tmpwin, 0, ""); } +#if 0 /*JP*/ Sprintf(buf, "%s that %s here:", picked_some ? "Other things" : "Things", Blind ? "you feel" : "are"); +#else + Sprintf(buf, "%s‚±‚±‚É‚ ‚é%s‚à‚̂́F", + picked_some ? "‘¼‚É" : "", + Blind ? "‚炵‚¢" : ""); +#endif putstr(tmpwin, 0, buf); for (; otmp; otmp = otmp->nexthere) { if (otmp->otyp == CORPSE && will_feel_cockatrice(otmp, FALSE)) { @@ -2861,12 +3148,23 @@ boolean force_touch; Strcpy(kbuf, corpse_xname(otmp, (const char *) 0, CXN_PFX_THE)); if (poly_when_stoned(youmonst.data)) +#if 0 /*JP*/ You("touched %s with your bare %s.", kbuf, makeplural(body_part(HAND))); +#else + You("%s‚ÌŽ€‘Ì‚É‘f%s‚ŐG‚Á‚½D", kbuf, + body_part(HAND)); +#endif else +/*JP pline("Touching %s is a fatal mistake...", kbuf); +*/ + pline("%s‚ÌŽ€‘̂ɐG‚ê‚é‚Ì‚Í’v–½“I‚ȊԈႢ‚¾DDD", kbuf); /* normalize body shape here; hand, not body_part(HAND) */ +/*JP Sprintf(kbuf, "touching %s bare-handed", killer_xname(otmp)); +*/ + Sprintf(kbuf, "%s‚ÌŽ€‘̂ɐG‚ê‚Ä", killer_xname(otmp)); /* will call polymon() for the poly_when_stoned() case */ instapetrify(kbuf); } @@ -2974,9 +3272,15 @@ doprgold() take containers into account */ long umoney = money_cnt(invent); if (!umoney) +/*JP Your("wallet is empty."); +*/ + Your("à•z‚Í‹ó‚Á‚Û‚¾D"); else +/*JP Your("wallet contains %ld %s.", umoney, currency(umoney)); +*/ + Your("à•z‚É‚Í%ld%s“ü‚Á‚Ä‚¢‚éD", umoney, currency(umoney)); shopper_financial_report(); return 0; } @@ -2986,7 +3290,10 @@ int doprwep() { if (!uwep) { +/*JP You("are empty %s.", body_part(HANDED)); +*/ + if(!uwep) You("%s‚É•Ší‚ð‚à‚Á‚Ä‚¢‚È‚¢D", body_part(HAND)); } else { prinv((char *) 0, uwep, 0L); if (u.twoweap) @@ -3001,11 +3308,15 @@ noarmor(report_uskin) boolean report_uskin; { if (!uskin || !report_uskin) { +/*JP You("are not wearing any armor."); +*/ + You("ŠZ‚ð’…‚Ä‚¢‚È‚¢D"); } else { char *p, *uskinname, buf[BUFSZ]; uskinname = strcpy(buf, simpleonames(uskin)); +#if 0 /*JP*/ /* shorten "set of dragon scales" to " scales" and " dragon scale mail" to " scale mail" */ if (!strncmpi(uskinname, "set of ", 7)) @@ -3013,8 +3324,15 @@ boolean report_uskin; if ((p = strstri(uskinname, " dragon ")) != 0) while ((p[1] = p[8]) != '\0') ++p; +#else /*u<F>ƒhƒ‰ƒSƒ“‚̗؁v‚ðu<F>‚̗؁v‚É‚·‚é*/ + if ((p = strstri(uskinname, "ƒhƒ‰ƒSƒ“‚Ì—Ø")) != 0) + strcpy(p, "—Ø"); +#endif +/*JP You("are not wearing armor but have %s embedded in your skin.", +*/ + You("‚ÍŠZ‚ð’…‚Ä‚¢‚È‚¢‚ªC%s‚ª”§‚É–„‚ߍž‚Ü‚ê‚Ä‚¢‚éD", uskinname); } } @@ -3059,7 +3377,10 @@ int doprring() { if (!uleft && !uright) +/*JP You("are not wearing any rings."); +*/ + You("Žw—Ö‚ðg‚ɂ‚¯‚Ä‚¢‚È‚¢D"); else { char lets[3]; register int ct = 0; @@ -3079,7 +3400,10 @@ int dopramulet() { if (!uamul) +/*JP You("are not wearing an amulet."); +*/ + You("–‚œ‚¯‚ðg‚ɂ‚¯‚Ä‚¢‚È‚¢D"); else prinv((char *) 0, uamul, 0L); return 0; @@ -3110,7 +3434,10 @@ doprtool() lets[ct++] = obj_to_let(otmp); lets[ct] = '\0'; if (!ct) +/*JP You("are not using any tools."); +*/ + You("Žg‚¦‚铹‹ï‚ð‚à‚Á‚Ä‚¢‚È‚¢D"); else (void) display_inventory(lets, FALSE); return 0; @@ -3130,7 +3457,10 @@ doprinuse() lets[ct++] = obj_to_let(otmp); lets[ct] = '\0'; if (!ct) +/*JP You("are not wearing or wielding anything."); +*/ + You("‰½‚à’…‚Ä‚¢‚È‚¢‚µC‘•”õ‚µ‚Ä‚¢‚È‚¢D"); else (void) display_inventory(lets, FALSE); return 0; @@ -3169,14 +3499,23 @@ long numused; * This must match the object class order. */ STATIC_VAR NEARDATA const char *names[] = { +#if 0 /*JP*/ 0, "Illegal objects", "Weapons", "Armor", "Rings", "Amulets", "Tools", "Comestibles", "Potions", "Scrolls", "Spellbooks", "Wands", "Coins", "Gems/Stones", "Boulders/Statues", "Iron balls", "Chains", "Venoms" +#else + 0, "–­‚È•¨‘Ì", "•Ší", "ŠZ", "Žw—Ö", "–‚œ‚¯", "“¹‹ï", + "H—¿", "–ò", "Šª•¨", "–‚–@‘", "ñ", "‹à‰Ý", + "•óÎ", "Šâ‚Ü‚½‚Í’¤‘œ", "“S‹…", "½", "“Å" +#endif }; static NEARDATA const char oth_symbols[] = { CONTAINED_SYM, '\0' }; +/*JP static NEARDATA const char *oth_names[] = { "Bagged/Boxed items" }; +*/ +static NEARDATA const char *oth_names[] = { "‹l‚ß‚ç‚ꂽ“¹‹ï" }; static NEARDATA char *invbuf = (char *) 0; static NEARDATA unsigned invbufsiz = 0; @@ -3200,7 +3539,10 @@ boolean unpaid, showsym; else class_name = names[0]; +/*JP len = strlen(class_name) + (unpaid ? sizeof "unpaid_" : sizeof "") +*/ + len = strlen(class_name) + (unpaid ? sizeof "–¢•¥‚¢‚Ì" : sizeof "") + (oclass ? (strlen(ocsymfmt) + invbuf_sympadding) : 0); if (len > invbufsiz) { if (invbuf) @@ -3209,7 +3551,10 @@ boolean unpaid, showsym; invbuf = (char *) alloc(invbufsiz); } if (unpaid) +/*JP Strcat(strcpy(invbuf, "Unpaid "), class_name); +*/ + Strcat(strcpy(invbuf, "–¢•¥‚¢‚Ì"), class_name); else Strcpy(invbuf, class_name); if ((oclass != 0) && showsym) { @@ -3359,8 +3704,13 @@ doorganize() /* inventory organizer by Del Lamb */ compactify(buf); /* get 'to' slot to use as destination */ +#if 0 /*JP:T*/ Sprintf(qbuf, "Adjust letter to what [%s]%s?", buf, invent ? " (? see used letters)" : ""); +#else + Sprintf(qbuf, "‚Ç‚Ì•¶Žš‚É’²®‚µ‚Ü‚·‚©[%s]%sH", buf, + invent ? " (? ‚ÅŽg‚Á‚Ä‚¢‚镶Žš‚ð•\Ž¦)" : ""); +#endif for (trycnt = 1; ; ++trycnt) { let = yn_function(qbuf, (char *) 0, '\0'); if (let == '?' || let == '*') { @@ -3385,11 +3735,18 @@ doorganize() /* inventory organizer by Del Lamb */ break; /* got one */ if (trycnt == 5) goto noadjust; +#if 0 /*JP*/ pline("Select an inventory slot letter."); /* else try again */ +#else + pline("Ž‚¿•¨‚Ì•¶Žš‚ð‘I‚ñ‚Å‚­‚¾‚³‚¢D"); +#endif } /* change the inventory and print the resulting item */ +/*JP adj_type = !splitting ? "Moving:" : "Splitting:"; +*/ + adj_type = !splitting ? "‚ðˆÚ“®‚µ‚½D" : "‚𕪊„‚µ‚½D"; /* * don't use freeinv/addinv to avoid double-touching artifacts, @@ -3400,13 +3757,19 @@ doorganize() /* inventory organizer by Del Lamb */ for (otmp = invent; otmp;) { if (!splitting) { if (merged(&otmp, &obj)) { +/*JP adj_type = "Merging:"; +*/ + adj_type = "‚ð‡‚í‚¹‚½D"; obj = otmp; otmp = otmp->nobj; extract_nobj(obj, &invent); continue; /* otmp has already been updated */ } else if (otmp->invlet == let) { +/*JP adj_type = "Swapping:"; +*/ + adj_type = "‚ðŒðŠ·‚µ‚½D"; otmp->invlet = obj->invlet; } } else { @@ -3546,8 +3909,13 @@ char *title; incl_hero = (do_all && u.uswallow && mon == u.ustuck), have_inv = (mon->minvent != 0), have_any = (have_inv || incl_hero); +#if 0 /*JP*/ Sprintf(tmp, "%s %s:", s_suffix(noit_Monnam(mon)), do_all ? "possessions" : "armament"); +#else + Sprintf(tmp, "%s‚Ì%sF", Monnam(mon), + do_all ? "Ž‚¿•¨" : "‘•”õ"); +#endif if (do_all ? have_any : (mon->misc_worn_check || MON_WEP(mon))) { /* Fool the 'weapon in hand' routine into @@ -3563,7 +3931,10 @@ char *title; set_uasmon(); } else { +/*JP invdisp_nothing(title ? title : tmp, "(none)"); +*/ + invdisp_nothing(title ? title : tmp, "(‰½‚à‚È‚¢)"); n = 0; } @@ -3588,14 +3959,22 @@ register struct obj *obj; int n; menu_item *selected = 0; +#if 0 /*JP*/ (void) safe_qbuf(qbuf, "Contents of ", ":", obj, doname, ansimpleoname, "that"); +#else + (void) safe_qbuf(qbuf, "", "‚Ì’†gF", obj, doname, ansimpleoname, + "‚»"); +#endif if (obj->cobj) { n = query_objlist(qbuf, obj->cobj, INVORDER_SORT, &selected, PICK_NONE, allow_all); } else { +/*JP invdisp_nothing(qbuf, "(empty)"); +*/ + invdisp_nothing(qbuf, "(‹ó‚Á‚Û)"); n = 0; } if (n > 0) { @@ -3643,7 +4022,10 @@ boolean as_if_seen; if (n) { only.x = x; only.y = y; +/*JP if (query_objlist("Things that are buried here:", level.buriedobjlist, +*/ + if (query_objlist("‚±‚±‚É–„‚ß‚ç‚ê‚Ä‚¢‚é‚à‚́F", level.buriedobjlist, INVORDER_SORT, &selected, PICK_NONE, only_here) > 0) free((genericptr_t) selected); only.x = only.y = 0; diff --git a/src/light.c b/src/light.c index 469987c..fa28eec 100644 --- a/src/light.c +++ b/src/light.c @@ -666,15 +666,30 @@ struct obj *obj; { switch (arti_light_radius(obj)) { case 3: +#if 0 /*JP*/ return "brilliantly"; /* blessed */ +#else + return "ƒLƒ‰ƒLƒ‰‚Æ"; /* blessed */ +#endif case 2: +#if 0 /*JP*/ return "brightly"; /* uncursed */ +#else + return "–¾‚é‚­"; /* uncursed */ +#endif case 1: +#if 0 /*JP*/ return "dimly"; /* cursed */ +#else + return "”–ˆÃ‚­"; /* cursed */ +#endif default: break; } +/*JP return "strangely"; +*/ + return "•sŽv‹c‚É"; } int diff --git a/src/lock.c b/src/lock.c index 16f1c63..41f56aa 100644 --- a/src/lock.c +++ b/src/lock.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" STATIC_PTR int NDECL(picklock); @@ -46,17 +51,32 @@ lock_action() { /* "unlocking"+2 == "locking" */ static const char *actions[] = { +#if 0 /*JP*/ "unlocking the door", /* [0] */ "unlocking the chest", /* [1] */ "unlocking the box", /* [2] */ "picking the lock" /* [3] */ +#else + "”à‚ÌŒ®‚ð‚Í‚¸‚·", + "•ó” ‚ÌŒ®‚ð‚Í‚¸‚·", + "” ‚ÌŒ®‚ð‚Í‚¸‚·", + "Œ®‚ð‚Í‚¸‚·" +#endif }; /* if the target is currently unlocked, we're trying to lock it now */ if (xlock.door && !(xlock.door->doormask & D_LOCKED)) +#if 0 /*JP*/ return actions[0] + 2; /* "locking the door" */ +#else /* ‰pŒê‚Í un ‚ðŽæ‚ê‚΋t‚̈Ӗ¡‚ɂȂ邪C“ú–{Œê‚Í‚»‚¤‚Í‚¢‚©‚È‚¢‚̂ŃŠƒeƒ‰ƒ‹‚ð‘‚­ */ + return "”à‚ÉŒ®‚ð‚©‚¯‚é"; +#endif else if (xlock.box && !xlock.box->olocked) +#if 0 /*JP*/ return xlock.box->otyp == CHEST ? actions[1] + 2 : actions[2] + 2; +#else + return xlock.box->otyp == CHEST ? "•ó” ‚ÉŒ®‚ð‚©‚¯‚é" : "” ‚ÉŒ®‚ð‚©‚¯‚é"; +#endif /* otherwise we're trying to unlock it */ else if (xlock.picktyp == LOCK_PICK) return actions[3]; /* "picking the lock" */ @@ -84,19 +104,31 @@ picklock(VOID_ARGS) } switch (xlock.door->doormask) { case D_NODOOR: +/*JP pline("This doorway has no door."); +*/ + pline("o“üŒû‚É‚Í”à‚ª‚È‚¢D"); return ((xlock.usedtime = 0)); case D_ISOPEN: +/*JP You("cannot lock an open door."); +*/ + pline("ŠJ‚¢‚Ä‚é”à‚ÉŒ®‚ð‚©‚¯‚ç‚ê‚È‚¢D"); return ((xlock.usedtime = 0)); case D_BROKEN: +/*JP pline("This door is broken."); +*/ + pline("”à‚͉ó‚ê‚Ä‚¢‚éD"); return ((xlock.usedtime = 0)); } } if (xlock.usedtime++ >= 50 || nohands(youmonst.data)) { +/*JP You("give up your attempt at %s.", lock_action()); +*/ + pline("%s‚Ì‚ð‚ ‚«‚ç‚ß‚½D", lock_action()); exercise(A_DEX, TRUE); /* even if you don't succeed */ return ((xlock.usedtime = 0)); } @@ -104,10 +136,16 @@ picklock(VOID_ARGS) if (rn2(100) >= xlock.chance) return 1; /* still busy */ +/*JP You("succeed in %s.", lock_action()); +*/ + You("%s‚̂ɐ¬Œ÷‚µ‚½D", lock_action()); if (xlock.door) { if (xlock.door->doormask & D_TRAPPED) { +/*JP b_trapped("door", FINGER); +*/ + b_trapped("”à", FINGER); xlock.door->doormask = D_NODOOR; unblock_point(u.ux + u.dx, u.uy + u.dy); if (*in_rooms(u.ux + u.dx, u.uy + u.dy, SHOPBASE)) @@ -150,7 +188,10 @@ boolean destroyit; peaceful_shk = costly && (boolean) shkp->mpeaceful; long loss = 0L; +/*JP pline("In fact, you've totally destroyed %s.", the(xname(box))); +*/ + pline("ŽÀÛ‚Ì‚Æ‚±‚ëC%s‚ðŠ®‘S‚ɉ󂵂õ‚Ü‚Á‚½D", xname(xlock.box)); /* Put the contents on ground at the hero's feet. */ while ((otmp = box->cobj) != 0) { obj_extract_self(otmp); @@ -175,7 +216,10 @@ boolean destroyit; if (costly) loss += stolen_value(box, u.ux, u.uy, peaceful_shk, TRUE); if (loss) +/*JP You("owe %ld %s for objects destroyed.", loss, currency(loss)); +*/ + You("Ší•¨”j‘¹‚Å%ld%s‚ÌŽØ‚è‚ð‚‚­‚Á‚½D", loss, currency(loss)); delobj(box); } } @@ -188,7 +232,10 @@ forcelock(VOID_ARGS) return ((xlock.usedtime = 0)); /* you or it moved */ if (xlock.usedtime++ >= 50 || !uwep || nohands(youmonst.data)) { +/*JP You("give up your attempt to force the lock."); +*/ + pline("Œ®‚ð‚±‚¶ŠJ‚¯‚é‚Ì‚ð‚ ‚«‚ç‚ß‚½D"); if (xlock.usedtime >= 50) /* you made the effort */ exercise((xlock.picktyp) ? A_DEX : A_STR, TRUE); return ((xlock.usedtime = 0)); @@ -200,10 +247,17 @@ forcelock(VOID_ARGS) /* for a +0 weapon, probability that it survives an unsuccessful * attempt to force the lock is (.992)^50 = .67 */ +#if 0 /*JP*/ pline("%sour %s broke!", (uwep->quan > 1L) ? "One of y" : "Y", xname(uwep)); +#else + pline("%s‚͉ó‚ê‚Ä‚µ‚Ü‚Á‚½I",xname(uwep)); +#endif useup(uwep); +/*JP You("give up your attempt to force the lock."); +*/ + pline("Œ®‚ð‚±‚¶ŠJ‚¯‚é‚Ì‚ð‚ ‚«‚ç‚ß‚½D"); exercise(A_DEX, TRUE); return ((xlock.usedtime = 0)); } @@ -213,7 +267,10 @@ forcelock(VOID_ARGS) if (rn2(100) >= xlock.chance) return 1; /* still busy */ +/*JP You("succeed in forcing the lock."); +*/ + pline("Œ®‚ð‚±‚¶ŠJ‚¯‚½D"); breakchestlock(xlock.box, (boolean) (!xlock.picktyp && !rn2(3))); exercise((xlock.picktyp) ? A_DEX : A_STR, TRUE); @@ -251,30 +308,51 @@ struct obj *pick; /* check whether we're resuming an interrupted previous attempt */ if (xlock.usedtime && picktyp == xlock.picktyp) { +/*JP static char no_longer[] = "Unfortunately, you can no longer %s %s."; +*/ + static char no_longer[] = "‚´‚ñ‚Ë‚ñ‚È‚ª‚çC‚ ‚È‚½‚Í%s%s"; if (nohands(youmonst.data)) { +/*JP const char *what = (picktyp == LOCK_PICK) ? "pick" : "key"; +*/ + const char *what = (picktyp == LOCK_PICK) ? "Œ®ŠJ‚¯Ší‹ï" : "Œ®"; if (picktyp == CREDIT_CARD) +/*JP what = "card"; +*/ + what = "ƒJ[ƒh"; +/*JP pline(no_longer, "hold the", what); +*/ + pline(no_longer, what, "‚ð‚‚©‚ß‚È‚¢"); reset_pick(); return PICKLOCK_LEARNED_SOMETHING; } else if (u.uswallow || (xlock.box && !can_reach_floor(TRUE))) { +/*JP pline(no_longer, "reach the", "lock"); +*/ + pline(no_longer, "Œ®‚É", "“Í‚©‚È‚¢"); reset_pick(); return PICKLOCK_LEARNED_SOMETHING; } else { const char *action = lock_action(); +/*JP You("resume your attempt at %s.", action); +*/ + pline("%s‚Ì‚ðÄŠJ‚µ‚½D", action); set_occupation(picklock, action, 0); return PICKLOCK_DID_SOMETHING; } } if (nohands(youmonst.data)) { +/*JP You_cant("hold %s -- you have no hands!", doname(pick)); +*/ + You("%s‚ð‚‚©‚Þ‚±‚Æ‚ª‚Å‚«‚È‚¢IŽè‚ª‚È‚¢‚ñ‚¾‚à‚́I", xname(pick)); return PICKLOCK_DID_NOTHING; } else if (u.uswallow) { You_cant("%sunlock %s.", (picktyp == CREDIT_CARD) ? "" : "lock or ", @@ -289,7 +367,10 @@ struct obj *pick; } ch = 0; /* lint suppression */ +/*JP if (!get_adjacent_loc((char *) 0, "Invalid location!", u.ux, u.uy, &cc)) +*/ + if (!get_adjacent_loc((char *) 0, "ˆÊ’u‚ª‚¨‚©‚µ‚¢I", u.ux, u.uy, &cc)) return PICKLOCK_DID_NOTHING; if (cc.x == u.ux && cc.y == u.uy) { /* pick lock on a container */ @@ -299,14 +380,25 @@ struct obj *pick; int count; if (u.dz < 0) { +#if 0 /*JP*/ There("isn't any sort of lock up %s.", Levitation ? "here" : "there"); +#else + pline("%s‚É‚ÍŒ®‚ð‚©‚¯‚é‚悤‚È•¨‚Í‚È‚¢D", + Levitation ? "‚±‚±" : "‰º•û"); +#endif return PICKLOCK_LEARNED_SOMETHING; } else if (is_lava(u.ux, u.uy)) { +/*JP pline("Doing that would probably melt %s.", yname(pick)); +*/ + pline("‚»‚ñ‚È‚±‚Æ‚ð‚µ‚½‚ç%s‚ª—n‚¯‚Ä‚µ‚Ü‚¤D", yname(pick)); return PICKLOCK_LEARNED_SOMETHING; } else if (is_pool(u.ux, u.uy) && !Underwater) { +/*JP pline_The("water has no lock."); +*/ + pline("…‚ɏù‘O‚Í‚È‚¢D"); return PICKLOCK_LEARNED_SOMETHING; } @@ -316,23 +408,46 @@ struct obj *pick; if (Is_box(otmp)) { ++count; if (!can_reach_floor(TRUE)) { +/*JP You_cant("reach %s from up here.", the(xname(otmp))); +*/ + You("‚±‚±‚©‚ç%s‚É“Í‚©‚È‚¢D", the(xname(otmp))); return PICKLOCK_LEARNED_SOMETHING; } it = 0; if (otmp->obroken) +/*JP verb = "fix"; +*/ + verb = "C•œ‚·‚é"; else if (!otmp->olocked) +/*JP verb = "lock", it = 1; +*/ + verb = "Œ®‚ð‚©‚¯‚é", it = 1; else if (picktyp != LOCK_PICK) +/*JP verb = "unlock", it = 1; +*/ + verb = "Œ®‚ð‚Í‚¸‚·", it = 1; else +/*JP verb = "pick"; +*/ + verb = "‚±‚¶‚ ‚¯‚é"; /* "There is here; ?" */ +/*JP Sprintf(qsfx, " here; %s %s?", verb, it ? "it" : "its lock"); +*/ + Sprintf(qsfx, "‚ª‚ ‚éD%sH", verb); +#if 0 /*JP*/ (void) safe_qbuf(qbuf, "There is ", qsfx, otmp, doname, ansimpleoname, "a box"); +#else + (void) safe_qbuf(qbuf, "‚±‚±‚É‚Í", qsfx, otmp, doname, + ansimpleoname, "” "); +#endif otmp->lknown = 1; c = ynq(qbuf); @@ -342,12 +457,20 @@ struct obj *pick; continue; if (otmp->obroken) { +/*JP You_cant("fix its broken lock with %s.", doname(pick)); +*/ + You("‰ó‚ꂽŒ®‚ð%s‚ŏC•œ‚Å‚«‚È‚¢D", doname(pick)); return PICKLOCK_LEARNED_SOMETHING; } else if (picktyp == CREDIT_CARD && !otmp->olocked) { /* credit cards are only good for unlocking */ +#if 0 /*JP*/ You_cant("do that with %s.", an(simple_typename(picktyp))); +#else + pline("%s‚¶‚á‚»‚ñ‚È‚±‚Æ‚Í‚Å‚«‚È‚¢D", + simple_typename(picktyp)); +#endif return PICKLOCK_LEARNED_SOMETHING; } switch (picktyp) { @@ -373,14 +496,20 @@ struct obj *pick; } if (c != 'y') { if (!count) +/*JP There("doesn't seem to be any sort of lock here."); +*/ + pline("‚±‚±‚É‚ÍŒ®‚ð‚©‚¯‚é‚悤‚È•¨‚Í‚È‚¢‚悤‚¾D"); return PICKLOCK_LEARNED_SOMETHING; /* decided against all boxes */ } } else { /* pick the lock in a door */ struct monst *mtmp; if (u.utrap && u.utraptype == TT_PIT) { +/*JP You_cant("reach over the edge of the pit."); +*/ + pline("—Ž‚µŒŠ‚Ì’†‚©‚ç‚Å‚Í“Í‚©‚È‚¢D"); return PICKLOCK_LEARNED_SOMETHING; } @@ -390,10 +519,17 @@ struct obj *pick; && mtmp->m_ap_type != M_AP_OBJECT) { if (picktyp == CREDIT_CARD && (mtmp->isshk || mtmp->data == &mons[PM_ORACLE])) +/*JP verbalize("No checks, no credit, no problem."); +*/ + verbalize("‚¢‚‚àƒjƒRƒjƒRŒ»‹à•¥‚¢D"); else +#if 0 /*JP*/ pline("I don't think %s would appreciate that.", mon_nam(mtmp)); +#else + pline("%s‚ª‚»‚̉¿’l‚ð”F‚ß‚é‚Æ‚ÍŽv‚¦‚È‚¢D", mon_nam(mtmp)); +#endif return PICKLOCK_LEARNED_SOMETHING; } else if (mtmp && is_door_mappear(mtmp)) { /* "The door actually was a !" */ @@ -404,30 +540,53 @@ struct obj *pick; } if (!IS_DOOR(door->typ)) { if (is_drawbridge_wall(cc.x, cc.y) >= 0) +/*JP You("%s no lock on the drawbridge.", Blind ? "feel" : "see"); +*/ + pline("’µ‚Ë‹´‚É‚ÍŒ®‚ª‚È‚¢%sD", Blind ? "‚悤‚¾" : "‚悤‚ÉŒ©‚¦‚é"); else +/*JP You("%s no door there.", Blind ? "feel" : "see"); +*/ + pline("‚±‚±‚É‚Í”à‚ª‚È‚¢%sD", Blind ? "‚悤‚¾" : "‚悤‚ÉŒ©‚¦‚é"); return PICKLOCK_LEARNED_SOMETHING; } switch (door->doormask) { case D_NODOOR: +/*JP pline("This doorway has no door."); +*/ + pline("‚±‚̏o“üŒû‚É‚Í”à‚ª‚È‚¢D"); return PICKLOCK_LEARNED_SOMETHING; case D_ISOPEN: +/*JP You("cannot lock an open door."); +*/ + pline("ŠJ‚¢‚Ä‚é”à‚É‚ÍŒ®‚ð‚©‚¯‚ç‚ê‚È‚¢D"); return PICKLOCK_LEARNED_SOMETHING; case D_BROKEN: +/*JP pline("This door is broken."); +*/ + pline("‚±‚Ì”à‚͉ó‚ê‚Ä‚¢‚éD"); return PICKLOCK_LEARNED_SOMETHING; default: /* credit cards are only good for unlocking */ if (picktyp == CREDIT_CARD && !(door->doormask & D_LOCKED)) { +/*JP You_cant("lock a door with a credit card."); +*/ + You("ƒNƒŒƒWƒbƒgƒJ[ƒh‚Å”à‚ÉŒ®‚ð‚©‚¯‚邱‚Æ‚Í‚Å‚«‚È‚¢D"); return PICKLOCK_LEARNED_SOMETHING; } +#if 0 /*JP*/ Sprintf(qbuf, "%s it?", (door->doormask & D_LOCKED) ? "Unlock" : "Lock"); +#else + Sprintf(qbuf, "%s‚Ü‚·‚©H", + (door->doormask & D_LOCKED) ? "‚Í‚¸‚µ" : "‚©‚¯" ); +#endif c = yn(qbuf); if (c == 'n') @@ -476,11 +635,19 @@ doforce() || objects[uwep->otyp].oc_skill == P_FLAIL || objects[uwep->otyp].oc_skill > P_LANCE) : uwep->oclass != ROCK_CLASS)) { +#if 0 /*JP*/ You_cant("force anything %s weapon.", !uwep ? "when not wielding a" : (uwep->oclass != WEAPON_CLASS && !is_weptool(uwep)) ? "without a proper" : "with that"); +#else + You_cant("%s•Ší‚È‚µ‚ÅŒ®‚ð‚±‚¶ŠJ‚¯‚邱‚Æ‚Í‚Å‚«‚È‚¢D", + !uwep ? "‘•”õ‚µ‚Ä‚¢‚é" + : (uwep->oclass != WEAPON_CLASS && !is_weptool(uwep)) + ? "“KØ‚È" + : ""); +#endif return 0; } if (!can_reach_floor(TRUE)) { @@ -490,8 +657,14 @@ doforce() picktyp = is_blade(uwep) && !is_pick(uwep); if (xlock.usedtime && xlock.box && picktyp == xlock.picktyp) { +/*JP You("resume your attempt to force the lock."); +*/ + pline("Œ®‚ð‚±‚¶‚ ‚¯‚é‚Ì‚ðÄŠJ‚µ‚½D"); +/*JP set_occupation(forcelock, "forcing the lock", 0); +*/ + set_occupation(forcelock, "Œ®‚ð‚±‚¶‚ ‚¯‚é", 0); return 1; } @@ -500,13 +673,23 @@ doforce() for (otmp = level.objects[u.ux][u.uy]; otmp; otmp = otmp->nexthere) if (Is_box(otmp)) { if (otmp->obroken || !otmp->olocked) { +#if 0 /*JP*/ There("is %s here, but its lock is already %s.", doname(otmp), otmp->obroken ? "broken" : "unlocked"); +#else + pline("‚±‚±‚É‚Í%s‚ª‚ ‚éC‚µ‚©‚µ‚»‚ÌŒ®‚Í‚à‚¤%sD", doname(otmp), + otmp->obroken ? "‰ó‚ê‚Ä‚¢‚é" : "‚Í‚¸‚³‚ê‚Ä‚¢‚é"); +#endif otmp->lknown = 1; continue; } +#if 0 /*JP*/ (void) safe_qbuf(qbuf, "There is ", " here; force its lock?", otmp, doname, ansimpleoname, "a box"); +#else + (void) safe_qbuf(qbuf, "‚±‚±‚É‚Í", "‚ª‚ ‚éCŒ®‚ð‚±‚¶ŠJ‚¯‚Ü‚·‚©H", + otmp, doname, ansimpleoname, "” "); +#endif otmp->lknown = 1; c = ynq(qbuf); @@ -516,9 +699,15 @@ doforce() continue; if (picktyp) +/*JP You("force %s into a crack and pry.", yname(uwep)); +*/ + You("%s‚ð‚·‚«ŠÔ‚ɍ·‚µ‚±‚ñ‚Å‚±‚¶‚ ‚¯‚悤‚Æ‚µ‚½D",xname(uwep)); else +/*JP You("start bashing it with %s.", yname(uwep)); +*/ + pline("%s‚ʼn£‚è‚‚¯‚½D", xname(uwep)); xlock.box = otmp; xlock.chance = objects[uwep->otyp].oc_wldam * 2; xlock.picktyp = picktyp; @@ -527,9 +716,15 @@ doforce() } if (xlock.box) +/*JP set_occupation(forcelock, "forcing the lock", 0); +*/ + set_occupation(forcelock, "Œ®‚ð‚±‚¶‚ ‚¯‚é", 0); else +/*JP You("decide not to force the issue."); +*/ + pline("‚»‚ê‚Í–³ˆÓ–¡‚ȍsˆ×‚¾D"); return 1; } @@ -565,12 +760,18 @@ int x, y; int res = 0; if (nohands(youmonst.data)) { +/*JP You_cant("open anything -- you have no hands!"); +*/ + You("‰½‚àŠJ‚¯‚邱‚Æ‚ª‚Å‚«‚È‚¢IŽè‚ª‚È‚¢‚ñ‚¾‚à‚́I"); return 0; } if (u.utrap && u.utraptype == TT_PIT) { +/*JP You_cant("reach over the edge of the pit."); +*/ + pline("—Ž‚µŒŠ‚Ì’†‚©‚ç“Í‚©‚È‚¢D"); return 0; } @@ -606,11 +807,20 @@ int x, y; if (portcullis || !IS_DOOR(door->typ)) { /* closed portcullis or spot that opened bridge would span */ if (is_db_wall(cc.x, cc.y) || door->typ == DRAWBRIDGE_UP) +/*JP There("is no obvious way to open the drawbridge."); +*/ + pline("’µ‚Ë‹´‚ð~‚ë‚·–¾”’‚È•û–@‚Í‚È‚¢D"); else if (portcullis || door->typ == DRAWBRIDGE_DOWN) +/*JP pline_The("drawbridge is already open."); +*/ + pline_The("’µ‚Ë‹´‚Í‚à‚¤ŠJ‚¢‚Ä‚¢‚éD"); else +/*JP You("%s no door there.", Blind ? "feel" : "see"); +*/ + pline("‚»‚±‚É‚Í”à‚Í‚È‚¢‚悤%sD", Blind ? "‚¾" : "‚ÉŒ©‚¦‚é"); return res; } @@ -619,32 +829,56 @@ int x, y; switch (door->doormask) { case D_BROKEN: +/*JP mesg = " is broken"; +*/ + mesg = "”à‚͉ó‚ê‚Ä‚¢‚é"; break; case D_NODOOR: +/*JP mesg = "way has no door"; +*/ + mesg = "o“üŒû‚É‚Í”à‚ª‚È‚¢"; break; case D_ISOPEN: +/*JP mesg = " is already open"; +*/ + mesg = "”à‚Í‚à‚¤ŠJ‚¢‚Ä‚¢‚é"; break; default: +/*JP mesg = " is locked"; +*/ + mesg = "”à‚É‚ÍŒ®‚ªŠ|‚©‚Á‚Ä‚¢‚é"; break; } +/*JP pline("This door%s.", mesg); +*/ + pline("%sD", mesg); return res; } if (verysmall(youmonst.data)) { +/*JP pline("You're too small to pull the door open."); +*/ + You("”à‚ð‰Ÿ‚·‚ɂ͏¬‚³‚·‚¬‚éD"); return res; } /* door is known to be CLOSED */ if (rnl(20) < (ACURRSTR + ACURR(A_DEX) + ACURR(A_CON)) / 3) { +/*JP pline_The("door opens."); +*/ + pline("”à‚ÍŠJ‚¢‚½D"); if (door->doormask & D_TRAPPED) { +/*JP b_trapped("door", FINGER); +*/ + b_trapped("”à", FINGER); door->doormask = D_NODOOR; if (*in_rooms(cc.x, cc.y, SHOPBASE)) add_damage(cc.x, cc.y, 0L); @@ -654,7 +888,10 @@ int x, y; unblock_point(cc.x, cc.y); /* vision: new see through there */ } else { exercise(A_STR, TRUE); +/*JP pline_The("door resists!"); +*/ + pline("‚È‚©‚È‚©ŠJ‚©‚È‚¢I"); } return 1; @@ -673,12 +910,23 @@ boolean quietly; if (!quietly) { if ((mtmp->mx != x) || (mtmp->my != y)) { /* worm tail */ +#if 0 /*JP*/ pline("%s%s blocks the way!", !canspotmon(mtmp) ? Something : s_suffix(Monnam(mtmp)), !canspotmon(mtmp) ? "" : " tail"); +#else + pline("%s%s‚ª—§‚¿‚Ó‚³‚ª‚Á‚Ä‚¢‚éI", + !canspotmon(mtmp) ? "‰½‚©" : Monnam(mtmp), + !canspotmon(mtmp) ? "" : "‚̐K”ö"); +#endif } else { +#if 0 /*JP*/ pline("%s blocks the way!", !canspotmon(mtmp) ? "Some creature" : Monnam(mtmp)); +#else + pline("%s‚ª—§‚¿‚Ó‚³‚ª‚Á‚Ä‚¢‚éI", + !canspotmon(mtmp) ? "‰½ŽÒ‚©" : Monnam(mtmp)); +#endif } } if (!canspotmon(mtmp)) @@ -688,7 +936,10 @@ boolean quietly; if (OBJ_AT(x, y)) { objhere: if (!quietly) +/*JP pline("%s's in the way.", Something); +*/ + pline("‰½‚©‚ªo“üŒû‚É‚ ‚éD"); return TRUE; } return FALSE; @@ -704,12 +955,18 @@ doclose() int res = 0; if (nohands(youmonst.data)) { +/*JP You_cant("close anything -- you have no hands!"); +*/ + You("•Â‚߂邱‚Æ‚ª‚Å‚«‚È‚¢IŽè‚ª‚È‚¢‚ñ‚¾‚à‚́I"); return 0; } if (u.utrap && u.utraptype == TT_PIT) { +/*JP You_cant("reach over the edge of the pit."); +*/ + pline("—Ž‚µŒŠ‚Ì’†‚©‚ç“Í‚©‚È‚¢D"); return 0; } @@ -719,7 +976,10 @@ doclose() x = u.ux + u.dx; y = u.uy + u.dy; if ((x == u.ux) && (y == u.uy)) { +/*JP You("are in the way!"); +*/ + pline("‚ ‚È‚½‚ªo“üŒû‚É‚¢‚é‚̂ŕ‚܂ç‚È‚¢I"); return 1; } @@ -748,43 +1008,70 @@ doclose() if (portcullis || !IS_DOOR(door->typ)) { /* is_db_wall: closed portcullis */ if (is_db_wall(x, y) || door->typ == DRAWBRIDGE_UP) +/*JP pline_The("drawbridge is already closed."); +*/ + pline_The("’µ‚Ë‹´‚Í‚à‚¤•Â‚¶‚Ä‚¢‚éD"); else if (portcullis || door->typ == DRAWBRIDGE_DOWN) +/*JP There("is no obvious way to close the drawbridge."); +*/ + pline("’µ‚Ë‹´‚ð•Â‚ß‚é–¾”’‚È•û–@‚Í‚È‚¢D"); else { nodoor: +/*JP You("%s no door there.", Blind ? "feel" : "see"); +*/ + pline("‚»‚±‚É”à‚Í‚È‚¢‚悤%sD", Blind ? "‚¾" : "‚ÉŒ©‚¦‚é"); } return res; } if (door->doormask == D_NODOOR) { +/*JP pline("This doorway has no door."); +*/ + pline("o“üŒû‚É‚Í”à‚ª‚È‚¢D"); return res; } else if (obstructed(x, y, FALSE)) { return res; } else if (door->doormask == D_BROKEN) { +/*JP pline("This door is broken."); +*/ + pline("”à‚͉ó‚ê‚Ä‚¢‚éD"); return res; } else if (door->doormask & (D_CLOSED | D_LOCKED)) { +/*JP pline("This door is already closed."); +*/ + pline("”à‚Í‚à‚¤•Â‚¶‚Ä‚¢‚éD"); return res; } if (door->doormask == D_ISOPEN) { if (verysmall(youmonst.data) && !u.usteed) { +/*JP pline("You're too small to push the door closed."); +*/ + You("¬‚³‚·‚¬‚Ä”à‚ð•Â‚ß‚ç‚ê‚È‚¢D"); return res; } if (u.usteed || rn2(25) < (ACURRSTR + ACURR(A_DEX) + ACURR(A_CON)) / 3) { +/*JP pline_The("door closes."); +*/ + pline("”à‚͕‚¶‚½D"); door->doormask = D_CLOSED; feel_newsym(x, y); /* the hero knows she closed it */ block_point(x, y); /* vision: no longer see there */ } else { exercise(A_STR, TRUE); +/*JP pline_The("door resists!"); +*/ + pline("‚È‚©‚È‚©•Â‚Ü‚ç‚È‚¢I"); } } @@ -803,7 +1090,10 @@ struct obj *obj, *otmp; /* obj *is* a box */ case WAN_LOCKING: case SPE_WIZARD_LOCK: if (!obj->olocked) { /* lock it; fix if broken */ +/*JP pline("Klunk!"); +*/ + pline("ƒJƒ`I"); obj->olocked = 1; obj->obroken = 0; if (Role_if(PM_WIZARD)) @@ -816,7 +1106,10 @@ struct obj *obj, *otmp; /* obj *is* a box */ case WAN_OPENING: case SPE_KNOCK: if (obj->olocked) { /* unlock; couldn't be broken */ +/*JP pline("Klick!"); +*/ + pline("ƒRƒ“ƒRƒ“I"); obj->olocked = 0; res = 1; if (Role_if(PM_WIZARD)) @@ -848,8 +1141,14 @@ int x, y; boolean res = TRUE; int loudness = 0; const char *msg = (const char *) 0; +/*JP const char *dustcloud = "A cloud of dust"; +*/ + const char *dustcloud = "‚Ù‚±‚è"; +/*JP const char *quickly_dissipates = "quickly dissipates"; +*/ + const char *quickly_dissipates = "‚ ‚Á‚ÆŒ¾‚¤‚Ü‚É”ò‚ÑŽU‚Á‚½"; boolean mysterywand = (otmp->oclass == WAND_CLASS && !otmp->dknown); if (door->typ == SDOOR) { @@ -862,7 +1161,10 @@ int x, y; door->doormask = D_CLOSED | (door->doormask & D_TRAPPED); newsym(x, y); if (cansee(x, y)) +/*JP pline("A door appears in the wall!"); +*/ + pline("•Ç‚©‚ç”à‚ªŒ»‚ꂽI"); if (otmp->otyp == WAN_OPENING || otmp->otyp == SPE_KNOCK) return TRUE; break; /* striking: continue door handling below */ @@ -880,19 +1182,31 @@ int x, y; boolean vis = cansee(x, y); /* Can't have real locking in Rogue, so just hide doorway */ if (vis) +/*JP pline("%s springs up in the older, more primitive doorway.", +*/ + pline("ŒÃ‚­‚³‚¢CŒ´Žn“I‚ȏo“üŒû‚É%s‚ª—§‚¿‚±‚ß‚½D", dustcloud); else +/*JP You_hear("a swoosh."); +*/ + You_hear("ƒVƒ…[ƒb‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D"); if (obstructed(x, y, mysterywand)) { if (vis) +/*JP pline_The("cloud %s.", quickly_dissipates); +*/ + pline("‚Ù‚±‚è‚Í%sD",quickly_dissipates); return FALSE; } block_point(x, y); door->typ = SDOOR; if (vis) +/*JP pline_The("doorway vanishes!"); +*/ + pline("o“üŒû‚͏Á‚¦‚½I"); newsym(x, y); return TRUE; } @@ -902,24 +1216,41 @@ int x, y; /* & trap doors, but is it ever OK for anything else? */ if (t_at(x, y)) { /* maketrap() clears doormask, so it should be NODOOR */ +#if 0 /*JP*/ pline("%s springs up in the doorway, but %s.", dustcloud, quickly_dissipates); +#else + pline("%s‚ªo“üŒû‚É—§‚¿‚±‚ß‚½C‚µ‚©‚µ%s", dustcloud, + quickly_dissipates); +#endif return FALSE; } switch (door->doormask & ~D_TRAPPED) { case D_CLOSED: +/*JP msg = "The door locks!"; +*/ + msg = "”à‚ÉŒ®‚ª‚©‚©‚Á‚½I"; break; case D_ISOPEN: +/*JP msg = "The door swings shut, and locks!"; +*/ + msg = "”à‚͐¨‚¢‚æ‚­•Â‚Ü‚èCŒ®‚ª‚©‚©‚Á‚½I"; break; case D_BROKEN: +/*JP msg = "The broken door reassembles and locks!"; +*/ + msg = "‰ó‚ꂽ”à‚ªÄ\¬‚³‚êCŒ®‚ª‚©‚©‚Á‚½I"; break; case D_NODOOR: msg = +/*JP "A cloud of dust springs up and assembles itself into a door!"; +*/ + "‚Ù‚±‚肪‚½‚¿‚±‚߁CW‚Ü‚Á‚Ä”à‚É‚È‚Á‚½I"; break; default: res = FALSE; @@ -932,7 +1263,10 @@ int x, y; case WAN_OPENING: case SPE_KNOCK: if (door->doormask & D_LOCKED) { +/*JP msg = "The door unlocks!"; +*/ + msg = "”à‚ÌŒ®‚Í‚Í‚¸‚ꂽI"; door->doormask = D_CLOSED | (door->doormask & D_TRAPPED); } else res = FALSE; @@ -945,9 +1279,15 @@ int x, y; (void) mb_trapped(m_at(x, y)); else if (flags.verbose) { if (cansee(x, y)) +/*JP pline("KABOOM!! You see a door explode."); +*/ + pline("‚¿‚ã‚ǁ[‚ñI”à‚ª”š”­‚µ‚½D"); else +/*JP You_hear("a distant explosion."); +*/ + You_hear("‰“‚­‚Ì”š”­‰¹‚ð•·‚¢‚½D"); } door->doormask = D_NODOOR; unblock_point(x, y); @@ -958,9 +1298,15 @@ int x, y; door->doormask = D_BROKEN; if (flags.verbose) { if (cansee(x, y)) +/*JP pline_The("door crashes open!"); +*/ + pline("”à‚͉ó‚êŠJ‚¢‚½I"); else +/*JP You_hear("a crashing sound."); +*/ + You_hear("‰½‚©‚ª‰ó‚ê‚鉹‚ð•·‚¢‚½D"); } unblock_point(x, y); newsym(x, y); @@ -1001,7 +1347,14 @@ struct obj *otmp; long save_Blinded; if (otmp->oclass == POTION_CLASS) { +#if 0 /*JP*/ You("%s %s shatter!", Blind ? "hear" : "see", an(bottlename())); +#else + if (Blind) + You_hear("%s‚ªŠ„‚ê‚鉹‚ð•·‚¢‚½I", bottlename()); + else + pline("%s‚ªŠ„‚ꂽI", bottlename()); +#endif if (!breathless(youmonst.data) || haseyes(youmonst.data)) potionbreathe(otmp); return; @@ -1014,28 +1367,52 @@ struct obj *otmp; Blinded = save_Blinded; switch (objects[otmp->otyp].oc_material) { case PAPER: +/*JP disposition = "is torn to shreds"; +*/ + disposition = "‚͐¡’f‚³‚ꂽ"; break; case WAX: +/*JP disposition = "is crushed"; +*/ + disposition = "‚ð°‚É‚Ô‚¿‚Ü‚¯‚½"; break; case VEGGY: +/*JP disposition = "is pulped"; +*/ + disposition = "‚Í‚Ç‚ë‚Ç‚ë‚É‚È‚Á‚½"; break; case FLESH: +/*JP disposition = "is mashed"; +*/ + disposition = "‚Í‚Ç‚ë‚Ç‚ë‚É‚È‚Á‚½"; break; case GLASS: +/*JP disposition = "shatters"; +*/ + disposition = "‚ÍŠ„‚ꂽ"; break; case WOOD: +/*JP disposition = "splinters to fragments"; +*/ + disposition = "‚Í‚©‚¯‚ç‚É‚È‚Á‚½"; break; default: +/*JP disposition = "is destroyed"; +*/ + disposition = "‚͉ó‚ꂽ"; break; } +/*JP pline("%s %s!", An(thing), disposition); +*/ + pline("%s%sI", thing, disposition); } /*lock.c*/ diff --git a/src/mail.c b/src/mail.c index 0a38f14..4503089 100644 --- a/src/mail.c +++ b/src/mail.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" #ifdef MAIL @@ -249,8 +254,13 @@ coord *startp; /* starting position (read only) */ } /* Let the mail daemon have a larger vocabulary. */ +#if 0 /*JP*/ static NEARDATA const char *mail_text[] = { "Gangway!", "Look out!", "Pardon me!" }; +#else +static NEARDATA const char *mail_text[] = { "‚Ç‚¢‚½‚Ç‚¢‚½I", "‹C‚ð‚‚¯‚ëI", + "‚¶‚á‚Ü‚·‚é‚æI" }; +#endif #define md_exclamations() (mail_text[rn2(3)]) /* @@ -312,7 +322,10 @@ register int tx, ty; /* destination of mail daemon */ if ((mon = m_at(fx, fy)) != 0) /* save monster at this position */ verbalize1(md_exclamations()); else if (fx == u.ux && fy == u.uy) +/*JP verbalize("Excuse me."); +*/ + verbalize("‚¿‚å‚Á‚Æ‚µ‚‚ꂢD"); place_monster(md, fx, fy); /* put md down */ newsym(fx, fy); /* see it */ @@ -337,7 +350,10 @@ register int tx, ty; /* destination of mail daemon */ if ((mon = m_at(fx, fy)) != 0) { place_monster(md, fx, fy); /* display md with text below */ newsym(fx, fy); +/*JP verbalize("This place's too crowded. I'm outta here."); +*/ + verbalize("‚±‚±‚͍¬‚Ý‚·‚¬D‚±‚±‚Å‘Ò‚Á‚Ä‚é‚æD"); if ((mon->mx != fx) || (mon->my != fy)) /* put mon back */ place_worm_seg(mon, fx, fy); @@ -377,7 +393,11 @@ struct mail_info *info; goto go_back; message_seen = TRUE; +#if 0 /*JP*/ verbalize("%s, %s! %s.", Hello(md), plname, info->display_txt); +#else + verbalize("%sI%sD", Hello(md), info->display_txt); +#endif if (info->message_typ) { struct obj *obj = mksobj(SCR_MAIL, FALSE, FALSE); @@ -388,10 +408,18 @@ struct mail_info *info; new_omailcmd(obj, info->response_cmd); if (distu(md->mx, md->my) > 2) +/*JP verbalize("Catch!"); +*/ + verbalize("‚Ù‚ç‚æI"); display_nhwindow(WIN_MESSAGE, FALSE); +#if 0 /*JP*/ obj = hold_another_object(obj, "Oops!", (const char *) 0, (const char *) 0); +#else + obj = hold_another_object(obj, "‚¨‚Á‚ƁI", (const char *) 0, + (const char *) 0); +#endif } /* zip back to starting location */ @@ -401,7 +429,10 @@ go_back: /* deliver some classes of messages even if no daemon ever shows up */ give_up: if (!message_seen && info->message_typ == MSG_OTHER) +/*JP pline("Hark! \"%s.\"", info->display_txt); +*/ + pline("u%sDv‚ÆŒ¾‚¤‚±‚Æ‚¾I", info->display_txt); } #if !defined(UNIX) && !defined(VMS) @@ -419,7 +450,10 @@ ckmailstatus() } if (--mustgetmail <= 0) { static struct mail_info deliver = { MSG_MAIL, +/*JP "I have some mail for you", 0, +*/ + "ƒ[ƒ‹‚ðŽ‚Á‚Ä‚«‚½‚æ", 0, 0 }; newmail(&deliver); mustgetmail = -1; @@ -433,7 +467,10 @@ struct obj *otmp; { static char *junk[] = { NULL, /* placeholder for "Report bugs to .", */ +/*JP "Please disregard previous letter.", "Welcome to NetHack.", +*/ + "‘O‚̃[ƒ‹‚Í–Y‚ê‚Ä‚­‚¾‚³‚¢D", "NetHack‚ւ悤‚±‚»I", #ifdef AMIGA "Only Amiga makes it possible.", "CATS have all the answers.", #endif @@ -455,9 +492,15 @@ struct obj *otmp; #undef BUGS_FORMAT } if (Blind) { +/*JP pline("Unfortunately you cannot see what it says."); +*/ + pline("Žc”O‚È‚ª‚牽‚Ə‘‚¢‚Ä‚ ‚é‚Ì‚©Œ©‚邱‚Æ‚ª‚Å‚«‚È‚¢D"); } else +/*JP pline("It reads: \"%s\"", junk[rn2(SIZE(junk))]); +*/ + pline("‚»‚ê‚ð“Ç‚ñ‚¾F\"%s\"", junk[rn2(SIZE(junk))]); } #endif /* !UNIX && !VMS */ @@ -486,10 +529,16 @@ ckmailstatus() if (nmstat.st_size) { static struct mail_info deliver = { #ifndef NO_MAILREADER +/*JP MSG_MAIL, "I have some mail for you", +*/ + MSG_MAIL, "ƒƒCƒ‹‚ðŽ‚Á‚Ä‚«‚½‚æ", #else /* suppress creation and delivery of scroll of mail */ +/*JP MSG_OTHER, "You have some mail in the outside world", +*/ + MSG_OTHER, "ŠO‚̐¢ŠE‚©‚ç‚̃[ƒ‹‚¾", #endif 0, 0 }; diff --git a/src/makemon.c b/src/makemon.c index 102379e..534088d 100644 --- a/src/makemon.c +++ b/src/makemon.c @@ -1730,16 +1730,28 @@ struct monst *mtmp, *victim; ptr = &mons[newtype]; if (mvitals[newtype].mvflags & G_GENOD) { /* allow G_EXTINCT */ if (canspotmon(mtmp)) +#if 0 /*JP*/ pline("As %s grows up into %s, %s %s!", mon_nam(mtmp), an(ptr->mname), mhe(mtmp), nonliving(ptr) ? "expires" : "dies"); +#else + pline("%s‚ª¬’·‚µ‚Ä%s‚É‚È‚é‚Æ%s‚µ‚Ü‚Á‚½I", mon_nam(mtmp), + ptr->mname, + nonliving(ptr) ? "Á‚¦‚Ä" : "Ž€‚ñ‚Å"); +#endif set_mon_data(mtmp, ptr, -1); /* keep mvitals[] accurate */ mondied(mtmp); return (struct permonst *) 0; } else if (canspotmon(mtmp)) { +#if 0 /*JP*/ pline("%s %s %s.", Monnam(mtmp), humanoid(ptr) ? "becomes" : "grows up into", an(ptr->mname)); +#else + pline("%s‚Í%s‚É%sD", Monnam(mtmp), + ptr->mname, + humanoid(ptr) ? "‚È‚Á‚½" : "¬’·‚µ‚½"); +#endif } set_mon_data(mtmp, ptr, 1); /* preserve intrinsics */ newsym(mtmp->mx, mtmp->my); /* color may change */ diff --git a/src/mcastu.c b/src/mcastu.c index 24463a5..8f3b9c6 100644 --- a/src/mcastu.c +++ b/src/mcastu.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" /* monster mage spells */ @@ -52,21 +57,39 @@ boolean undirected; const char *point_msg; /* spellcasting monsters are impolite */ if (undirected) +/*JP point_msg = "all around, then curses"; +*/ + point_msg = "‚ ‚½‚èˆê–Ê‚ð"; else if ((Invis && !perceives(mtmp->data) && (mtmp->mux != u.ux || mtmp->muy != u.uy)) || is_obj_mappear(&youmonst, STRANGE_OBJECT) || u.uundetected) +/*JP point_msg = "and curses in your general direction"; +*/ + point_msg = "‚ ‚È‚½‚Ì‚¢‚é‚ ‚½‚è‚ð"; else if (Displaced && (mtmp->mux != u.ux || mtmp->muy != u.uy)) +/*JP point_msg = "and curses at your displaced image"; +*/ + point_msg = "‚ ‚È‚½‚ÌŒ¶‰e‚ð"; else +/*JP point_msg = "at you, then curses"; +*/ + point_msg = "‚ ‚È‚½‚ð"; +/*JP pline("%s points %s.", Monnam(mtmp), point_msg); +*/ + pline("%s‚Í%sŽw·‚µCŽô‚¢‚ð‚©‚¯‚½D", Monnam(mtmp), point_msg); } else if ((!(moves % 4) || !rn2(4))) { if (!Deaf) +/*JP Norep("You hear a mumbled curse."); +*/ + Norep("Žô‚¢‚ÌŒ¾—t‚ð‚‚Ԃ₭º‚ð•·‚¢‚½D"); } } @@ -240,20 +263,31 @@ boolean foundyou; penalizing mspec_used. */ if (!foundyou && thinks_it_foundyou && !is_undirected_spell(mattk->adtyp, spellnum)) { +#if 0 /*JP*/ pline("%s casts a spell at %s!", canseemon(mtmp) ? Monnam(mtmp) : "Something", levl[mtmp->mux][mtmp->muy].typ == WATER ? "empty water" : "thin air"); +#else + pline("%s‚͉½‚à‚È‚¢%s‚É–‚–@‚ð‚©‚¯‚½I", + canseemon(mtmp) ? Monnam(mtmp) : "‰½ŽÒ‚©", + levl[mtmp->mux][mtmp->muy].typ == WATER ? "…’†" + : "‹óŠÔ"); +#endif return (0); } nomul(0); if (rn2(ml * 10) < (mtmp->mconf ? 100 : 20)) { /* fumbled attack */ if (canseemon(mtmp) && !Deaf) +/*JP pline_The("air crackles around %s.", mon_nam(mtmp)); +*/ + pline("%s‚̉ñ‚è‚Ì‹ó‹C‚ªƒpƒ`ƒpƒ`‰¹‚ð‚½‚Ä‚Ä‚¢‚éD", mon_nam(mtmp)); return (0); } if (canspotmon(mtmp) || !is_undirected_spell(mattk->adtyp, spellnum)) { +#if 0 /*JP*/ pline("%s casts a spell%s!", canspotmon(mtmp) ? Monnam(mtmp) : "Something", is_undirected_spell(mattk->adtyp, spellnum) @@ -265,6 +299,21 @@ boolean foundyou; && (mtmp->mux != u.ux || mtmp->muy != u.uy)) ? " at your displaced image" : " at you"); +#else + char *who = (canspotmon(mtmp) ? Monnam(mtmp) : "‰½ŽÒ‚©"); + if(is_undirected_spell(mattk->adtyp, spellnum)){ + pline("%s‚ÍŽô•¶‚ð¥‚¦‚½I", who); + } else { + pline("%s‚Í‚ ‚È‚½%s‚É–‚–@‚ð‚©‚¯‚½I", + who, + (Invisible && !perceives(mtmp->data) && + (mtmp->mux != u.ux || mtmp->muy != u.uy)) ? + "‚Ì‚·‚®‚»‚Î" : + (Displaced && (mtmp->mux != u.ux || mtmp->muy != u.uy)) ? + "‚ÌŒ¶‰e" : + ""); + } +#endif } /* @@ -290,27 +339,45 @@ boolean foundyou; switch (mattk->adtyp) { case AD_FIRE: +/*JP pline("You're enveloped in flames."); +*/ + You("‰Š‚ɂ‚‚܂ꂽD"); if (Fire_resistance) { shieldeff(u.ux, u.uy); +/*JP pline("But you resist the effects."); +*/ + pline("‚µ‚©‚µC‚ ‚È‚½‚͉e‹¿‚ðŽó‚¯‚È‚¢D"); dmg = 0; } burn_away_slime(); break; case AD_COLD: +/*JP pline("You're covered in frost."); +*/ + You("•X‚É•¢‚í‚ꂽD"); if (Cold_resistance) { shieldeff(u.ux, u.uy); +/*JP pline("But you resist the effects."); +*/ + pline("‚µ‚©‚µC‚ ‚È‚½‚͉e‹¿‚ðŽó‚¯‚È‚¢D"); dmg = 0; } break; case AD_MAGM: +/*JP You("are hit by a shower of missiles!"); +*/ + You("–‚–@‚Ì–î‚ð‚­‚ç‚Á‚½I"); if (Antimagic) { shieldeff(u.ux, u.uy); +/*JP pline_The("missiles bounce off!"); +*/ + pline("–‚–@‚Ì–î‚Í”½ŽË‚µ‚½I"); dmg = 0; } else dmg = d((int) mtmp->m_lev / 2 + 1, 6); @@ -354,27 +421,45 @@ int spellnum; switch (spellnum) { case MGC_DEATH_TOUCH: +/*JP pline("Oh no, %s's using the touch of death!", mhe(mtmp)); +*/ + pline("‚È‚ñ‚Ä‚±‚Á‚½‚¢C%s‚ÍŽ€‚̐鍐‚ðŽg‚Á‚Ä‚¢‚éI", mhe(mtmp)); if (nonliving(youmonst.data) || is_demon(youmonst.data)) { +/*JP You("seem no deader than before."); +*/ + You("‚±‚êˆÈãŽ€‚Ë‚È‚¢‚悤‚¾D"); } else if (!Antimagic && rn2(mtmp->m_lev) > 12) { if (Hallucination) { +/*JP You("have an out of body experience."); +*/ + You("—H‘Ì—£’E‚ð‘ÌŒ±‚µ‚½D"); } else { killer.format = KILLED_BY_AN; +/*JP Strcpy(killer.name, "touch of death"); +*/ + Strcpy(killer.name, "Ž€‚̐鍐‚Å"); done(DIED); } } else { if (Antimagic) shieldeff(u.ux, u.uy); +/*JP pline("Lucky for you, it didn't work!"); +*/ + pline("‰^‚Ì‚æ‚¢‚±‚Æ‚É‚È‚ñ‚Æ‚à‚È‚©‚Á‚½I"); } dmg = 0; break; case MGC_CLONE_WIZ: if (mtmp->iswiz && context.no_of_wizards == 1) { +/*JP pline("Double Trouble..."); +*/ + pline("“ñd‹ê‚¾DDD"); clonewiz(); dmg = 0; } else @@ -385,49 +470,84 @@ int spellnum; count = nasty(mtmp); /* summon something nasty */ if (mtmp->iswiz) +/*JP verbalize("Destroy the thief, my pet%s!", plur(count)); +*/ + verbalize("“‘¯‚ðŽE‚¹I‰ä‚ª‰º–l‚æI"); else { +#if 0 /*JP*/ const char *mappear = (count == 1) ? "A monster appears" : "Monsters appear"; +#endif /* messages not quite right if plural monsters created but only a single monster is seen */ if (Invisible && !perceives(mtmp->data) && (mtmp->mux != u.ux || mtmp->muy != u.uy)) +#if 0 /*JP*/ pline("%s around a spot near you!", mappear); +#else + pline("‰ö•¨‚ª‚ ‚È‚½‚Ì‚·‚®‚»‚΂Ɍ»‚ꂽI"); +#endif else if (Displaced && (mtmp->mux != u.ux || mtmp->muy != u.uy)) +#if 0 /*JP*/ pline("%s around your displaced image!", mappear); +#else + pline("‰ö•¨‚ª‚ ‚È‚½‚ÌŒ¶‰e‚Ì‚·‚®‚»‚΂Ɍ»‚ꂽI"); +#endif else +#if 0 /*JP*/ pline("%s from nowhere!", mappear); +#else + pline("‰ö•¨‚ª‚Ç‚±‚©‚ç‚Æ‚à‚È‚­Œ»‚ꂽI"); +#endif } dmg = 0; break; } case MGC_AGGRAVATION: +/*JP You_feel("that monsters are aware of your presence."); +*/ + You_feel("‰ö•¨‚½‚¿‚ª‚ ‚È‚½‚Ì‘¶Ý‚É‹C•t‚¢‚½‚悤‚È‹C‚ª‚µ‚½D"); aggravate(); dmg = 0; break; case MGC_CURSE_ITEMS: +/*JP You_feel("as if you need some help."); +*/ + You_feel("•‚¯‚ª•K—v‚È‹C‚ª‚µ‚½D"); rndcurse(); dmg = 0; break; case MGC_DESTRY_ARMR: if (Antimagic) { shieldeff(u.ux, u.uy); +/*JP pline("A field of force surrounds you!"); +*/ + pline("•sŽv‹c‚È—Í‚ª‚ ‚È‚½‚ð‚Æ‚è‚Ü‚¢‚½I"); } else if (!destroy_arm(some_armor(&youmonst))) { +/*JP Your("skin itches."); +*/ + You("ƒ€ƒYƒ€ƒY‚µ‚½D"); } dmg = 0; break; case MGC_WEAKEN_YOU: /* drain strength */ if (Antimagic) { shieldeff(u.ux, u.uy); +/*JP You_feel("momentarily weakened."); +*/ + You_feel("ˆêuŽã‚­‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½D"); } else { +/*JP You("suddenly feel weaker!"); +*/ + You("“Ë‘RŽã‚­‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½D"); dmg = mtmp->m_lev - 6; if (Half_spell_damage) dmg = (dmg + 1) / 2; @@ -440,8 +560,13 @@ int spellnum; case MGC_DISAPPEAR: /* makes self invisible */ if (!mtmp->minvis && !mtmp->invis_blkd) { if (canseemon(mtmp)) +#if 0 /*JP*/ pline("%s suddenly %s!", Monnam(mtmp), !See_invisible ? "disappears" : "becomes transparent"); +#else + pline("%s‚Í“Ë‘R%sI", Monnam(mtmp), + !See_invisible ? "Á‚¦‚½" : "“§–¾‚É‚È‚Á‚½"); +#endif mon_set_minvis(mtmp); dmg = 0; } else @@ -451,10 +576,16 @@ int spellnum; if (Antimagic || Free_action) { shieldeff(u.ux, u.uy); if (!Stunned) +/*JP You_feel("momentarily disoriented."); +*/ + You("ˆêu•ûŒüŠ´Šo‚ðŽ¸‚Á‚½D"); make_stunned(1L, FALSE); } else { +/*JP You(Stunned ? "struggle to keep your balance." : "reel..."); +*/ + You(Stunned ? "ƒoƒ‰ƒ“ƒX‚ðŽæ‚낤‚Æ‚à‚ª‚¢‚½D" : "‚æ‚ë‚ß‚¢‚½DDD"); dmg = d(ACURR(A_DEX) < 12 ? 6 : 4, 4); if (Half_spell_damage) dmg = (dmg + 1) / 2; @@ -469,7 +600,10 @@ int spellnum; case MGC_CURE_SELF: if (mtmp->mhp < mtmp->mhpmax) { if (canseemon(mtmp)) +/*JP pline("%s looks better.", Monnam(mtmp)); +*/ + pline("%s‚Í‹C•ª‚ª‚æ‚­‚È‚Á‚½‚悤‚¾D", Monnam(mtmp)); /* note: player healing does 6d4; this used to do 1d8 */ if ((mtmp->mhp += d(3, 6)) > mtmp->mhpmax) mtmp->mhp = mtmp->mhpmax; @@ -484,13 +618,25 @@ int spellnum; dmg = (dmg + 1) / 2; } if (dmg <= 5) +/*JP You("get a slight %sache.", body_part(HEAD)); +*/ + You("‚¿‚å‚Á‚Æ%s’É‚ª‚µ‚½D",body_part(HEAD)); else if (dmg <= 10) +/*JP Your("brain is on fire!"); +*/ + You("“{‚è‚ɂ‚‚܂ꂽI"); else if (dmg <= 20) +/*JP Your("%s suddenly aches painfully!", body_part(HEAD)); +*/ + You("“Ë‘R%s’É‚É‚¨‚»‚í‚ꂽI", body_part(HEAD)); else +/*JP Your("%s suddenly aches very painfully!", body_part(HEAD)); +*/ + You("“Ë‘RŒƒ‚µ‚¢%s’É‚É‚¨‚»‚í‚ꂽI", body_part(HEAD)); break; default: impossible("mcastu: invalid magic spell (%d)", spellnum); @@ -519,13 +665,19 @@ int spellnum; /* this is physical damage (force not heat), * not magical damage or fire damage */ +/*JP pline("A sudden geyser slams into you from nowhere!"); +*/ + pline("‘÷—¬‚ª‚Ç‚±‚©‚ç‚Æ‚à‚È‚­Œ»‚ê‚Ä‚ ‚È‚½‚ð‘Å‚¿‚‚¯‚½I"); dmg = d(8, 6); if (Half_physical_damage) dmg = (dmg + 1) / 2; break; case CLC_FIRE_PILLAR: +/*JP pline("A pillar of fire strikes all around you!"); +*/ + pline("‚ ‚È‚½‚ÌŽü‚è‚ɉΒŒ‚ª—§‚Á‚½I"); if (Fire_resistance) { shieldeff(u.ux, u.uy); dmg = 0; @@ -543,8 +695,14 @@ int spellnum; case CLC_LIGHTNING: { boolean reflects; +/*JP pline("A bolt of lightning strikes down at you from above!"); +*/ + pline("‚ ‚È‚½‚̐^ã‚©‚çˆîÈ‚ª~‚蒍‚¢‚¾I"); +/*JP reflects = ureflects("It bounces off your %s%s.", ""); +*/ + reflects = ureflects("‚»‚ê‚Í‚ ‚È‚½‚Ì%s%s‚Å’µ‚Ë•Ô‚Á‚½D", ""); if (reflects || Shock_resistance) { shieldeff(u.ux, u.uy); dmg = 0; @@ -560,7 +718,10 @@ int spellnum; break; } case CLC_CURSE_ITEMS: +/*JP You_feel("as if you need some help."); +*/ + You_feel("•‚¯‚ª•K—v‚È‹C‚ª‚µ‚½D"); rndcurse(); dmg = 0; break; @@ -620,16 +781,31 @@ int spellnum; words, no need to fuss with visibility or singularization; player is told what's happening even if hero is unconscious) */ } else if (!success) +/*JP fmt = "%s casts at a clump of sticks, but nothing happens."; +*/ + fmt = "%s‚Í–_Ø‚ê‚É–‚–@‚ð‚©‚¯‚½‚ªC‚È‚É‚à‚¨‚±‚ç‚È‚©‚Á‚½D"; else if (let == S_SNAKE) +/*JP fmt = "%s transforms a clump of sticks into snakes!"; +*/ + fmt = "%s‚Í–_Ø‚ê‚ðƒwƒr‚É•Ï‚¦‚½I"; else if (Invisible && !perceives(mtmp->data) && (mtmp->mux != u.ux || mtmp->muy != u.uy)) +/*JP fmt = "%s summons insects around a spot near you!"; +*/ + fmt = "%s‚Í’Ž‚ð‚ ‚È‚½‚Ì‚·‚®‚»‚΂ɏ¢Š«‚µ‚½I"; else if (Displaced && (mtmp->mux != u.ux || mtmp->muy != u.uy)) +/*JP fmt = "%s summons insects around your displaced image!"; +*/ + fmt = "%s‚Í’Ž‚ð‚ ‚È‚½‚ÌŒ¶‰e‚ÌŽü‚è‚ɏ¢Š«‚µ‚½I"; else +/*JP fmt = "%s summons insects!"; +*/ + fmt = "%s‚Í’Ž‚ð¢Š«‚µ‚½I"; if (fmt) pline(fmt, Monnam(mtmp)); @@ -640,9 +816,13 @@ int spellnum; /* note: resists_blnd() doesn't apply here */ if (!Blinded) { int num_eyes = eyecount(youmonst.data); +#if 0 /*JP*/ pline("Scales cover your %s!", (num_eyes == 1) ? body_part(EYE) : makeplural(body_part(EYE))); +#else + pline("—Ø‚ª‚ ‚È‚½‚Ì%s‚𕢂Á‚½I", body_part(EYE)); +#endif make_blinded(Half_spell_damage ? 100L : 200L, FALSE); if (!Blind) Your1(vision_clears); @@ -654,12 +834,18 @@ int spellnum; if (Antimagic || Free_action) { shieldeff(u.ux, u.uy); if (multi >= 0) +/*JP You("stiffen briefly."); +*/ + You("ˆêud’¼‚µ‚½D"); nomul(-1); multi_reason = "paralyzed by a monster"; } else { if (multi >= 0) +/*JP You("are frozen in place!"); +*/ + You("‚»‚̏ê‚Å“®‚¯‚È‚­‚È‚Á‚½I"); dmg = 4 + (int) mtmp->m_lev; if (Half_spell_damage) dmg = (dmg + 1) / 2; @@ -672,7 +858,10 @@ int spellnum; case CLC_CONFUSE_YOU: if (Antimagic) { shieldeff(u.ux, u.uy); +/*JP You_feel("momentarily dizzy."); +*/ + You("ˆêu‚ß‚Ü‚¢‚ª‚µ‚½D"); } else { boolean oldprop = !!Confusion; @@ -681,16 +870,28 @@ int spellnum; dmg = (dmg + 1) / 2; make_confused(HConfusion + dmg, TRUE); if (Hallucination) +#if 0 /*JP*/ You_feel("%s!", oldprop ? "trippier" : "trippy"); +#else + You("%s‚Ö‚ë‚Ö‚ë‚É‚È‚Á‚½I", oldprop ? "‚à‚Á‚Æ" : ""); +#endif else +#if 0 /*JP*/ You_feel("%sconfused!", oldprop ? "more " : ""); +#else + You("%s¬—‚µ‚½I", oldprop ? "‚à‚Á‚Æ" : ""); +#endif } dmg = 0; break; case CLC_CURE_SELF: if (mtmp->mhp < mtmp->mhpmax) { if (canseemon(mtmp)) +#if 0 /*JP*/ pline("%s looks better.", Monnam(mtmp)); +#else + pline("%s‚Í‹C•ª‚ª‚æ‚­‚È‚Á‚½‚悤‚¾D", Monnam(mtmp)); +#endif /* note: player healing does 6d4; this used to do 1d8 */ if ((mtmp->mhp += d(3, 6)) > mtmp->mhpmax) mtmp->mhp = mtmp->mhpmax; @@ -703,13 +904,25 @@ int spellnum; dmg = (dmg + 1) / 2; } if (dmg <= 5) +/*JP Your("skin itches badly for a moment."); +*/ + Your("”畆‚͈êuCƒ€ƒYƒ€ƒY‚Á‚Æ‚µ‚½D"); else if (dmg <= 10) +/*JP pline("Wounds appear on your body!"); +*/ + pline("‚ª‚ ‚È‚½‚̑̂ɏo—ˆ‚½I"); else if (dmg <= 20) +/*JP pline("Severe wounds appear on your body!"); +*/ + pline("‚Ђǂ¢‚ª‚ ‚È‚½‚̑̂ɏo—ˆ‚½I"); else +/*JP Your("body is covered with painful wounds!"); +*/ + pline("‘Ì‚ª‚¾‚炯‚É‚È‚Á‚½I"); break; default: impossible("mcastu: invalid clerical spell (%d)", spellnum); @@ -854,8 +1067,13 @@ register struct attack *mattk; nomul(0); if (mattk->adtyp && (mattk->adtyp < 11)) { /* no cf unsigned >0 */ if (canseemon(mtmp)) +#if 0 /*JP*/ pline("%s zaps you with a %s!", Monnam(mtmp), flash_types[ad_to_typ(mattk->adtyp)]); +#else + pline("%s‚Í%s‚ð‚ ‚È‚½‚ÉŒü‚¯‚Ä•ú‚Á‚½D", Monnam(mtmp), + flash_types[ad_to_typ(mattk->adtyp)]); +#endif buzz(-ad_to_typ(mattk->adtyp), (int) mattk->damn, mtmp->mx, mtmp->my, sgn(tbx), sgn(tby)); } else diff --git a/src/mhitm.c b/src/mhitm.c index f0eab76..d58120f 100644 --- a/src/mhitm.c +++ b/src/mhitm.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" #include "artifact.h" @@ -12,7 +17,10 @@ static NEARDATA long noisetime; static NEARDATA struct obj *otmp; static const char brief_feeling[] = +/*JP "have a %s feeling for a moment, then it passes."; +*/ + "%s‹CŽ‚É‚¨‚»‚í‚ꂽ‚ªC‚·‚®‚ɉ߂¬‚³‚Á‚½D"; STATIC_DCL char *FDECL(mon_nam_too, (char *, struct monst *, struct monst *)); STATIC_DCL int FDECL(hitmm, (struct monst *, struct monst *, @@ -48,6 +56,7 @@ struct monst *mon, *other_mon; { Strcpy(outbuf, mon_nam(mon)); if (mon == other_mon) +#if 0 /*JP*/ switch (pronoun_gender(mon)) { case 0: Strcpy(outbuf, "himself"); @@ -59,6 +68,9 @@ struct monst *mon, *other_mon; Strcpy(outbuf, "itself"); break; } +#else + Strcpy(outbuf, "Ž©•ªŽ©g"); +#endif return outbuf; } @@ -72,9 +84,16 @@ register struct attack *mattk; if (!Deaf && (farq != far_noise || moves - noisetime > 10)) { far_noise = farq; noisetime = moves; +#if 0 /*JP*/ You_hear("%s%s.", (mattk->aatyp == AT_EXPL) ? "an explosion" : "some noises", farq ? " in the distance" : ""); +#else + You_hear("%s%s‚ð•·‚¢‚½D", + farq ? "‰“‚­‚Å" : "", + (mattk->aatyp == AT_EXPL) ? "”š”­‰¹" : "‰½‚©‚ªí‚¤‰¹" + ); +#endif } } @@ -96,11 +115,21 @@ struct attack *mattk; seemimic(mdef); if (magr->m_ap_type) seemimic(magr); +#if 0 /*JP*/ fmt = (could_seduce(magr, mdef, mattk) && !magr->mcan) ? "%s pretends to be friendly to" : "%s misses"; +#else + fmt = (could_seduce(magr,mdef,mattk) && !magr->mcan) + ? "%s‚Í%%s‚É—FD“I‚È‚Ó‚è‚ð‚µ‚½D" + : "%s‚Ì%%s‚ւ̍UŒ‚‚ÍŠO‚ꂽD"; +#endif Sprintf(buf, fmt, Monnam(magr)); +#if 0 /*JP*/ pline("%s %s.", buf, mon_nam_too(mdef_name, mdef, magr)); +#else + pline(buf, mon_nam_too(mdef_name, mdef, magr)); +#endif } else noises(magr, mattk); } @@ -150,7 +179,10 @@ register struct monst *mtmp; if (monnear(mtmp, mon->mx, mon->my)) { if (!u.uswallow && (mtmp == u.ustuck)) { if (!rn2(4)) { +/*JP pline("%s releases you!", Monnam(mtmp)); +*/ + pline("%s‚Í‚ ‚È‚½‚ð‰ð•ú‚µ‚½I", Monnam(mtmp)); u.ustuck = 0; } else break; @@ -325,11 +357,18 @@ register struct monst *magr, *mdef; newsym(mdef->mx, mdef->my); if (canseemon(mdef) && !sensemon(mdef)) { if (Unaware) +#if 0 /*JP*/ You("dream of %s.", (mdef->data->geno & G_UNIQ) ? a_monnam(mdef) : makeplural(m_monnam(mdef))); +#else + You("%s‚Ì–²‚ðŒ©‚½D", a_monnam(mdef)); +#endif else +/*JP pline("Suddenly, you notice %s.", a_monnam(mdef)); +*/ + pline("“Ë‘RC‚ ‚È‚½‚Í%s‚É‹C‚ª‚‚¢‚½D", a_monnam(mdef)); } } @@ -406,8 +445,13 @@ register struct monst *magr, *mdef; char buf[BUFSZ]; Strcpy(buf, Monnam(mdef)); +#if 0 /*JP*/ pline("%s divides as %s hits it!", buf, mon_nam(magr)); +#else + pline("%s‚̍UŒ‚‚Å%s‚ª•ª—ô‚µ‚½I", + mon_nam(magr), buf); +#endif } } } @@ -497,39 +541,71 @@ struct attack *mattk; if (magr->m_ap_type) seemimic(magr); if ((compat = could_seduce(magr, mdef, mattk)) && !magr->mcan) { +#if 0 /*JP*/ Sprintf(buf, "%s %s", Monnam(magr), mdef->mcansee ? "smiles at" : "talks to"); pline("%s %s %s.", buf, mon_nam(mdef), compat == 2 ? "engagingly" : "seductively"); +#else + Sprintf(buf, "%s‚Í%%s‚É%%s%sD", Monnam(magr), + mdef->mcansee ? "”÷Î‚Ý‚©‚¯‚½" : "˜b‚µ‚©‚¯‚½"); + pline(buf, mon_nam(mdef), + compat == 2 ? "–£—Í“I‚É" : "—U˜f“I‚É"); +#endif } else { char magr_name[BUFSZ]; Strcpy(magr_name, Monnam(magr)); switch (mattk->aatyp) { case AT_BITE: +/*JP Sprintf(buf, "%s bites", magr_name); +*/ + Sprintf(buf,"%s‚Í%%s‚ÉŠš‚݂‚¢‚½D", magr_name); break; case AT_STNG: +/*JP Sprintf(buf, "%s stings", magr_name); +*/ + Sprintf(buf,"%s‚Í%%s‚ð“Ë‚«‚³‚µ‚½D", magr_name); break; case AT_BUTT: +/*JP Sprintf(buf, "%s butts", magr_name); +*/ + Sprintf(buf,"%s‚Í%%s‚É“ª“Ë‚«‚ð‚­‚ç‚킵‚½D", magr_name); break; case AT_TUCH: +/*JP Sprintf(buf, "%s touches", magr_name); +*/ + Sprintf(buf,"%s‚Í%%s‚ɐG‚ꂽD", magr_name); break; case AT_TENT: +/*JP Sprintf(buf, "%s tentacles suck", s_suffix(magr_name)); +*/ + Sprintf(buf, "%s‚̐GŽè‚ª%%s‚̑̉t‚ð‹z‚¢‚Æ‚Á‚½D", s_suffix(magr_name)); break; case AT_HUGS: if (magr != u.ustuck) { +/*JP Sprintf(buf, "%s squeezes", magr_name); +*/ + Sprintf(buf,"%s‚Í%%s‚ði‚ß‚½D", magr_name); break; } default: +/*JP Sprintf(buf, "%s hits", magr_name); +*/ + Sprintf(buf,"%s‚Ì%%s‚ւ̍UŒ‚‚Í–½’†‚µ‚½D", magr_name); } +#if 0 /*JP*/ pline("%s %s.", buf, mon_nam_too(mdef_name, mdef, magr)); +#else + pline(buf, mon_nam_too(mdef_name, mdef, magr)); +#endif } } else noises(magr, mattk); @@ -546,38 +622,60 @@ struct attack *mattk; char buf[BUFSZ]; if (vis) { +#if 0 /*JP*/ Sprintf(buf, "%s gazes at", Monnam(magr)); pline("%s %s...", buf, mon_nam(mdef)); +#else + Sprintf(buf,"%s‚Í%%s‚ð‚É‚ç‚݂‚¯‚½DDD", Monnam(magr)); + pline(buf, mon_nam(mdef)); +#endif } if (magr->mcan || !magr->mcansee || (magr->minvis && !perceives(mdef->data)) || !mdef->mcansee || mdef->msleeping) { if (vis) +/*JP pline("but nothing happens."); +*/ + pline("‚µ‚©‚µ‰½‚à‚¨‚±‚ç‚È‚©‚Á‚½D"); return MM_MISS; } /* call mon_reflects 2x, first test, then, if visible, print message */ if (magr->data == &mons[PM_MEDUSA] && mon_reflects(mdef, (char *) 0)) { if (canseemon(mdef)) +/*JP (void) mon_reflects(mdef, "The gaze is reflected away by %s %s."); +*/ + (void) mon_reflects(mdef, "‚É‚ç‚Ý‚Í%s‚Ì%s‚Å”½ŽË‚µ‚½D"); if (mdef->mcansee) { if (mon_reflects(magr, (char *) 0)) { if (canseemon(magr)) (void) mon_reflects( +/*JP magr, "The gaze is reflected away by %s %s."); +*/ + magr, "‚É‚ç‚Ý‚Í%s‚Ì%s‚Å”½ŽË‚µ‚½D"); return MM_MISS; } if (mdef->minvis && !perceives(magr->data)) { if (canseemon(magr)) { +#if 0 /*JP*/ pline( "%s doesn't seem to notice that %s gaze was reflected.", Monnam(magr), mhis(magr)); +#else + pline("‚É‚ç‚Ý‚ª”½ŽË‚µ‚Ä‚¢‚邱‚Æ‚É%s‚Í‹C•t‚¢‚Ä‚¢‚È‚¢‚悤‚¾D", + Monnam(magr)); +#endif } return MM_MISS; } if (canseemon(magr)) +/*JP pline("%s is turned to stone!", Monnam(magr)); +*/ + pline("%s‚͐΂ɂȂÁ‚½I", Monnam(magr)); monstone(magr); if (magr->mhp > 0) return MM_MISS; @@ -635,8 +733,13 @@ register struct attack *mattk; return MM_MISS; if (vis) { +#if 0 /*JP*/ Sprintf(buf, "%s swallows", Monnam(magr)); pline("%s %s.", buf, mon_nam(mdef)); +#else + Sprintf(buf,"%s‚Í%%s‚ð‚®‚Á‚ƈù‚Ý‚±‚ñ‚¾D", Monnam(magr)); + pline(buf, mon_nam(mdef)); +#endif } for (obj = mdef->minvent; obj; obj = obj->nobj) (void) snuff_lit(obj); @@ -680,7 +783,10 @@ register struct attack *mattk; newsym(dx, dy); } else { /* both alive, put them back */ if (cansee(dx, dy)) +/*JP pline("%s is regurgitated!", Monnam(mdef)); +*/ + pline("%s‚Í“f‚«–ß‚³‚ꂽI", Monnam(mdef)); place_monster(magr, ax, ay); place_monster(mdef, dx, dy); @@ -702,7 +808,10 @@ struct attack *mattk; return MM_MISS; if (cansee(magr->mx, magr->my)) +/*JP pline("%s explodes!", Monnam(magr)); +*/ + pline("%s‚Í”š”­‚µ‚½I", Monnam(magr)); else noises(magr, mattk); @@ -716,7 +825,10 @@ struct attack *mattk; result |= MM_AGR_DIED; } if (magr->mtame) /* give this one even if it was visible */ +/*JP You(brief_feeling, "melancholy"); +*/ + You(brief_feeling, "—J‚¤‚‚È"); return result; } @@ -753,12 +865,18 @@ register struct attack *mattk; return MM_HIT; /* no damage during the polymorph */ } if (vis) +/*JP pline("%s turns to stone!", Monnam(magr)); +*/ + pline("%s‚͐΂ɂȂÁ‚½I", Monnam(magr)); monstone(magr); if (magr->mhp > 0) return MM_HIT; /* lifesaved */ else if (magr->mtame && !vis) +/*JP You(brief_feeling, "peculiarly sad"); +*/ + You(brief_feeling, "‚à‚̔߂µ‚¢"); return MM_AGR_DIED; } } @@ -772,21 +890,36 @@ register struct attack *mattk; /* eating a Rider or its corpse is fatal */ if (is_rider(pd)) { if (vis) +#if 0 /*JP*/ pline("%s %s!", Monnam(magr), (pd == &mons[PM_FAMINE]) ? "belches feebly, shrivels up and dies" : (pd == &mons[PM_PESTILENCE]) ? "coughs spasmodically and collapses" : "vomits violently and drops dead"); +#else + pline("%s%sI", Monnam(magr), + (pd == &mons[PM_FAMINE]) + ? "ŽãX‚µ‚­“f‚«‚à‚Ç‚µ‚½‚©‚ÆŽv‚¤‚ƁC‘Ì‚ª‚µ‚Ú‚ÝŽ€‚ñ‚Å‚µ‚Ü‚Á‚½" : + pd == &mons[PM_PESTILENCE] + ? "áz¹‚µ‚½‚悤‚É‚¹‚«‚±‚Ý“|‚ꂽ" + : "Œƒ‚µ‚­šq“f‚µŽ€‚ñ‚¾"); +#endif mondied(magr); if (magr->mhp > 0) return 0; /* lifesaved */ else if (magr->mtame && !vis) +/*JP You(brief_feeling, "queasy"); +*/ + You(brief_feeling, "•sˆÀ‚È"); return MM_AGR_DIED; } if (flags.verbose && !Deaf) +/*JP verbalize("Burrrrp!"); +*/ + verbalize("‚°‚Á‚ՁI"); tmp = mdef->mhp; /* Use up amulet of life saving */ if (!!(obj = mlifesaver(mdef))) @@ -822,8 +955,12 @@ register struct attack *mattk; if (magr->mcan) break; if (canseemon(mdef)) +#if 0 /*JP*/ pline("%s %s for a moment.", Monnam(mdef), makeplural(stagger(pd, "stagger"))); +#else + pline("%s‚Í‚·‚±‚µ‚æ‚ë‚ß‚¢‚½D", Monnam(mdef)); +#endif mdef->mstun = 1; goto physical; case AD_LEGS: @@ -868,22 +1005,34 @@ register struct attack *mattk; break; } if (vis) +/*JP pline("%s is %s!", Monnam(mdef), on_fire(pd, mattk)); +*/ + pline("%s‚Í%sI", Monnam(mdef), on_fire(pd, mattk)); if (pd == &mons[PM_STRAW_GOLEM] || pd == &mons[PM_PAPER_GOLEM]) { if (vis) +/*JP pline("%s burns completely!", Monnam(mdef)); +*/ + pline("%s‚ÍŠD‚É‚È‚Á‚½I", Monnam(mdef)); mondied(mdef); if (mdef->mhp > 0) return 0; else if (mdef->mtame && !vis) +/*JP pline("May %s roast in peace.", mon_nam(mdef)); +*/ + pline("%s‚æCˆÀ‚ç‚©‚É”R‚¦‚ñŽ–‚ðD", mon_nam(mdef)); return (MM_DEF_DIED | (grow_up(magr, mdef) ? 0 : MM_AGR_DIED)); } tmp += destroy_mitem(mdef, SCROLL_CLASS, AD_FIRE); tmp += destroy_mitem(mdef, SPBOOK_CLASS, AD_FIRE); if (resists_fire(mdef)) { if (vis) +/*JP pline_The("fire doesn't seem to burn %s!", mon_nam(mdef)); +*/ + pline("%s‚͉Š‚Å”R‚¦‚È‚¢‚悤‚¾I", mon_nam(mdef)); shieldeff(mdef->mx, mdef->my); golemeffects(mdef, AD_FIRE, tmp); tmp = 0; @@ -897,10 +1046,16 @@ register struct attack *mattk; break; } if (vis) +/*JP pline("%s is covered in frost!", Monnam(mdef)); +*/ + pline("%s‚Í•X‚Å•¢‚í‚ꂽI", Monnam(mdef)); if (resists_cold(mdef)) { if (vis) +/*JP pline_The("frost doesn't seem to chill %s!", mon_nam(mdef)); +*/ + pline("•X‚Í%s‚𓀂点‚邱‚Æ‚ª‚Å‚«‚È‚¢‚悤‚¾I", mon_nam(mdef)); shieldeff(mdef->mx, mdef->my); golemeffects(mdef, AD_COLD, tmp); tmp = 0; @@ -913,11 +1068,17 @@ register struct attack *mattk; break; } if (vis) +/*JP pline("%s gets zapped!", Monnam(mdef)); +*/ + pline("%s‚͏Ռ‚‚ð‚­‚ç‚Á‚½I", Monnam(mdef)); tmp += destroy_mitem(mdef, WAND_CLASS, AD_ELEC); if (resists_elec(mdef)) { if (vis) +/*JP pline_The("zap doesn't shock %s!", mon_nam(mdef)); +*/ + pline("ÕŒ‚‚Í%s‚ɉe‹¿‚ð—^‚¦‚È‚¢I", mon_nam(mdef)); shieldeff(mdef->mx, mdef->my); golemeffects(mdef, AD_ELEC, tmp); tmp = 0; @@ -932,12 +1093,20 @@ register struct attack *mattk; } if (resists_acid(mdef)) { if (vis) +/*JP pline("%s is covered in acid, but it seems harmless.", +*/ + pline("%s‚ÍŽ_‚ɂ‚‚܂ꂽD‚µ‚©‚µ‚È‚ñ‚Æ‚à‚È‚¢‚悤‚¾D", Monnam(mdef)); tmp = 0; } else if (vis) { +#if 0 /*JP*/ pline("%s is covered in acid!", Monnam(mdef)); pline("It burns %s!", mon_nam(mdef)); +#else + pline("%s‚ÍŽ_‚ɂ‚‚܂ꂽI", Monnam(mdef)); + pline("%s‚͏Ă©‚ꂽI", mon_nam(mdef)); +#endif } if (!rn2(30)) erode_armor(mdef, ERODE_CORRODE); @@ -949,12 +1118,18 @@ register struct attack *mattk; break; if (pd == &mons[PM_IRON_GOLEM]) { if (vis) +/*JP pline("%s falls to pieces!", Monnam(mdef)); +*/ + pline("%s‚̓oƒ‰ƒoƒ‰‚É‚È‚Á‚½I", Monnam(mdef)); mondied(mdef); if (mdef->mhp > 0) return 0; else if (mdef->mtame && !vis) +/*JP pline("May %s rust in peace.", mon_nam(mdef)); +*/ + pline("%s‚æCˆÀ‚ç‚©‚ÉŽK‚Ñ‚ñŽ–‚ðD", mon_nam(mdef)); return (MM_DEF_DIED | (grow_up(magr, mdef) ? 0 : MM_AGR_DIED)); } erode_armor(mdef, ERODE_RUST); @@ -973,12 +1148,18 @@ register struct attack *mattk; break; if (pd == &mons[PM_WOOD_GOLEM] || pd == &mons[PM_LEATHER_GOLEM]) { if (vis) +/*JP pline("%s falls to pieces!", Monnam(mdef)); +*/ + pline("%s‚̓oƒ‰ƒoƒ‰‚É‚È‚Á‚½I", Monnam(mdef)); mondied(mdef); if (mdef->mhp > 0) return 0; else if (mdef->mtame && !vis) +/*JP pline("May %s rot in peace.", mon_nam(mdef)); +*/ + pline("%s‚æCˆÀ‚ç‚©‚É•…‚ç‚ñŽ–‚ðD", mon_nam(mdef)); return (MM_DEF_DIED | (grow_up(magr, mdef) ? 0 : MM_AGR_DIED)); } erode_armor(mdef, ERODE_CORRODE); @@ -999,13 +1180,19 @@ register struct attack *mattk; } if (!resists_ston(mdef)) { if (vis) +/*JP pline("%s turns to stone!", Monnam(mdef)); +*/ + pline("%s‚͐΂ɂȂÁ‚½I", Monnam(mdef)); monstone(mdef); post_stone: if (mdef->mhp > 0) return 0; else if (mdef->mtame && !vis) +/*JP You(brief_feeling, "peculiarly sad"); +*/ + You(brief_feeling, "‚à‚̔߂µ‚¢"); return (MM_DEF_DIED | (grow_up(magr, mdef) ? 0 : MM_AGR_DIED)); } tmp = (mattk->adtyp == AD_STON ? 0 : 1); @@ -1020,7 +1207,10 @@ register struct attack *mattk; mdef->mstrategy &= ~STRAT_WAITFORU; (void) rloc(mdef, TRUE); if (vis && !canspotmon(mdef) && mdef != u.usteed) +/*JP pline("%s suddenly disappears!", mdef_Monnam); +*/ + pline("%s‚Í“Ë‘RÁ‚¦‚½I", mdef_Monnam); } break; case AD_SLEE: @@ -1028,7 +1218,10 @@ register struct attack *mattk; && sleep_monst(mdef, rnd(10), -1)) { if (vis) { Strcpy(buf, Monnam(mdef)); +/*JP pline("%s is put to sleep by %s.", buf, mon_nam(magr)); +*/ + pline("%s‚Í%s‚É‚æ‚Á‚Ä–°‚炳‚ꂽD", buf, mon_nam(magr)); } mdef->mstrategy &= ~STRAT_WAITFORU; slept_monst(mdef); @@ -1038,7 +1231,10 @@ register struct attack *mattk; if (!cancelled && mdef->mcanmove) { if (vis) { Strcpy(buf, Monnam(mdef)); +/*JP pline("%s is frozen by %s.", buf, mon_nam(magr)); +*/ + pline("%s‚Í%s‚É‚æ‚Á‚Ä“®‚¯‚È‚­‚È‚Á‚½D", buf, mon_nam(magr)); } paralyze_monst(mdef, rnd(10)); } @@ -1050,7 +1246,10 @@ register struct attack *mattk; mon_adjust_speed(mdef, -1, (struct obj *) 0); mdef->mstrategy &= ~STRAT_WAITFORU; if (mdef->mspeed != oldspeed && vis) +/*JP pline("%s slows down.", Monnam(mdef)); +*/ + pline("%s‚Í“®ì‚ª‚Ì‚ë‚­‚È‚Á‚½D", Monnam(mdef)); } break; case AD_CONF: @@ -1060,7 +1259,10 @@ register struct attack *mattk; */ if (!magr->mcan && !mdef->mconf && !magr->mspec_used) { if (vis) +/*JP pline("%s looks confused.", Monnam(mdef)); +*/ + pline("%s‚͍¬—‚µ‚Ä‚¢‚é‚悤‚ÉŒ©‚¦‚éD", Monnam(mdef)); mdef->mconf = 1; mdef->mstrategy &= ~STRAT_WAITFORU; } @@ -1070,7 +1272,10 @@ register struct attack *mattk; register unsigned rnd_tmp; if (vis && mdef->mcansee) +/*JP pline("%s is blinded.", Monnam(mdef)); +*/ + pline("%s‚Í–Ú‚ªŒ©‚¦‚È‚­‚È‚Á‚½D", Monnam(mdef)); rnd_tmp = d((int) mattk->damn, (int) mattk->damd); if ((rnd_tmp += mdef->mblinded) > 127) rnd_tmp = 127; @@ -1083,8 +1288,13 @@ register struct attack *mattk; case AD_HALU: if (!magr->mcan && haseyes(pd) && mdef->mcansee) { if (vis) +#if 0 /*JP*/ pline("%s looks %sconfused.", Monnam(mdef), mdef->mconf ? "more " : ""); +#else + pline("%s‚Í%s¬—‚µ‚Ä‚¢‚é‚悤‚ÉŒ©‚¦‚éD", Monnam(mdef), + mdef->mconf ? "‚Ü‚·‚Ü‚·" : ""); +#endif mdef->mconf = 1; mdef->mstrategy &= ~STRAT_WAITFORU; } @@ -1100,23 +1310,38 @@ register struct attack *mattk; were_change(mdef); if (pd == &mons[PM_CLAY_GOLEM]) { if (vis) { +/*JP pline("Some writing vanishes from %s head!", +*/ + pline("‚¢‚­‚‚©‚Ì•¶Žš‚ª%s‚Ì“ª‚©‚çÁ‚¦‚½I", s_suffix(mon_nam(mdef))); +/*JP pline("%s is destroyed!", Monnam(mdef)); +*/ + pline("%s‚Í”j‰ó‚³‚ꂽI", Monnam(mdef)); } mondied(mdef); if (mdef->mhp > 0) return 0; else if (mdef->mtame && !vis) +/*JP You(brief_feeling, "strangely sad"); +*/ + You(brief_feeling, "–­‚ɔ߂µ‚¢"); return (MM_DEF_DIED | (grow_up(magr, mdef) ? 0 : MM_AGR_DIED)); } if (!Deaf) { if (!vis) +/*JP You_hear("laughter."); +*/ + You_hear("Î‚¢º‚ð•·‚¢‚½D"); else +/*JP pline("%s chuckles.", Monnam(magr)); +*/ + pline("%s‚Í‚­‚·‚­‚·Î‚Á‚½D", Monnam(magr)); } } break; @@ -1137,19 +1362,28 @@ register struct attack *mattk; mdef->mstrategy &= ~STRAT_WAITFORU; if (vis) { Strcpy(buf, Monnam(magr)); +/*JP pline("%s steals some gold from %s.", buf, mon_nam(mdef)); +*/ + pline("%s‚Í%s‚©‚ç‹à‚𓐂ñ‚¾D", buf, mon_nam(mdef)); } if (!tele_restrict(magr)) { (void) rloc(magr, TRUE); if (vis && !canspotmon(magr)) +/*JP pline("%s suddenly disappears!", buf); +*/ + pline("%s‚Í“Ë‘RÁ‚¦‚½I", buf); } break; case AD_DRLI: if (!cancelled && !rn2(3) && !resists_drli(mdef)) { tmp = d(2, 6); if (vis) +/*JP pline("%s suddenly seems weaker!", Monnam(mdef)); +*/ + pline("%s‚Í“Ë‘RŽã‚­‚È‚Á‚½‚悤‚ÉŒ©‚¦‚½I", Monnam(mdef)); mdef->mhpmax -= tmp; if (mdef->m_lev == 0) tmp = mdef->mhp; @@ -1194,7 +1428,10 @@ register struct attack *mattk; (void) add_to_minv(magr, otmp); if (vis) { Strcpy(buf, Monnam(magr)); +/*JP pline("%s steals %s from %s!", buf, onambuf, mdefnambuf); +*/ + pline("%s‚Í%s‚©‚ç%s‚𓐂ñ‚¾I", buf, mdefnambuf, onambuf); } possibly_unwield(mdef, FALSE); mdef->mstrategy &= ~STRAT_WAITFORU; @@ -1205,7 +1442,10 @@ register struct attack *mattk; if (pa->mlet == S_NYMPH && !tele_restrict(magr)) { (void) rloc(magr, TRUE); if (vis && !canspotmon(magr)) +/*JP pline("%s suddenly disappears!", buf); +*/ + pline("%s‚Í“Ë‘RÁ‚¦‚½I", buf); } } tmp = 0; @@ -1220,18 +1460,29 @@ register struct attack *mattk; case AD_DRCO: if (!cancelled && !rn2(8)) { if (vis) +#if 0 /*JP*/ pline("%s %s was poisoned!", s_suffix(Monnam(magr)), mpoisons_subj(magr, mattk)); +#else + pline("%s‚Ì%s‚Í“Å‚³‚ê‚Ä‚¢‚éI", Monnam(magr), + mpoisons_subj(magr, mattk)); +#endif if (resists_poison(mdef)) { if (vis) +/*JP pline_The("poison doesn't seem to affect %s.", +*/ + pline("%s‚͓ł̉e‹¿‚ðŽó‚¯‚È‚¢D", mon_nam(mdef)); } else { if (rn2(10)) tmp += rn1(10, 6); else { if (vis) +/*JP pline_The("poison was deadly..."); +*/ + pline("“Å‚Í’vŽ€—Ê‚¾‚Á‚½DDD"); tmp = mdef->mhp; } } @@ -1240,7 +1491,10 @@ register struct attack *mattk; case AD_DRIN: if (notonhead || !has_head(pd)) { if (vis) +/*JP pline("%s doesn't seem harmed.", Monnam(mdef)); +*/ + pline("%s‚͏‚‚¢‚½‚悤‚É‚ÍŒ©‚¦‚È‚¢D", Monnam(mdef)); /* Not clear what to do for green slimes */ tmp = 0; break; @@ -1248,8 +1502,13 @@ register struct attack *mattk; if ((mdef->misc_worn_check & W_ARMH) && rn2(8)) { if (vis) { Strcpy(buf, s_suffix(Monnam(mdef))); +#if 0 /*JP*/ pline("%s helmet blocks %s attack to %s head.", buf, s_suffix(mon_nam(magr)), mhis(mdef)); +#else + pline("%s‚ÌŠ•‚Í%s‚Ì“ª‚ւ̍UŒ‚‚ð–h‚¢‚¾D", buf, + mon_nam(magr)); +#endif } break; } @@ -1372,7 +1631,10 @@ struct monst *mon; { if ((mon->msleeping || !mon->mcanmove) && mon == u.ustuck && !sticks(youmonst.data) && !u.uswallow) { +/*JP pline("%s grip relaxes.", s_suffix(Monnam(mon))); +*/ + pline("%s‚̈¬‚é—Í‚ªŽã‚­‚È‚Á‚½D", Monnam(mon)); unstuck(mon); } } @@ -1404,10 +1666,17 @@ struct monst *magr, *mdef; struct obj *otemp; { if (flags.verbose && !Blind && mon_visible(magr)) { +#if 0 /*JP*/ pline("%s %s %s%s %s at %s.", Monnam(magr), (objects[otemp->otyp].oc_dir & PIERCE) ? "thrusts" : "swings", (otemp->quan > 1L) ? "one of " : "", mhis(magr), xname(otemp), mon_nam(mdef)); +#else + pline((objects[otemp->otyp].oc_dir & PIERCE) ? + "%s‚Í%s‚Å%s‚ð“Ë‚¢‚½D" : + "%s‚Í%s‚ðU‚è‚܂킵%s‚ðUŒ‚‚µ‚½D", Monnam(magr), + xname(otemp), mon_nam(mdef)); +#endif } } @@ -1445,11 +1714,19 @@ int mdead; if (mhit && !rn2(2)) { Strcpy(buf, Monnam(magr)); if (canseemon(magr)) +#if 0 /*JP*/ pline("%s is splashed by %s acid!", buf, s_suffix(mon_nam(mdef))); +#else + pline("%s‚Í%s‚ÌŽ_‚𗁂т½I", buf, + mon_nam(mdef)); +#endif if (resists_acid(magr)) { if (canseemon(magr)) +/*JP pline("%s is not affected.", Monnam(magr)); +*/ + pline("%s‚͉e‹¿‚ðŽó‚¯‚È‚¢D", Monnam(magr)); tmp = 0; } } else @@ -1482,22 +1759,33 @@ int mdead; tmp = 127; if (magr->mcansee && haseyes(madat) && mdef->mcansee && (perceives(madat) || !mdef->minvis)) { +/*JP Sprintf(buf, "%s gaze is reflected by %%s %%s.", +*/ + Sprintf(buf, "%s‚Ì‚É‚ç‚Ý‚Í%%s‚É‚æ‚Á‚Ä%%sD", s_suffix(Monnam(mdef))); if (mon_reflects(magr, canseemon(magr) ? buf : (char *) 0)) return (mdead | mhit); Strcpy(buf, Monnam(magr)); if (canseemon(magr)) +#if 0 /*JP*/ pline("%s is frozen by %s gaze!", buf, s_suffix(mon_nam(mdef))); +#else + pline("%s‚Í%s‚Ì‚É‚ç‚Ý‚Å“®‚¯‚È‚­‚È‚Á‚½I", buf, + mon_nam(mdef)); +#endif paralyze_monst(magr, tmp); return (mdead | mhit); } } else { /* gelatinous cube */ Strcpy(buf, Monnam(magr)); if (canseemon(magr)) +/*JP pline("%s is frozen by %s.", buf, mon_nam(mdef)); +*/ + pline("%s‚Í%s‚É‚æ‚Á‚Ä“®‚¯‚È‚­‚È‚Á‚½D", buf, mon_nam(mdef)); paralyze_monst(magr, tmp); return (mdead | mhit); } @@ -1505,14 +1793,20 @@ int mdead; case AD_COLD: if (resists_cold(magr)) { if (canseemon(magr)) { +/*JP pline("%s is mildly chilly.", Monnam(magr)); +*/ + pline("%s‚͗₦‚½D", Monnam(magr)); golemeffects(magr, AD_COLD, tmp); } tmp = 0; break; } if (canseemon(magr)) +/*JP pline("%s is suddenly very cold!", Monnam(magr)); +*/ + pline("%s‚Í“Ë‘R“€‚肯‚É‚È‚Á‚½I", Monnam(magr)); mdef->mhp += tmp / 2; if (mdef->mhpmax < mdef->mhp) mdef->mhpmax = mdef->mhp; @@ -1523,34 +1817,50 @@ int mdead; if (!magr->mstun) { magr->mstun = 1; if (canseemon(magr)) +#if 0 /*JP*/ pline("%s %s...", Monnam(magr), makeplural(stagger(magr->data, "stagger"))); +#else + pline("%s‚Í‚­‚ç‚­‚炵‚½DDD", Monnam(magr)); +#endif } tmp = 0; break; case AD_FIRE: if (resists_fire(magr)) { if (canseemon(magr)) { +/*JP pline("%s is mildly warmed.", Monnam(magr)); +*/ + pline("%s‚Í’g‚©‚­‚È‚Á‚½D", Monnam(magr)); golemeffects(magr, AD_FIRE, tmp); } tmp = 0; break; } if (canseemon(magr)) +/*JP pline("%s is suddenly very hot!", Monnam(magr)); +*/ + pline("%s‚Í“Ë‘R‚Æ‚Ä‚à”M‚­‚È‚Á‚½I", Monnam(magr)); break; case AD_ELEC: if (resists_elec(magr)) { if (canseemon(magr)) { +/*JP pline("%s is mildly tingled.", Monnam(magr)); +*/ + pline("%s‚̓sƒŠƒsƒŠ‚µ‚Ä‚¢‚éD", Monnam(magr)); golemeffects(magr, AD_ELEC, tmp); } tmp = 0; break; } if (canseemon(magr)) +/*JP pline("%s is jolted with electricity!", Monnam(magr)); +*/ + pline("%s‚Í“d‹CƒVƒ‡ƒbƒN‚ð‚¤‚¯‚½I", Monnam(magr)); break; default: tmp = 0; diff --git a/src/mhitu.c b/src/mhitu.c index 2d489a1..95ea3bc 100644 --- a/src/mhitu.c +++ b/src/mhitu.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" #include "artifact.h" @@ -38,35 +43,67 @@ register struct attack *mattk; /* If same gender, "engagingly" for nymph, normal msg for others */ if ((compat = could_seduce(mtmp, &youmonst, mattk)) && !mtmp->mcan && !mtmp->mspec_used) { +#if 0 /*JP*/ pline("%s %s you %s.", Monnam(mtmp), Blind ? "talks to" : "smiles at", compat == 2 ? "engagingly" : "seductively"); +#else + pline("%s‚Í‚ ‚È‚½%s%sD", Monnam(mtmp), + compat == 2 ? "‚ðˆø‚«‚‚¯‚é‚悤‚É" : "‚ɍDˆÓ‚ð‚悹‚é‚悤‚É", + Blind ? "˜b‚µ‚©‚¯‚½" : "”÷Î‚ñ‚¾"); +#endif } else switch (mattk->aatyp) { case AT_BITE: +/*JP pline("%s bites!", Monnam(mtmp)); +*/ + pline("%s‚ÍŠš‚݂‚¢‚½I", Monnam(mtmp)); break; case AT_KICK: +#if 0 /*JP*/ pline("%s kicks%c", Monnam(mtmp), thick_skinned(youmonst.data) ? '.' : '!'); +#else + pline("%s‚͏R‚Ƃ΂µ‚½%s",Monnam(mtmp), + thick_skinned(youmonst.data) ? "D" : "I"); +#endif break; case AT_STNG: +/*JP pline("%s stings!", Monnam(mtmp)); +*/ + pline("%s‚Í“Ë‚«‚³‚µ‚½I", Monnam(mtmp)); break; case AT_BUTT: +/*JP pline("%s butts!", Monnam(mtmp)); +*/ + pline("%s‚Í“ª“Ë‚«‚ð‚­‚ç‚킵‚½I", Monnam(mtmp)); break; case AT_TUCH: +/*JP pline("%s touches you!", Monnam(mtmp)); +*/ + pline("%s‚Í‚ ‚È‚½‚ɐG‚ꂽI", Monnam(mtmp)); break; case AT_TENT: +/*JP pline("%s tentacles suck you!", s_suffix(Monnam(mtmp))); +*/ + pline("%s‚̐GŽè‚ª‚ ‚È‚½‚̑̉t‚ð‹z‚¢‚Æ‚Á‚½I", Monnam(mtmp)); break; case AT_EXPL: case AT_BOOM: +/*JP pline("%s explodes!", Monnam(mtmp)); +*/ + pline("%s‚Í”š”­‚µ‚½I", Monnam(mtmp)); break; default: +/*JP pline("%s hits!", Monnam(mtmp)); +*/ + pline("%s‚̍UŒ‚‚Í–½’†‚µ‚½I", Monnam(mtmp)); } } @@ -81,10 +118,18 @@ struct attack *mattk; map_invisible(mtmp->mx, mtmp->my); if (could_seduce(mtmp, &youmonst, mattk) && !mtmp->mcan) +/*JP pline("%s pretends to be friendly.", Monnam(mtmp)); +*/ + pline("%s‚Í—FD“I‚È‚Ó‚è‚ð‚µ‚Ä‚¢‚éD",Monnam(mtmp)); else +#if 0 /*JP*/ pline("%s %smisses!", Monnam(mtmp), (nearmiss && flags.verbose) ? "just " : ""); +#else + pline("%s‚̍UŒ‚‚Í%s‚½D", Monnam(mtmp), + (nearmiss && flags.verbose) ? "‹ó‚ðØ‚Á" : "‚Í‚¸‚ê"); +#endif stop_occupation(); } @@ -96,9 +141,15 @@ struct monst *mtmp; struct obj *otemp; { if (flags.verbose && !Blind && mon_visible(mtmp)) { +#if 0 /*JP*/ pline("%s %s %s%s %s.", Monnam(mtmp), (objects[otemp->otyp].oc_dir & PIERCE) ? "thrusts" : "swings", (otemp->quan > 1L) ? "one of " : "", mhis(mtmp), xname(otemp)); +#else + pline("%s‚Í%s%sD", Monnam(mtmp), + xname(otemp), + (objects[otemp->otyp].oc_dir & PIERCE) ? "‚ð“Ë‚¢‚½" : "‚ðU‚è‚܂킵‚½"); +#endif } } @@ -112,11 +163,20 @@ struct attack *mattk; struct obj *mwep = (mtmp == &youmonst) ? uwep : MON_WEP(mtmp); /* "Foo's attack was poisoned." is pretty lame, but at least it's better than "sting" when not a stinging attack... */ +/*JP return (!mwep || !mwep->opoisoned) ? "attack" : "weapon"; +*/ + return (!mwep || !mwep->opoisoned) ? "UŒ‚" : "•Ší"; } else { +#if 0 /*JP*/ return (mattk->aatyp == AT_TUCH) ? "contact" : (mattk->aatyp == AT_GAZE) ? "gaze" : (mattk->aatyp == AT_BITE) ? "bite" : "sting"; +#else + return (mattk->aatyp == AT_TUCH) ? "ÚG" + : (mattk->aatyp == AT_GAZE) ? "‚É‚ç‚Ý" + : (mattk->aatyp == AT_BITE) ? "Šš‚݂‚«" : "“Ë‚«‚³‚µ"; +#endif } } @@ -126,9 +186,15 @@ u_slow_down() { HFast = 0L; if (!Fast) +/*JP You("slow down."); +*/ + You("“®‚«‚ª’x‚­‚È‚Á‚½D"); else /* speed boots */ +/*JP Your("quickness feels less natural."); +*/ + You("‘¬‚³‚ɂ‚¢‚Ä‚¢‚¯‚È‚­‚È‚Á‚½D"); exercise(A_DEX, FALSE); } @@ -152,6 +218,7 @@ register struct attack *mattk; && could_seduce(mtmp, &youmonst, (struct attack *) 0)); if (!mtmp->mcansee || (Invis && !perceives(mtmp->data))) { +#if 0 /*JP*/ const char *swings = mattk->aatyp == AT_BITE ? "snaps" @@ -161,33 +228,69 @@ register struct attack *mattk; || nolimbs(mtmp->data)) ? "lunges" : "swings"; +#else + const char *swings = + mattk->aatyp == AT_BITE + ? "Šš‚݂‚­" + : mattk->aatyp == AT_KICK + ? "R‚Ƃ΂·" + : (mattk->aatyp == AT_STNG || mattk->aatyp == AT_BUTT + || nolimbs(mtmp->data)) + ? "“ːi‚·‚é" + : "U‚è‰ñ‚·"; +#endif if (compat) +/*JP pline("%s tries to touch you and misses!", Monnam(mtmp)); +*/ + pline("%s‚Í‚ ‚È‚½‚ɐG‚낤‚Æ‚µ‚½‚ªŽ¸”s‚µ‚½I", Monnam(mtmp)); else switch (rn2(3)) { case 0: +/*JP pline("%s %s wildly and misses!", Monnam(mtmp), swings); +*/ + pline("%s‚ÍŒƒ‚µ‚­%s‚ªC‚Í‚¸‚µ‚½D", Monnam(mtmp), jpast(swings)); break; case 1: +/*JP pline("%s attacks a spot beside you.", Monnam(mtmp)); +*/ + pline("%s‚̍UŒ‚‚Í‚ ‚È‚½‚̘e• ‚ð‚©‚·‚ß‚½D", Monnam(mtmp)); break; case 2: +#if 0 /*JP*/ pline("%s strikes at %s!", Monnam(mtmp), levl[mtmp->mux][mtmp->muy].typ == WATER ? "empty water" : "thin air"); +#else + pline("%s‚Í%s‚ð‘Å‚¿‚‚¯‚½I", Monnam(mtmp), + levl[mtmp->mux][mtmp->muy].typ == WATER ? "…" + : "‰½‚à‚È‚¢‚Æ‚±‚ë"); +#endif break; default: +/*JP pline("%s %s wildly!", Monnam(mtmp), swings); +*/ + pline("%s‚ÍŒƒ‚µ‚­%sI", Monnam(mtmp), jpast(swings)); break; } } else if (Displaced) { if (compat) +#if 0 /*JP*/ pline("%s smiles %s at your %sdisplaced image...", Monnam(mtmp), compat == 2 ? "engagingly" : "seductively", Invis ? "invisible " : ""); +#else + pline("%s‚Í%s‚ ‚È‚½‚ÌŒ¶‰e‚ɑ΂µ‚Ä%s”÷Î‚ñ‚¾DDD", Monnam(mtmp), + Invis ? "“§–¾‚È" : "", + compat == 2 ? "–£—Í“I‚É" : "—U˜f“I‚É"); +#endif else +#if 0 /*JP*/ pline("%s strikes at your %sdisplaced image and misses you!", /* Note: if you're both invisible and displaced, * only monsters which see invisible will attack your @@ -195,14 +298,24 @@ register struct attack *mattk; * invisible. */ Monnam(mtmp), Invis ? "invisible " : ""); +#else + pline("%s‚Í‚ ‚È‚½‚Ì%sŒ¶‰e‚ðUŒ‚‚µC‚Í‚¸‚µ‚½I", + Monnam(mtmp), Invis ? "“§–¾‚È" : ""); +#endif } else if (Underwater) { /* monsters may miss especially on water level where bubbles shake the player here and there */ if (compat) +/*JP pline("%s reaches towards your distorted image.", Monnam(mtmp)); +*/ + pline("%s‚Í‚ ‚È‚½‚̘c‚ñ‚¾Œ¶‰e‚Ì•û‚ÖŒü‚©‚Á‚½D", Monnam(mtmp)); else +/*JP pline("%s is fooled by water reflections and misses!", +*/ + pline("%s‚͐…‚Ì”½ŽË‚É‚¾‚Ü‚³‚êC‚Í‚¸‚µ‚½I", Monnam(mtmp)); } else @@ -218,7 +331,10 @@ boolean message; { if (message) { if (is_animal(mdat)) +/*JP You("get regurgitated!"); +*/ + You("“f‚«‚¾‚³‚ꂽI"); else { char blast[40]; register int i; @@ -233,15 +349,27 @@ boolean message; if (is_whirly(mdat)) { switch (mdat->mattk[i].adtyp) { case AD_ELEC: +/*JP Strcpy(blast, " in a shower of sparks"); +*/ + Strcpy(blast, "‚̉ΉԂ̉J‚Ì’†‚©‚ç"); break; case AD_COLD: +/*JP Strcpy(blast, " in a blast of frost"); +*/ + Strcpy(blast, "‚Ì—â‹C‚Ì•—‚Ì’†‚©‚ç"); break; } } else +/*JP Strcpy(blast, " with a squelch"); +*/ + Strcpy(blast, "‚©‚ç“f‚«o‚³‚ê‚é‚悤‚É"); +/*JP You("get expelled from %s%s!", mon_nam(mtmp), blast); +*/ + You("%s%s’Eo‚µ‚½I", mon_nam(mtmp), blast); } } } @@ -251,7 +379,10 @@ boolean message; spoteffects(TRUE); /* to cover for a case where mtmp is not in a next square */ if (um_dist(mtmp->mx, mtmp->my, 1)) +/*JP pline("Brrooaa... You land hard at some distance."); +*/ + pline("ƒuƒƒƒDD‰“‚­‚É’…—¤‚·‚é‚͓̂‚¢D"); } /* select a monster's next attack, possibly substituting for its usual one */ @@ -351,7 +482,10 @@ register struct monst *mtmp; coord cc; /* maybe we need a unexto() function? */ struct obj *obj; +/*JP You("fall from the %s!", ceiling(u.ux, u.uy)); +*/ + You("%s‚©‚ç—Ž‚¿‚½I", ceiling(u.ux,u.uy)); /* take monster off map now so that its location is eligible for placing hero; we assume that a removed monster remembers its old spot */ @@ -392,23 +526,37 @@ register struct monst *mtmp; obj = which_armor(mtmp, WORN_HELMET); if (obj && is_metallic(obj)) { +#if 0 /*JP*/ Your("blow glances off %s %s.", s_suffix(mon_nam(mtmp)), helm_simple_name(obj)); +#else + Your("UŒ‚‚Í%s‚Ì%s‚ð‚©‚·‚ß‚½‚¾‚¯‚¾‚Á‚½D", mon_nam(mtmp), + helm_simple_name(obj)); +#endif } else { if (3 + find_mac(mtmp) <= rnd(20)) { +/*JP pline("%s is hit by a falling piercer (you)!", +*/ + pline("%s‚Í—Ž‚¿‚Ä‚«‚½j(‚ ‚È‚½)‚ŏ‚‚¢‚½I", Monnam(mtmp)); if ((mtmp->mhp -= d(3, 6)) < 1) killed(mtmp); } else +/*JP pline("%s is almost hit by a falling piercer (you)!", +*/ + pline("%s‚Í‚à‚¤­‚µ‚Å—Ž‚¿‚Ä‚«‚½j(‚ ‚È‚½)‚ŏ‚‚­‚Æ‚±‚낾‚Á‚½I", Monnam(mtmp)); } } else { /* surface hider */ if (!youseeit) { +/*JP pline("It tries to move where you are hiding."); +*/ + pline("‰½ŽÒ‚©‚ª‚ ‚È‚½‚ª‰B‚ê‚Ä‚¢‚é‚Æ‚±‚ë‚ðˆÚ“®‚µ‚悤‚Æ‚µ‚½D"); } else { /* Ugly kludge for eggs. The message is phrased so as * to be directed at the monster, not the player, @@ -431,13 +579,24 @@ register struct monst *mtmp; if (youmonst.data->mlet == S_EEL || u.umonnum == PM_TRAPPER) pline( +#if 0 /*JP*/ "Wait, %s! There's a hidden %s named %s there!", m_monnam(mtmp), youmonst.data->mname, plname); +#else + "‘҂āC%sI%s‚Æ‚¢‚¤–¼‚Ì%s‚ª‰B‚ê‚Ä‚¢‚éI", + m_monnam(mtmp), plname, youmonst.data->mname); +#endif else pline( +#if 0 /*JP*/ "Wait, %s! There's a %s named %s hiding under %s!", m_monnam(mtmp), youmonst.data->mname, plname, doname(level.objects[u.ux][u.uy])); +#else + "‘҂āC%sI%s‚Æ‚¢‚¤–¼‚Ì%s‚ª%s‚̉º‚ɉB‚ê‚Ä‚¢‚éI", + m_monnam(mtmp), plname, youmonst.data->mname, + doname(level.objects[u.ux][u.uy])); +#endif if (obj) obj->spe = save_spe; } else @@ -456,10 +615,18 @@ register struct monst *mtmp; if (!canspotmon(mtmp)) map_invisible(mtmp->mx, mtmp->my); if (sticky && !youseeit) +/*JP pline("It gets stuck on you."); +*/ + pline("‰½ŽÒ‚©‚ª‚ ‚È‚½‚̏ã‚É‚Ì‚µ‚©‚©‚Á‚½D"); else +#if 0 /*JP*/ pline("Wait, %s! That's a %s named %s!", m_monnam(mtmp), youmonst.data->mname, plname); +#else + pline("‘҂āC%sI‚»‚ê‚Í%s‚Æ‚¢‚¤–¼‚Ì%s‚¾I", m_monnam(mtmp), + plname, youmonst.data->mname); +#endif if (sticky) u.ustuck = mtmp; youmonst.m_ap_type = M_AP_NOTHING; @@ -474,20 +641,39 @@ register struct monst *mtmp; if (!canspotmon(mtmp)) map_invisible(mtmp->mx, mtmp->my); if (!youseeit) +#if 0 /*JP*/ pline("%s %s!", Something, (likes_gold(mtmp->data) && youmonst.mappearance == GOLD_PIECE) ? "tries to pick you up" : "disturbs you"); +#else + pline("%s‚Í%sI", Something, (likes_gold(mtmp->data) + && youmonst.mappearance == GOLD_PIECE) + ? "‚ ‚È‚½‚ðE‚¨‚¤‚Æ‚µ‚½" + : "–³Ž‹‚µ‚½"); +#endif else +#if 0 /*JP*/ pline("Wait, %s! That %s is really %s named %s!", m_monnam(mtmp), mimic_obj_name(&youmonst), an(mons[u.umonnum].mname), plname); +#else + pline("‘҂āC%sI‚»‚Ì%s‚Í%s‚Æ‚¢‚¤–¼‚Ì%s‚¾I", m_monnam(mtmp), + mimic_obj_name(&youmonst), plname, + mons[u.umonnum].mname); +#endif if (multi < 0) { /* this should always be the case */ char buf[BUFSZ]; +#if 0 /*JP*/ Sprintf(buf, "You appear to be %s again.", Upolyd ? (const char *) an(youmonst.data->mname) : (const char *) "yourself"); +#else + Sprintf(buf, "‚ ‚È‚½‚Í‚Ó‚½‚½‚Ñ%s‚É‚È‚Á‚½D", + Upolyd ? (const char *) youmonst.data->mname + : (const char *) "Ž©•ªŽ©g"); +#endif unmul(buf); /* immediately stop mimicking */ } return 0; @@ -534,30 +720,56 @@ register struct monst *mtmp; Strcpy(genericwere, "creature"); numhelp = were_summon(mdat, FALSE, &numseen, genericwere); if (youseeit) { +/*JP pline("%s summons help!", Monnam(mtmp)); +*/ + pline("%s‚͏•‚¯‚ðŒÄ‚ñ‚¾I", Monnam(mtmp)); if (numhelp > 0) { if (numseen == 0) +/*JP You_feel("hemmed in."); +*/ + pline("‰½ŽÒ‚©‚Ɉ͂܂ꂽ‚悤‚È‹C‚ª‚·‚éD"); } else +/*JP pline("But none comes."); +*/ + pline("‚µ‚©‚µ‰½‚à—ˆ‚È‚©‚Á‚½D"); } else { const char *from_nowhere; if (!Deaf) { +/*JP pline("%s %s!", Something, makeplural(growl_sound(mtmp))); +*/ + pline("‰½‚©‚ª%sI", growl_sound(mtmp)); from_nowhere = ""; } else +/*JP from_nowhere = " from nowhere"; +*/ + from_nowhere = "‚Ç‚±‚©‚ç‚Æ‚à‚È‚­"; if (numhelp > 0) { if (numseen < 1) +/*JP You_feel("hemmed in."); +*/ + pline("‰½ŽÒ‚©‚Ɉ͂܂ꂽ‚悤‚È‹C‚ª‚·‚éD"); else { +#if 0 /*JP*/ if (numseen == 1) Sprintf(buf, "%s appears", an(genericwere)); else Sprintf(buf, "%s appear", makeplural(genericwere)); pline("%s%s!", upstart(buf), from_nowhere); +#else + pline("%s‚ª%sŒ»‚ꂽI", + strcmp(genericwere, "creature") + ? genericwere + : "‰½‚©", + from_nowhere); +#endif } } /* else no help came; but you didn't know it tried */ } @@ -567,13 +779,22 @@ register struct monst *mtmp; if (u.uinvulnerable) { /* monsters won't attack you */ if (mtmp == u.ustuck) +/*JP pline("%s loosens its grip slightly.", Monnam(mtmp)); +*/ + pline("%s‚Í’÷‚߂‚¯‚ð‚킸‚©‚ÉŠÉ‚ß‚½D", Monnam(mtmp)); else if (!range2) { if (youseeit || sensemon(mtmp)) +/*JP pline("%s starts to attack you, but pulls back.", +*/ + pline("%s‚Í‚ ‚È‚½‚ðUŒ‚‚µ‚©‚¯‚½‚ªC‚ЂÁ‚±‚ß‚½D", Monnam(mtmp)); else +/*JP You_feel("%s move nearby.", something); +*/ + pline("‰½ŽÒ‚©‚ª‚ ‚È‚½‚Ì‚»‚΂ð’Ê‚è‚Ê‚¯‚½‚悤‚È‹C‚ª‚µ‚½D"); } return 0; } @@ -650,14 +871,26 @@ register struct monst *mtmp; missmu(mtmp, (tmp == j), mattk); } } else if (is_animal(mtmp->data)) { +/*JP pline("%s gulps some air!", Monnam(mtmp)); +*/ + pline("%s‚Í‘§‚ð‹z‚¢‚±‚ñ‚¾I", Monnam(mtmp)); } else { if (youseeit) +/*JP pline("%s lunges forward and recoils!", Monnam(mtmp)); +*/ + pline("%s‚͓ːi‚µC–ß‚Á‚½I", Monnam(mtmp)); else +#if 0 /*JP*/ You_hear("a %s nearby.", is_whirly(mtmp->data) ? "rushing noise" : "splat"); +#else + You_hear("‚·‚®‚»‚΂Å%s‰¹‚ð•·‚¢‚½D", + is_whirly(mtmp->data) ? "“ËŒ‚‚µ‚Ä‚­‚é" + : "ƒsƒVƒƒƒb‚Æ‚¢‚¤"); +#endif } } break; @@ -725,7 +958,10 @@ register struct monst *mtmp; if (sum[i] == 1) { /* successful attack */ if (u.usleep && u.usleep < monstermoves && !rn2(10)) { multi = -1; +/*JP nomovemsg = "The combat suddenly awakens you."; +*/ + nomovemsg = "‚ ‚È‚½‚Í‹N‚±‚³‚ꂽD"; } } if (sum[i] == 2) @@ -742,7 +978,10 @@ diseasemu(mdat) struct permonst *mdat; { if (Sick_resistance) { +/*JP You_feel("a slight illness."); +*/ + You("‚·‚±‚µ‹C•ª‚ªˆ«‚­‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½D"); return FALSE; } else { make_sick(Sick ? Sick / 3L + 1L : (long) rn1(ACURR(A_CON), 20), @@ -768,6 +1007,7 @@ struct attack *mattk; protection might fail (33% chance) when the armor is cursed */ if (obj && (obj->greased || obj->otyp == OILSKIN_CLOAK) && (!obj->cursed || rn2(3))) { +#if 0 /*JP*/ pline("%s %s your %s %s!", Monnam(mtmp), (mattk->adtyp == AD_WRAP) ? "slips off of" : "grabs you, but cannot hold onto", @@ -777,9 +1017,21 @@ struct attack *mattk; (obj->greased || objects[obj->otyp].oc_name_known) ? xname(obj) : cloak_simple_name(obj)); +#else + pline("%s‚Í%s%s%sI", Monnam(mtmp), + obj->greased ? "–û‚Ì“h‚ç‚ꂽ" : "ŠŠ‚è‚â‚·‚¢", + (obj->greased || objects[obj->otyp].oc_name_known) + ? xname(obj) + : cloak_simple_name(obj), + (mattk->adtyp == AD_WRAP) ? "‚ÅŠŠ‚Á‚½" + : "‚ð‚‚©‚Ü‚¦‚悤‚Æ‚µ‚½‚ªC‚Å‚«‚È‚©‚Á‚½"); +#endif if (obj->greased && !rn2(2)) { +/*JP pline_The("grease wears off."); +*/ + pline("Ž‰‚Í—Ž‚¿‚Ä‚µ‚Ü‚Á‚½D"); obj->greased = 0; update_inventory(); } @@ -863,9 +1115,12 @@ register struct attack *mattk; mtmp->mundetected = 0; if (!(Blind ? Blind_telepat : Unblind_telepat)) { struct obj *obj; +#if 0 /*JP*/ const char *what; +#endif if ((obj = level.objects[mtmp->mx][mtmp->my]) != 0) { +#if 0 /*JP*/ if (Blind && !obj->dknown) what = something; else if (is_pool(mtmp->mx, mtmp->my) && !Underwater) @@ -874,6 +1129,14 @@ register struct attack *mattk; what = doname(obj); pline("%s was hidden under %s!", Amonnam(mtmp), what); +#else + if (Blind && !obj->dknown) + pline("%s‚ª‰½‚©‚̉º‚ɉB‚ê‚Ä‚¢‚éI", Amonnam(mtmp)); + else if (is_pool(mtmp->mx, mtmp->my) && !Underwater) + pline("%s‚ª…’†‚ɉB‚ê‚Ä‚¢‚éI", Amonnam(mtmp)); + else + pline("%s‚ª%s‚̉º‚ɉB‚ê‚Ä‚¢‚éI", Amonnam(mtmp), doname(obj)); +#endif } newsym(mtmp->mx, mtmp->my); } @@ -901,13 +1164,22 @@ register struct attack *mattk; dmg = 0; } else { u.ustuck = mtmp; +/*JP pline("%s grabs you!", Monnam(mtmp)); +*/ + pline("%s‚ɂ‚©‚Ü‚¦‚ç‚ê‚Ä‚¢‚éI", Monnam(mtmp)); } } else if (u.ustuck == mtmp) { exercise(A_STR, FALSE); +#if 0 /*JP*/ You("are being %s.", (mtmp->data == &mons[PM_ROPE_GOLEM]) ? "choked" : "crushed"); +#else + You("%s‚Ä‚¢‚éD", (mtmp->data == &mons[PM_ROPE_GOLEM]) + ? "Žñ‚ði‚ß‚ç‚ê" + : "‰Ÿ‚µ‚‚Ԃ³‚ê"); +#endif } } else { /* hand to hand weapon */ if (mattk->aatyp == AT_WEAP && otmp) { @@ -916,8 +1188,13 @@ register struct attack *mattk; if (otmp->otyp == CORPSE && touch_petrifies(&mons[otmp->corpsenm])) { dmg = 1; +#if 0 /*JP*/ pline("%s hits you with the %s corpse.", Monnam(mtmp), mons[otmp->corpsenm].mname); +#else + pline("%s‚Í%s‚ÌŽ€‘̂ōUŒ‚‚µ‚½D", Monnam(mtmp), + mons[otmp->corpsenm].mname); +#endif if (!Stoned) goto do_stone; } @@ -931,7 +1208,10 @@ register struct attack *mattk; break; if (objects[otmp->otyp].oc_material == SILVER && Hate_silver) { +/*JP pline_The("silver sears your flesh!"); +*/ + pline("‚ ‚È‚½‚Ì‘Ì‚Í‹â‚ŏĂ©‚ꂽI"); exercise(A_CON, FALSE); } /* this redundancy necessary because you have @@ -952,7 +1232,10 @@ register struct attack *mattk; context.botl = 1; dmg = 0; /* don't inflict more damage below */ if (cloneu()) +/*JP You("divide as %s hits you!", mon_nam(mtmp)); +*/ + pline("%s‚̍UŒ‚‚É‚æ‚Á‚Ä‚ ‚È‚½‚Í•ª—ô‚µ‚½I", mon_nam(mtmp)); } rustm(&youmonst, otmp); } else if (mattk->aatyp != AT_TUCH || dmg != 0 @@ -968,15 +1251,24 @@ register struct attack *mattk; case AD_FIRE: hitmsg(mtmp, mattk); if (uncancelled) { +/*JP pline("You're %s!", on_fire(youmonst.data, mattk)); +*/ + pline("‚ ‚È‚½‚Í%sI", on_fire(youmonst.data, mattk)); if (youmonst.data == &mons[PM_STRAW_GOLEM] || youmonst.data == &mons[PM_PAPER_GOLEM]) { +/*JP You("roast!"); +*/ + You("Å‚°‚½I"); /* KMH -- this is okay with unchanging */ rehumanize(); break; } else if (Fire_resistance) { +/*JP pline_The("fire doesn't feel hot!"); +*/ + pline("‰Î‚Í‚º‚ñ‚º‚ñ”M‚­‚È‚¢I"); dmg = 0; } if ((int) mtmp->m_lev > rn2(20)) @@ -992,9 +1284,15 @@ register struct attack *mattk; case AD_COLD: hitmsg(mtmp, mattk); if (uncancelled) { +/*JP pline("You're covered in frost!"); +*/ + You("•X‚Å•¢‚í‚ꂽI"); if (Cold_resistance) { +/*JP pline_The("frost doesn't seem cold!"); +*/ + pline("•X‚͗₳‚ðŠ´‚¶‚³‚¹‚È‚¢I"); dmg = 0; } if ((int) mtmp->m_lev > rn2(20)) @@ -1005,9 +1303,15 @@ register struct attack *mattk; case AD_ELEC: hitmsg(mtmp, mattk); if (uncancelled) { +/*JP You("get zapped!"); +*/ + You("“dŒ‚‚ð‚­‚ç‚Á‚½I"); if (Shock_resistance) { +/*JP pline_The("zap doesn't shock you!"); +*/ + pline("“dŒ‚‚Í‚µ‚Ñ‚ê‚ðŠ´‚¶‚³‚¹‚È‚¢I"); dmg = 0; } if ((int) mtmp->m_lev > rn2(20)) @@ -1024,15 +1328,24 @@ register struct attack *mattk; break; fall_asleep(-rnd(10), TRUE); if (Blind) +/*JP You("are put to sleep!"); +*/ + You("–°‚è‚É‚¨‚¿‚½I"); else +/*JP You("are put to sleep by %s!", mon_nam(mtmp)); +*/ + You("%s‚É–°‚炳‚ꂽI", mon_nam(mtmp)); } break; case AD_BLND: if (can_blnd(mtmp, &youmonst, mattk->aatyp, (struct obj *) 0)) { if (!Blind) +/*JP pline("%s blinds you!", Monnam(mtmp)); +*/ + pline("%s‚̍UŒ‚‚Å–Ú‚ªŒ©‚¦‚È‚­‚È‚Á‚½I", Monnam(mtmp)); make_blinded(Blinded + (long) dmg, FALSE); if (!Blind) Your1(vision_clears); @@ -1050,15 +1363,23 @@ register struct attack *mattk; dopois: hitmsg(mtmp, mattk); if (uncancelled && !rn2(8)) { +#if 0 /*JP*/ Sprintf(buf, "%s %s", s_suffix(Monnam(mtmp)), mpoisons_subj(mtmp, mattk)); +#else + Sprintf(buf, "%s‚Ì%s", Monnam(mtmp), + mpoisons_subj(mtmp, mattk)); +#endif poisoned(buf, ptmp, mdat->mname, 30, FALSE); } break; case AD_DRIN: hitmsg(mtmp, mattk); if (defends(AD_DRIN, uwep) || !has_head(youmonst.data)) { +/*JP You("don't seem harmed."); +*/ + You("‚‚¢‚Ä‚¢‚È‚¢‚悤‚¾D"); /* Not clear what to do for green slimes */ break; } @@ -1067,7 +1388,10 @@ register struct attack *mattk; if (uarmh && rn2(8)) { /* not body_part(HEAD) */ +/*JP Your("%s blocks the attack to your head.", +*/ + Your("%s‚ª“ª‚ւ̍UŒ‚‚ð–h‚¢‚¾D", helm_simple_name(uarmh)); break; } @@ -1093,12 +1417,21 @@ register struct attack *mattk; hitmsg(mtmp, mattk); if (uncancelled && multi >= 0 && !rn2(3)) { if (Free_action) { +/*JP You("momentarily stiffen."); +*/ + You("ˆêud’¼‚µ‚½D"); } else { if (Blind) +/*JP You("are frozen!"); +*/ + You("“®‚¯‚È‚¢I"); else +/*JP You("are frozen by %s!", mon_nam(mtmp)); +*/ + pline("%s‚É‚æ‚Á‚Ä“®‚¯‚È‚­‚È‚Á‚½I", mon_nam(mtmp)); nomovemsg = You_can_move_again; nomul(-rnd(10)); multi_reason = "paralyzed by a monster"; @@ -1109,12 +1442,18 @@ register struct attack *mattk; case AD_DRLI: hitmsg(mtmp, mattk); if (uncancelled && !rn2(3) && !Drain_resistance) { +/*JP losexp("life drainage"); +*/ + losexp("¶–½—Í‚ð‹zŽû‚³‚ê‚Ä"); } break; case AD_LEGS: { register long side = rn2(2) ? RIGHT_SIDE : LEFT_SIDE; +/*JP const char *sidestr = (side == RIGHT_SIDE) ? "right" : "left"; +*/ + const char *sidestr = (side == RIGHT_SIDE) ? "‰E" : "¶"; /* This case is too obvious to ignore, but Nethack is not in * general very good at considering height--most short monsters @@ -1122,31 +1461,61 @@ register struct attack *mattk; * [FIXME: why can't a flying attacker overcome this?] */ if (u.usteed || Levitation || Flying) { +#if 0 /*JP*/ pline("%s tries to reach your %s %s!", Monnam(mtmp), sidestr, body_part(LEG)); +#else + pline("%s‚Í‚ ‚È‚½‚Ì%s%s‚ɍUŒ‚‚µ‚悤‚Æ‚µ‚½I", Monnam(mtmp), sidestr, + body_part(LEG)); +#endif dmg = 0; } else if (mtmp->mcan) { +#if 0 /*JP*/ pline("%s nuzzles against your %s %s!", Monnam(mtmp), sidestr, body_part(LEG)); +#else + pline("%s‚Í‚ ‚È‚½‚Ì%s%s‚É•@‚ð‚·‚è‚悹‚½I", Monnam(mtmp), sidestr, + body_part(LEG)); +#endif dmg = 0; } else { if (uarmf) { if (rn2(2) && (uarmf->otyp == LOW_BOOTS || uarmf->otyp == IRON_SHOES)) +#if 0 /*JP*/ pline("%s pricks the exposed part of your %s %s!", Monnam(mtmp), sidestr, body_part(LEG)); +#else + pline("%s‚Í‚ ‚È‚½‚Ì%s%s‚ð‚¿‚­‚è‚ÆŽh‚µ‚½I", + Monnam(mtmp), sidestr, body_part(LEG)); +#endif else if (!rn2(5)) +#if 0 /*JP*/ pline("%s pricks through your %s boot!", Monnam(mtmp), sidestr); +#else + pline("%s‚Í‚ ‚È‚½‚Ì%s‚ÌŒC‚²‚µ‚É‚¿‚­‚è‚ÆŽh‚µ‚½I", Monnam(mtmp), + sidestr); +#endif else { +#if 0 /*JP*/ pline("%s scratches your %s boot!", Monnam(mtmp), sidestr); +#else + pline("%s‚Í‚ ‚È‚½‚Ì%s‚ÌŒC‚ð‚ЂÁ‚©‚¢‚½I", Monnam(mtmp), + sidestr); +#endif dmg = 0; break; } } else +#if 0 /*JP*/ pline("%s pricks your %s %s!", Monnam(mtmp), sidestr, body_part(LEG)); +#else + pline("%s‚Í‚ ‚È‚½‚Ì%s%s‚ð‚¿‚­‚è‚ÆŽh‚µ‚½I", Monnam(mtmp), sidestr, + body_part(LEG)); +#endif set_wounded_legs(side, rnd(60 - ACURR(A_DEX))); exercise(A_STR, FALSE); exercise(A_DEX, FALSE); @@ -1158,10 +1527,16 @@ register struct attack *mattk; if (!rn2(3)) { if (mtmp->mcan) { if (!Deaf) +/*JP You_hear("a cough from %s!", mon_nam(mtmp)); +*/ + You_hear("%s‚ªƒSƒzƒbƒSƒzƒb‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½I", mon_nam(mtmp)); } else { if (!Deaf) +/*JP You_hear("%s hissing!", s_suffix(mon_nam(mtmp))); +*/ + You_hear("%s‚ªƒVƒ…[ƒb‚Æ‚¢‚¤º‚ð•·‚¢‚½I", mon_nam(mtmp)); if (!rn2(10) || (flags.moonphase == NEW_MOON && !have_lizard())) { do_stone: @@ -1195,7 +1570,10 @@ register struct attack *mattk; if (u_slip_free(mtmp, mattk)) { dmg = 0; } else { +/*JP pline("%s swings itself around you!", Monnam(mtmp)); +*/ + pline("%s‚Í‚ ‚È‚½‚ɑ̂𗍂݂‚©‚¹‚½I", Monnam(mtmp)); u.ustuck = mtmp; } } else if (u.ustuck == mtmp) { @@ -1205,19 +1583,36 @@ register struct attack *mattk; && !Is_medusa_level(&u.uz) && !Is_waterlevel(&u.uz); +/*JP pline("%s drowns you...", Monnam(mtmp)); +*/ + pline("‚ ‚È‚½‚Í%s‚É—‚݂‚©‚ê‚Ä“M‚ꂽDDD", Monnam(mtmp)); killer.format = KILLED_BY_AN; +#if 0 /*JP*/ Sprintf(killer.name, "%s by %s", moat ? "moat" : "pool of water", an(mtmp->data->mname)); +#else + Sprintf(buf, "%s‚Ì%s‚É—‚݂‚©‚ê‚Ä", + moat ? "–x" : "’r", + mtmp->data->mname); +#endif done(DROWNING); } else if (mattk->aatyp == AT_HUGS) +/*JP You("are being crushed."); +*/ + You("‚‚Ԃ³‚ê‚‚‚ ‚éD"); } else { dmg = 0; if (flags.verbose) +#if 0 /*JP*/ pline("%s brushes against your %s.", Monnam(mtmp), body_part(LEG)); +#else + pline("%s‚Í‚ ‚È‚½‚Ì%s‚ɐG‚ꂽD", Monnam(mtmp), + body_part(LEG)); +#endif } } else dmg = 0; @@ -1226,7 +1621,10 @@ register struct attack *mattk; hitmsg(mtmp, mattk); if (uncancelled && !rn2(4) && u.ulycn == NON_PM && !Protection_from_shape_changers && !defends(AD_WERE, uwep)) { +/*JP You_feel("feverish."); +*/ + You("”M‚ª‚ ‚é‚悤‚È‹C‚ª‚µ‚½D"); exercise(A_CON, FALSE); u.ulycn = monsndx(mdat); retouch_equipment(2); @@ -1257,19 +1655,33 @@ register struct attack *mattk; /* Continue below */ } else if (dmgtype(youmonst.data, AD_SEDU) || (SYSOPT_SEDUCE && dmgtype(youmonst.data, AD_SSEX))) { +#if 0 /*JP*/ pline("%s %s.", Monnam(mtmp), mtmp->minvent ? "brags about the goods some dungeon explorer provided" : "makes some remarks about how difficult theft is lately"); +#else + pline("%s‚Í%sD", Monnam(mtmp), + mtmp->minvent + ? "‚ ‚é–À‹{’TŒŸ‰Æ‚ª’u‚¢‚Ä‚Á‚½•i•¨‚ðŽ©–‚µ‚½" + : "Å‹ßÞ“‚ª‚¢‚©‚ɍ¢“ï‚©’WX‚Əq‚ׂ½"); +#endif if (!tele_restrict(mtmp)) (void) rloc(mtmp, TRUE); return 3; } else if (mtmp->mcan) { if (!Blind) { +#if 0 /*JP*/ pline("%s tries to %s you, but you seem %s.", Adjmonnam(mtmp, "plain"), flags.female ? "charm" : "seduce", flags.female ? "unaffected" : "uninterested"); +#else + pline("%s‚Í‚ ‚È‚½‚ð%s‚µ‚悤‚Æ‚µ‚½C‚µ‚©‚µ‚ ‚È‚½‚Í%sD", + Adjmonnam(mtmp, "’n–¡‚È"), + flags.female ? "–£—¹" : "—U˜f", + flags.female ? "‰e‹¿‚ðŽó‚¯‚È‚¢" : "‹»–¡‚ª‚È‚¢"); +#endif } if (rn2(3)) { if (!tele_restrict(mtmp)) @@ -1289,8 +1701,13 @@ register struct attack *mattk; (void) rloc(mtmp, TRUE); if (is_animal(mtmp->data) && *buf) { if (canseemon(mtmp)) +#if 0 /*JP*/ pline("%s tries to %s away with %s.", Monnam(mtmp), locomotion(mtmp->data, "run"), buf); +#else + pline("%s‚Í%s‚ðŽ‚Á‚Ä“¦‚°o‚µ‚½D", Monnam(mtmp), + buf); +#endif } monflee(mtmp, 0, FALSE, FALSE); return 3; @@ -1310,7 +1727,10 @@ register struct attack *mattk; hitmsg(mtmp, mattk); if (uncancelled) { if (flags.verbose) +/*JP Your("position suddenly seems very uncertain!"); +*/ + pline("Ž©•ª‚Ì‚¢‚éˆÊ’u‚ª“Ë‘R•s–¾Šm‚É‚È‚Á‚½I"); tele(); } break; @@ -1319,7 +1739,10 @@ register struct attack *mattk; if (mtmp->mcan) break; if (u.umonnum == PM_IRON_GOLEM) { +/*JP You("rust!"); +*/ + You("ŽK‚т‚¢‚½I"); /* KMH -- this is okay with unchanging */ rehumanize(); break; @@ -1337,7 +1760,10 @@ register struct attack *mattk; if (mtmp->mcan) break; if (u.umonnum == PM_WOOD_GOLEM || u.umonnum == PM_LEATHER_GOLEM) { +/*JP You("rot!"); +*/ + You("•…‚Á‚½I"); /* KMH -- this is okay with unchanging */ rehumanize(); break; @@ -1354,7 +1780,10 @@ register struct attack *mattk; if (!uwep && !uarmu && !uarm && !uarmh && !uarms && !uarmg && !uarmc && !uarmf) { boolean goaway = FALSE; +/*JP pline("%s hits! (I hope you don't mind.)", Monnam(mtmp)); +*/ + pline("%s‚̍UŒ‚‚Í–½’†‚µ‚½D(‹C‚É‚µ‚È‚¢‚悤‚ɁD)", Monnam(mtmp)); if (Upolyd) { u.mh += rnd(7); if (!rn2(7)) { @@ -1397,7 +1826,10 @@ register struct attack *mattk; } else { if (Role_if(PM_HEALER)) { if (!Deaf && !(moves % 5)) +/*JP verbalize("Doc, I can't help you unless you cooperate."); +*/ + verbalize("ƒhƒNƒ^[I‹¦—Í‚ð‚¨‚Ë‚ª‚¢‚µ‚Ü‚·‚íD"); dmg = 0; } else hitmsg(mtmp, mattk); @@ -1410,12 +1842,21 @@ register struct attack *mattk; if (!mtmp->mcan && !rn2(10)) { if (!Deaf) { if (Blind) +/*JP You_hear("laughter."); +*/ + You_hear("Î‚¢º‚ð•·‚¢‚½D"); else +/*JP pline("%s chuckles.", Monnam(mtmp)); +*/ + pline("%s‚̓NƒXƒNƒXÎ‚Á‚½D", Monnam(mtmp)); } if (u.umonnum == PM_CLAY_GOLEM) { +/*JP pline("Some writing vanishes from your head!"); +*/ + pline("‚¢‚­‚‚©‚Ì•¶Žš‚ª‚ ‚È‚½‚Ì“ª‚©‚çÁ‚¦‚½I"); /* KMH -- this is okay with unchanging */ rehumanize(); break; @@ -1434,10 +1875,16 @@ register struct attack *mattk; hitmsg(mtmp, mattk); if (!mtmp->mcan && !rn2(3)) if (Acid_resistance) { +/*JP pline("You're covered in acid, but it seems harmless."); +*/ + pline("Ž_‚Å•¢‚í‚ꂽD‚µ‚©‚µ‚‚©‚È‚¢D"); dmg = 0; } else { +/*JP pline("You're covered in acid! It burns!"); +*/ + You("Ž_‚Å•¢‚í‚êÄ‚¯‚½I"); exercise(A_STR, FALSE); } else @@ -1459,18 +1906,30 @@ register struct attack *mattk; if (!mtmp->mcan && !rn2(4) && !mtmp->mspec_used) { mtmp->mspec_used = mtmp->mspec_used + (dmg + rn2(6)); if (Confusion) +/*JP You("are getting even more confused."); +*/ + You("‚Ü‚·‚Ü‚·¬—‚µ‚½D"); else +/*JP You("are getting confused."); +*/ + You("¬—‚µ‚Ä‚«‚½D"); make_confused(HConfusion + dmg, FALSE); } dmg = 0; break; case AD_DETH: +/*JP pline("%s reaches out with its deadly touch.", Monnam(mtmp)); +*/ + pline("%s‚ÍŽ€‚̘r‚ð‚̂΂µ‚½D", Monnam(mtmp)); if (is_undead(youmonst.data)) { /* Still does normal damage */ +/*JP pline("Was that the touch of death?"); +*/ + pline("¡‚Ì‚ÍŽ€‚̐鍐‚¾‚Á‚½‚Ì‚©‚ȁH"); break; } switch (rn2(20)) { @@ -1479,13 +1938,19 @@ register struct attack *mattk; case 17: if (!Antimagic) { killer.format = KILLED_BY_AN; +/*JP Strcpy(killer.name, "touch of death"); +*/ + Strcpy(killer.name, "Ž€‚̐鍐‚Å"); done(DIED); dmg = 0; break; } /* else FALLTHRU */ default: /* case 16: ... case 5: */ +/*JP You_feel("your life force draining away..."); +*/ + You("‘Ì—Í‚ª’D‚í‚ê‚Ä‚¢‚­‚悤‚È‹C‚ª‚µ‚½DDD"); permdmg = 1; /* actual damage done below */ break; case 4: @@ -1495,17 +1960,26 @@ register struct attack *mattk; case 0: if (Antimagic) shieldeff(u.ux, u.uy); +/*JP pline("Lucky for you, it didn't work!"); +*/ + pline("‰^‚Ì‚æ‚¢‚±‚Æ‚É‚È‚ñ‚Æ‚à‚È‚©‚Á‚½I"); dmg = 0; break; } break; case AD_PEST: +/*JP pline("%s reaches out, and you feel fever and chills.", Monnam(mtmp)); +*/ + pline("%s‚͘r‚ð‚̂΂µ‚½C‚ ‚È‚½‚͈«Š¦‚ðŠ´‚¶‚½D", Monnam(mtmp)); (void) diseasemu(mdat); /* plus the normal damage */ break; case AD_FAMN: +/*JP pline("%s reaches out, and your body shrivels.", Monnam(mtmp)); +*/ + pline("%s‚͘r‚ðL‚΂µ‚½C‚ ‚È‚½‚Ì‘Ì‚Í‚µ‚È‚Ñ‚½D", Monnam(mtmp)); exercise(A_CON, FALSE); if (!is_fainted()) morehungry(rn1(40, 40)); @@ -1516,18 +1990,30 @@ register struct attack *mattk; if (!uncancelled) break; if (flaming(youmonst.data)) { +/*JP pline_The("slime burns away!"); +*/ + pline_The("ƒXƒ‰ƒCƒ€‚Í”R‚¦‚½I"); dmg = 0; } else if (Unchanging || noncorporeal(youmonst.data) || youmonst.data == &mons[PM_GREEN_SLIME]) { +/*JP You("are unaffected."); +*/ + You("‰e‹¿‚ðŽó‚¯‚È‚¢D"); dmg = 0; } else if (!Slimed) { +/*JP You("don't feel very well."); +*/ + You("‹C•ª‚ªˆ«‚¢D"); make_slimed(10L, (char *) 0); delayed_killer(SLIMED, KILLED_BY_AN, mtmp->data->mname); } else +/*JP pline("Yuck!"); +*/ + pline("ƒEƒQƒF[I"); break; case AD_ENCH: /* KMH -- remove enchantment (disenchanter) */ hitmsg(mtmp, mattk); @@ -1537,7 +2023,10 @@ register struct attack *mattk; struct obj *obj = some_armor(&youmonst); if (drain_item(obj)) { +/*JP pline("%s less effective.", Yobjnam2(obj, "seem")); +*/ + Your("%s‚©‚ç–‚—Í‚ªÁ‚¦‚½‚悤‚¾D", xname(obj)); } } break; @@ -1666,24 +2155,41 @@ register struct attack *mattk; * like horses for now :-) */ Strcpy(buf, mon_nam(u.usteed)); +#if 0 /*JP*/ pline("%s lunges forward and plucks you off %s!", Monnam(mtmp), buf); +#else + pline("%s‚͓ːi‚µ‚ ‚È‚½‚ð%s‚©‚çˆø‚«—Ž‚µ‚½I", Monnam(mtmp), + buf); +#endif dismount_steed(DISMOUNT_ENGULFED); } else +/*JP pline("%s engulfs you!", Monnam(mtmp)); +*/ + pline("%s‚Í‚ ‚È‚½‚ðˆù‚Ý‚±‚ñ‚¾I", Monnam(mtmp)); stop_occupation(); reset_occupations(); /* behave as if you had moved */ if (u.utrap) { +#if 0 /*JP*/ You("are released from the %s!", u.utraptype == TT_WEB ? "web" : "trap"); +#else + You("%s‚©‚ç‰ð•ú‚³‚ꂽI", + u.utraptype == TT_WEB ? "‚­‚à‚Ì‘ƒ" : "ã©"); +#endif u.utrap = 0; } i = number_leashed(); if (i > 0) { +#if 0 /*JP*/ const char *s = (i > 1) ? "leashes" : "leash"; pline_The("%s %s loose.", s, vtense(s, "snap")); +#else + pline("•R‚̓pƒ`ƒ“‚Ɛ؂ꂽD"); +#endif unleash_all(); } @@ -1741,20 +2247,30 @@ register struct attack *mattk; u.uswldtim = 0; tmp = 0; } else if (u.uswldtim == 0) { +/*JP pline("%s totally digests you!", Monnam(mtmp)); +*/ + pline("%s‚Í‚ ‚È‚½‚ðŠ®‘S‚ɏÁ‰»‚µ‚½I", Monnam(mtmp)); tmp = u.uhp; if (Half_physical_damage) tmp *= 2; /* sorry */ } else { +#if 0 /*JP*/ pline("%s%s digests you!", Monnam(mtmp), (u.uswldtim == 2) ? " thoroughly" : (u.uswldtim == 1) ? " utterly" : ""); +#else + pline("%s‚Í‚ ‚È‚½‚ð%sÁ‰»‚µ‚Ä‚¢‚éI", Monnam(mtmp), + (u.uswldtim == 2) ? "“O’ê“I‚É" + : (u.uswldtim == 1) ? "Š®‘S‚É" : ""); +#endif exercise(A_STR, FALSE); } break; case AD_PHYS: physical_damage = TRUE; if (mtmp->data == &mons[PM_FOG_CLOUD]) { +#if 0 /*JP*/ You("are laden with moisture and %s", flaming(youmonst.data) ? "are smoldering out!" @@ -1762,23 +2278,44 @@ register struct attack *mattk; : amphibious(youmonst.data) ? "feel comforted." : "can barely breathe!"); +#else + You("Ž¼‹C‚ɋꂵ‚ß‚ç‚êC%s", + flaming(youmonst.data) + ? "‚­‚·‚Ô‚Á‚½I" + : Breathless ? "­X•s‰õ‚ÉŠ´‚¶‚½D" + : amphibious(youmonst.data) + ? "ˆÀ‚炬‚ðŠ´‚¶‚½D" + : "‘§‚ð‚·‚é‚Ì‚ª‚â‚Á‚Æ‚¾I"); +#endif /* NB: Amphibious includes Breathless */ if (Amphibious && !flaming(youmonst.data)) tmp = 0; } else { +/*JP You("are pummeled with debris!"); +*/ + You("Š¢âI‚Œɂ߂‚¯‚ç‚ꂽI"); exercise(A_STR, FALSE); } break; case AD_ACID: if (Acid_resistance) { +/*JP You("are covered with a seemingly harmless goo."); +*/ + You("–³ŠQ‚Á‚Û‚¢‚˂΂‚­‚à‚Ì‚Å‚¨‚¨‚í‚ꂽD"); tmp = 0; } else { if (Hallucination) +/*JP pline("Ouch! You've been slimed!"); +*/ + pline("‚°‚°‚ñI‚ ‚È‚½‚Í‚Ê‚é‚ʂ邾I"); else +/*JP You("are covered in slime! It burns!"); +*/ + You("‚ׂƂׂƂɂȂÁ‚½D‚»‚µ‚ÄŽ_‚ɏĂ©‚ꂽI"); exercise(A_STR, FALSE); } break; @@ -1787,7 +2324,10 @@ register struct attack *mattk; if (!Blind) { long was_blinded = Blinded; if (!Blinded) +/*JP You_cant("see in here!"); +*/ + You("‰½‚àŒ©‚¦‚È‚¢I"); make_blinded((long) tmp, FALSE); if (!was_blinded && !Blind) Your1(vision_clears); @@ -1799,10 +2339,16 @@ register struct attack *mattk; break; case AD_ELEC: if (!mtmp->mcan && rn2(2)) { +/*JP pline_The("air around you crackles with electricity."); +*/ + pline("‚ ‚È‚½‚̉ñ‚è‚Ì‹ó‹C‚Í“d‹C‚ŃsƒŠƒsƒŠ‚µ‚Ä‚¢‚éD"); if (Shock_resistance) { shieldeff(u.ux, u.uy); +/*JP You("seem unhurt."); +*/ + You("‚‚©‚È‚¢‚悤‚¾D"); ugolemeffects(AD_ELEC, tmp); tmp = 0; } @@ -1813,11 +2359,17 @@ register struct attack *mattk; if (!mtmp->mcan && rn2(2)) { if (Cold_resistance) { shieldeff(u.ux, u.uy); +/*JP You_feel("mildly chilly."); +*/ + pline("‚Ђñ‚â‚肵‚½D"); ugolemeffects(AD_COLD, tmp); tmp = 0; } else +/*JP You("are freezing to death!"); +*/ + You("“€Ž€‚µ‚»‚¤‚¾I"); } else tmp = 0; break; @@ -1825,11 +2377,17 @@ register struct attack *mattk; if (!mtmp->mcan && rn2(2)) { if (Fire_resistance) { shieldeff(u.ux, u.uy); +/*JP You_feel("mildly hot."); +*/ + pline("ƒ|ƒJƒ|ƒJ‚µ‚½D"); ugolemeffects(AD_FIRE, tmp); tmp = 0; } else +/*JP You("are burning to a crisp!"); +*/ + You("”R‚¦‚ăJƒ‰ƒJƒ‰‚É‚È‚Á‚½I"); burn_away_slime(); } else tmp = 0; @@ -1858,15 +2416,26 @@ register struct attack *mattk; stop_occupation(); if (touch_petrifies(youmonst.data) && !resists_ston(mtmp)) { +#if 0 /*JP*/ pline("%s very hurriedly %s you!", Monnam(mtmp), is_animal(mtmp->data) ? "regurgitates" : "expels"); +#else + pline("%s‚͍Q‚Ä‚Ä‚ ‚È‚½‚ð%s‚µ‚½I", Monnam(mtmp), + is_animal(mtmp->data)? "“f‚«–ß" : "”ro"); +#endif expels(mtmp, mtmp->data, FALSE); } else if (!u.uswldtim || youmonst.data->msize >= MZ_HUGE) { +/*JP You("get %s!", is_animal(mtmp->data) ? "regurgitated" : "expelled"); +*/ + You("%s‚³‚ꂽI", is_animal(mtmp->data)? "“f‚«–ß" : "”ro"); if (flags.verbose && (is_animal(mtmp->data) || (dmgtype(mtmp->data, AD_DGST) && Slow_digestion))) +/*JP pline("Obviously %s doesn't like your taste.", mon_nam(mtmp)); +*/ + You("‚Ç‚¤‚à%sD‚Ý‚Ì–¡‚¶‚á‚È‚¢‚悤‚¾D", mon_nam(mtmp)); expels(mtmp, mtmp->data, FALSE); } return 1; @@ -1885,10 +2454,17 @@ boolean ufound; return 0; if (!ufound) +#if 0 /*JP*/ pline("%s explodes at a spot in %s!", canseemon(mtmp) ? Monnam(mtmp) : "It", levl[mtmp->mux][mtmp->muy].typ == WATER ? "empty water" : "thin air"); +#else + pline("%s‚͉½‚à‚È‚¢%s‚Å”š”­‚µ‚½I", + canseemon(mtmp) ? Monnam(mtmp) : "‰½ŽÒ‚©", + levl[mtmp->mux][mtmp->muy].typ == WATER ? "…’†" + : "‹óŠÔ"); +#endif else { register int tmp = d((int) mattk->damn, (int) mattk->damd); register boolean not_affected = defends((int) mattk->adtyp, uwep); @@ -1911,11 +2487,17 @@ boolean ufound; if (!not_affected) { if (ACURR(A_DEX) > rnd(20)) { +/*JP You("duck some of the blast."); +*/ + You("ÕŒ‚‚ð‚³‚¯‚½D"); tmp = (tmp + 1) / 2; } else { if (flags.verbose) +/*JP You("get blasted!"); +*/ + You("ÕŒ‚‚ð‚­‚ç‚Á‚½I"); } if (mattk->adtyp == AD_FIRE) burn_away_slime(); @@ -1930,12 +2512,18 @@ boolean ufound; if (!not_affected) { /* sometimes you're affected even if it's invisible */ if (mon_visible(mtmp) || (rnd(tmp /= 2) > u.ulevel)) { +/*JP You("are blinded by a blast of light!"); +*/ + You("‚܂΂䂢Œõ‚É–Ú‚ª‚­‚ç‚ñ‚¾I"); make_blinded((long) tmp, FALSE); if (!Blind) Your1(vision_clears); } else if (flags.verbose) +/*JP You("get the impression it was not terribly bright."); +*/ + You("‚»‚ê‚Í‹°‚낵‚­‚Ü‚Ô‚µ‚¢‚Æ‚¢‚¤‚Ù‚Ç‚¶‚á‚È‚¢‚ÆŽv‚Á‚½D"); } break; @@ -1946,13 +2534,19 @@ boolean ufound; if (!not_affected) { boolean chg; if (!Hallucination) +/*JP You("are caught in a blast of kaleidoscopic light!"); +*/ + You("–œ‰Ø‹¾‚ÌŒõ‚ɕ߂炦‚ç‚ꂽI"); /* avoid hallucinating the black light as it dies */ mondead(mtmp); /* remove it from map now */ kill_agr = FALSE; /* already killed (maybe lifesaved) */ chg = make_hallucinated(HHallucination + (long) tmp, FALSE, 0L); +/*JP You("%s.", chg ? "are freaked out" : "seem unaffected"); +*/ + You("%sD", chg ? "Œ‚¢‚µ‚ꂽ" : "‰e‹¿‚ðŽó‚¯‚È‚©‚Á‚½"); } break; @@ -1960,7 +2554,10 @@ boolean ufound; break; } if (not_affected) { +/*JP You("seem unaffected by it."); +*/ + You("‰e‹¿‚ðŽó‚¯‚È‚¢‚悤‚¾D"); ugolemeffects((int) mattk->adtyp, tmp); } } @@ -1977,12 +2574,21 @@ register struct monst *mtmp; register struct attack *mattk; { static const char *const reactions[] = { +#if 0 /*JP*/ "confused", /* [0] */ "stunned", /* [1] */ "puzzled", "dazzled", /* [2,3] */ "irritated", "inflamed", /* [4,5] */ "tired", /* [6] */ "dulled", /* [7] */ +#else + "¬—‚µ‚½", /* [0] */ + "žNžO‚Æ‚µ‚½", /* [1] */ + "¢˜f‚µ‚½", "Œ¶˜f‚³‚ꂽ", /* [2,3] */ + "ƒCƒ‰ƒCƒ‰‚µ‚½", "‹»•±‚µ‚½", /* [4,5] */ + "”æ‚ꂽ", /* [6] */ + "‚Ú‚ñ‚â‚肵‚½", /* [7] */ +#endif }; int react = -1; boolean cancelled = (mtmp->mcan != 0), already = FALSE; @@ -2003,10 +2609,17 @@ register struct attack *mattk; if (cancelled || !mtmp->mcansee) { if (!canseemon(mtmp)) break; /* silently */ +#if 0 /*JP*/ pline("%s %s.", Monnam(mtmp), (mtmp->data == &mons[PM_MEDUSA] && mtmp->mcan) ? "doesn't look all that ugly" : "gazes ineffectually"); +#else + pline("%s‚Í%sD", Monnam(mtmp), + (mtmp->data == &mons[PM_MEDUSA] && mtmp->mcan) + ? "‚»‚ê‚قǏX‚­‚È‚¢‚±‚Æ‚É‹C‚ª‚‚¢‚½" + : "–³ˆÓ–¡‚É‚É‚ç‚ñ‚¾"); +#endif break; } if (Reflecting && couldsee(mtmp->mx, mtmp->my) @@ -2015,21 +2628,35 @@ register struct attack *mattk; boolean useeit = canseemon(mtmp); if (useeit) +/*JP (void) ureflects("%s gaze is reflected by your %s.", +*/ + (void) ureflects("%s‚Ì‚É‚ç‚Ý‚Í%s‚Å”½ŽË‚³‚ꂽD", s_suffix(Monnam(mtmp))); if (mon_reflects( mtmp, !useeit ? (char *) 0 +/*JP : "The gaze is reflected away by %s %s!")) +*/ + : "‚É‚ç‚Ý‚Í%s‚Ì%s‚É‚æ‚Á‚Ä”½ŽË‚³‚ꂽI")) break; if (!m_canseeu(mtmp)) { /* probably you're invisible */ if (useeit) +#if 0 /*JP*/ pline( "%s doesn't seem to notice that %s gaze was reflected.", Monnam(mtmp), mhis(mtmp)); +#else + pline("‚É‚ç‚Ý‚ª”½ŽË‚µ‚Ä‚¢‚邱‚Æ‚É%s‚Í‹C•t‚¢‚Ä‚¢‚È‚¢‚悤‚¾D", + Monnam(mtmp)); +#endif break; } if (useeit) +/*JP pline("%s is turned to stone!", Monnam(mtmp)); +*/ + pline("%s‚͐΂ɂȂÁ‚½I", Monnam(mtmp)); stoned = TRUE; killed(mtmp); @@ -2039,11 +2666,17 @@ register struct attack *mattk; } if (canseemon(mtmp) && couldsee(mtmp->mx, mtmp->my) && !Stone_resistance) { +/*JP You("meet %s gaze.", s_suffix(mon_nam(mtmp))); +*/ + You("%s‚É‚É‚ç‚܂ꂽD", s_suffix(mon_nam(mtmp))); stop_occupation(); if (poly_when_stoned(youmonst.data) && polymon(PM_STONE_GOLEM)) break; +/*JP You("turn to stone..."); +*/ + You("Î‚É‚È‚Á‚½DDD"); killer.format = KILLED_BY; Strcpy(killer.name, mtmp->data->mname); done(STONING); @@ -2060,9 +2693,15 @@ register struct attack *mattk; mtmp->mspec_used = mtmp->mspec_used + (conf + rn2(6)); if (!Confusion) +/*JP pline("%s gaze confuses you!", s_suffix(Monnam(mtmp))); +*/ + pline("%s‚Ì‚É‚ç‚Ý‚Å‚ ‚È‚½‚͍¬—‚µ‚½I", s_suffix(Monnam(mtmp))); else +/*JP You("are getting more and more confused."); +*/ + You("‚Ü‚·‚Ü‚·¬—‚µ‚½D"); make_confused(HConfusion + conf, FALSE); stop_occupation(); } @@ -2078,7 +2717,10 @@ register struct attack *mattk; int stun = d(2, 6); mtmp->mspec_used = mtmp->mspec_used + (stun + rn2(6)); +/*JP pline("%s stares piercingly at you!", Monnam(mtmp)); +*/ + pline("%s‚͗₽‚¢‚Ü‚È‚´‚µ‚ð‚ ‚È‚½‚ÉŒü‚¯‚½I", Monnam(mtmp)); make_stunned((HStun & TIMEOUT) + (long) stun, TRUE); stop_occupation(); } @@ -2097,7 +2739,10 @@ register struct attack *mattk; } else { int blnd = d((int) mattk->damn, (int) mattk->damd); +/*JP You("are blinded by %s radiance!", s_suffix(mon_nam(mtmp))); +*/ + You("%s‚ÌŒõ‚Å–Ú‚ªŒ©‚¦‚È‚­‚È‚Á‚½I", mon_nam(mtmp)); make_blinded((long) blnd, FALSE); stop_occupation(); /* not blind at this point implies you're wearing @@ -2118,10 +2763,16 @@ register struct attack *mattk; } else { int dmg = d(2, 6), lev = (int) mtmp->m_lev; +/*JP pline("%s attacks you with a fiery gaze!", Monnam(mtmp)); +*/ + pline("%s‚͉Š‚Ì‚É‚ç‚ݍUŒ‚‚ð‚µ‚Ä‚«‚½I", Monnam(mtmp)); stop_occupation(); if (Fire_resistance) { +/*JP pline_The("fire doesn't feel hot!"); +*/ + pline("‰Î‚Í‚º‚ñ‚º‚ñ”M‚­‚È‚¢I"); dmg = 0; } burn_away_slime(); @@ -2145,7 +2796,10 @@ register struct attack *mattk; already = (mtmp->mfrozen != 0); /* can't happen... */ } else { fall_asleep(-rnd(10), TRUE); +/*JP pline("%s gaze makes you very sleepy...", +*/ + pline("%s‚Ì‚É‚ç‚Ý‚Å‚ ‚È‚½‚Í–°‚­‚È‚Á‚½DDD", s_suffix(Monnam(mtmp))); } } @@ -2173,10 +2827,17 @@ register struct attack *mattk; react = rn2(SIZE(reactions)); /* cancelled/hallucinatory feedback; monster might look "confused", "stunned",&c but we don't actually set corresponding attribute */ +#if 0 /*JP*/ pline("%s looks %s%s.", Monnam(mtmp), !rn2(3) ? "" : already ? "quite " : (!rn2(2) ? "a bit " : "somewhat "), reactions[react]); +#else + pline("%s‚Í%s%s‚悤‚¾D", Monnam(mtmp), + !rn2(3) ? "" : already ? "‚©‚È‚è" + : (!rn2(2) ? "­‚µ" : "‚¢‚­‚ç‚©"), + reactions[react]); +#endif } return 0; } @@ -2257,20 +2918,34 @@ register struct monst *mon; char qbuf[QBUFSZ]; if (mon->mcan || mon->mspec_used) { +#if 0 /*JP*/ pline("%s acts as though %s has got a %sheadache.", Monnam(mon), mhe(mon), mon->mcan ? "severe " : ""); +#else + pline("%s‚Í%s“ª‚ª’É‚¢‚Ó‚è‚ð‚µ‚½D", Monnam(mon), + mon->mcan ? "‚Ђǂ­" : ""); +#endif return 0; } if (unconscious()) { +/*JP pline("%s seems dismayed at your lack of response.", Monnam(mon)); +*/ + pline("%s‚Í•ÔŽ–‚ª‚È‚¢‚Ì‚Å‹C‚ªˆÞ‚¦‚½‚悤‚¾D", Monnam(mon)); return 0; } if (Blind) +/*JP pline("It caresses you..."); +*/ + pline("‰½ŽÒ‚©‚ª‚ ‚È‚½‚ð•ø‚«‚µ‚ß‚Ä‚¢‚éDDD"); else +/*JP You_feel("very attracted to %s.", mon_nam(mon)); +*/ + You("%s‚Ɉø‚«‚‚¯‚ç‚ê‚Ä‚é‚悤‚È‹C‚ª‚µ‚½D", mon_nam(mon)); /* if in the process of putting armor on or taking armor off, interrupt that activity now */ (void) stop_donning((struct obj *) 0); @@ -2291,15 +2966,26 @@ register struct monst *mon; continue; /* next ring might not be worn */ } if (rn2(20) < ACURR(A_CHA)) { +#if 0 /*JP*/ (void) safe_qbuf(qbuf, "\"That ", " looks pretty. May I have it?\"", ring, xname, simpleonames, "ring"); +#else + (void) safe_qbuf(qbuf, "u‚È‚ñ‚Ä‘f“G‚È", + "‚Å‚µ‚傤D‚킽‚µ‚É‚­‚ê‚Ü‚¹‚ñHv", ring, + xname, simpleonames, "Žw—Ö"); +#endif makeknown(RIN_ADORNMENT); if (yn(qbuf) == 'n') continue; } else +#if 0 /*JP*/ pline("%s decides she'd like %s, and takes it.", Blind ? "She" : Monnam(mon), yname(ring)); +#else + pline("%s‚Í%s‚ª‚Æ‚Ä‚à‹C‚É‚¢‚Á‚āC‚»‚ê‚ðŽæ‚è‚ ‚°‚½D", + Blind ? "”ޏ—" : Monnam(mon), xname(ring)); +#endif makeknown(RIN_ADORNMENT); if (ring == uleft || ring == uright) Ring_gone(ring); @@ -2320,41 +3006,80 @@ register struct monst *mon; if (uarmg) { /* don't put on ring if gloves are in the way */ if (!tried_gloves++) +/*JP mayberem(uarmg, "gloves"); +*/ + mayberem(uarmg, "¬Žè"); if (uarmg) break; /* no point trying further rings */ } if (rn2(20) < ACURR(A_CHA)) { +#if 0 /*JP*/ (void) safe_qbuf(qbuf, "\"That ", " looks pretty. Would you wear it for me?\"", ring, xname, simpleonames, "ring"); +#else + (void) safe_qbuf(qbuf, "u‚¨‚â‚È‚ñ‚Ä‚·‚΂炵‚¢", + "‚¾DŽ„‚Ì‚½‚ß‚ÉŽw‚É‚Í‚ß‚Ä‚­‚ê‚È‚¢‚©‚¢Hv", + ring, xname, simpleonames, "Žw—Ö"); +#endif makeknown(RIN_ADORNMENT); if (yn(qbuf) == 'n') continue; } else { +#if 0 /*JP*/ pline("%s decides you'd look prettier wearing %s,", Blind ? "He" : Monnam(mon), yname(ring)); +#else + pline("%s‚Í%s‚ð‚‚¯‚½‚ ‚È‚½‚ª‚æ‚è–£—Í“I‚¾‚ƍl‚¦C", + Blind ? "”Þ" : Monnam(mon), xname(ring)); +#endif +/*JP pline("and puts it on your finger."); +*/ + pline("‚ ‚È‚½‚ÌŽw‚É‚»‚ê‚ð‚Í‚ß‚½D"); } makeknown(RIN_ADORNMENT); if (!uright) { +#if 0 /*JP*/ pline("%s puts %s on your right %s.", Blind ? "He" : Monnam(mon), the(xname(ring)), body_part(HAND)); +#else + pline("%s‚Í%s‚ð‚ ‚È‚½‚̉E%s‚É‚Í‚ß‚½D", + Blind ? "”Þ" : Monnam(mon), the(xname(ring)), + body_part(HAND)); +#endif setworn(ring, RIGHT_RING); } else if (!uleft) { +#if 0 /*JP*/ pline("%s puts %s on your left %s.", Blind ? "He" : Monnam(mon), the(xname(ring)), body_part(HAND)); +#else + pline("%s‚Í%s‚ð‚ ‚È‚½‚̍¶%s‚É‚Í‚ß‚½D", + Blind ? "”Þ" : Monnam(mon), the(xname(ring)), + body_part(HAND)); +#endif setworn(ring, LEFT_RING); } else if (uright && uright->otyp != RIN_ADORNMENT) { +#if 0 /*JP*/ pline("%s replaces %s with %s.", Blind ? "He" : Monnam(mon), yname(uright), yname(ring)); +#else + pline("%s‚Í%s‚ð%s‚É‚Æ‚è‚©‚¦‚½D", Blind ? "”Þ" : Monnam(mon), + yname(uright), xname(ring)); +#endif Ring_gone(uright); setworn(ring, RIGHT_RING); } else if (uleft && uleft->otyp != RIN_ADORNMENT) { +#if 0 /*JP*/ pline("%s replaces %s with %s.", Blind ? "He" : Monnam(mon), yname(uleft), yname(ring)); +#else + pline("%s‚Í%s‚ð%s‚É‚Æ‚è‚©‚¦‚½D", Blind ? "”Þ" : Monnam(mon), + yname(uleft), xname(ring)); +#endif Ring_gone(uleft); setworn(ring, LEFT_RING); } else @@ -2365,25 +3090,55 @@ register struct monst *mon; } if (!uarmc && !uarmf && !uarmg && !uarms && !uarmh && !uarmu) +#if 0 /*JP*/ pline("%s murmurs sweet nothings into your ear.", Blind ? (fem ? "She" : "He") : Monnam(mon)); +#else + pline("%s‚Í‚ ‚È‚½‚ÌŽ¨‚à‚ƂŊ¢‚³‚³‚â‚«‚ð‚‚Ԃ₢‚½D", + Blind ? (fem ? "”ޏ—" : "”Þ") : Monnam(mon)); +#endif else +#if 0 /*JP*/ pline("%s murmurs in your ear, while helping you undress.", Blind ? (fem ? "She" : "He") : Monnam(mon)); +#else + pline("%s‚ÍŽ¨‚à‚Æ‚Å‚ ‚È‚½‚Ì•ž‚ð’E‚ª‚¹‚È‚ª‚炳‚³‚â‚¢‚½D", + Blind ? (fem ? "”ޏ—" : "”Þ") : Monnam(mon)); +#endif mayberem(uarmc, cloak_simple_name(uarmc)); if (!uarmc) +/*JP mayberem(uarm, "suit"); +*/ + mayberem(uarm, "ƒX[ƒc"); +/*JP mayberem(uarmf, "boots"); +*/ + mayberem(uarmf, "ƒu[ƒc"); if (!tried_gloves) +/*JP mayberem(uarmg, "gloves"); +*/ + mayberem(uarmg, "¬Žè"); +/*JP mayberem(uarms, "shield"); +*/ + mayberem(uarms, "‚"); mayberem(uarmh, helm_simple_name(uarmh)); if (!uarmc && !uarm) +/*JP mayberem(uarmu, "shirt"); +*/ + mayberem(uarmu, "ƒVƒƒƒc"); if (uarm || uarmc) { +#if 0 /*JP*/ verbalize("You're such a %s; I wish...", flags.female ? "sweet lady" : "nice guy"); +#else + verbalize("%s‚¾DDD‚Æ‚¢‚¢‚̂ɁD", + flags.female ? "ƒ`ƒƒ[ƒ~ƒ“ƒO" : "‚·‚Ä‚«"); +#endif if (!tele_restrict(mon)) (void) rloc(mon, TRUE); return 1; @@ -2392,15 +3147,24 @@ register struct monst *mon; adjalign(1); /* by this point you have discovered mon's identity, blind or not... */ +/*JP pline("Time stands still while you and %s lie in each other's arms...", +*/ + pline("‚ ‚È‚½‚Æ%s‚ª•ø‚«‡‚¤‚ƁCŽž‚ªŽ~‚Ü‚Á‚½‚悤‚ÉŠ´‚¶‚½DDD", noit_mon_nam(mon)); if (rn2(35) > ACURR(A_CHA) + ACURR(A_INT)) { /* Don't bother with mspec_used here... it didn't get tired! */ +/*JP pline("%s seems to have enjoyed it more than you...", +*/ + pline("%s‚Í‚ ‚È‚½‚æ‚èŠy‚µ‚ñ‚¾‚悤‚¾DDD", noit_Monnam(mon)); switch (rn2(5)) { case 0: +/*JP You_feel("drained of energy."); +*/ + You("‘Ì—Í‚ªÁ–Õ‚µ‚½‚悤‚È‹C‚ª‚µ‚½D"); u.uen = 0; u.uenmax -= rnd(Half_physical_damage ? 5 : 10); exercise(A_CON, FALSE); @@ -2408,62 +3172,101 @@ register struct monst *mon; u.uenmax = 0; break; case 1: +/*JP You("are down in the dumps."); +*/ + You("ˆÓ‹CÁ’¾‚µ‚½D"); (void) adjattrib(A_CON, -1, TRUE); exercise(A_CON, FALSE); context.botl = 1; break; case 2: +/*JP Your("senses are dulled."); +*/ + Your("ŒÜŠ´‚Í“Ý‚Á‚½D"); (void) adjattrib(A_WIS, -1, TRUE); exercise(A_WIS, FALSE); context.botl = 1; break; case 3: if (!resists_drli(&youmonst)) { +/*JP You_feel("out of shape."); +*/ + You("‚­‚½‚тꂽD"); +/*JP losexp("overexertion"); +*/ + losexp("‰ß˜J‚Å"); } else { +/*JP You("have a curious feeling..."); +*/ + You("•Ï‚ÈŠ´‚¶‚ª‚µ‚½DDD"); } break; case 4: { int tmp; +/*JP You_feel("exhausted."); +*/ + You("”æ‚ê‚ðŠ´‚¶‚½D"); exercise(A_STR, FALSE); tmp = rn1(10, 6); +/*JP losehp(Maybe_Half_Phys(tmp), "exhaustion", KILLED_BY); +*/ + losehp(Maybe_Half_Phys(tmp), "¸—Í‚ÌŽg‚¢‚·‚¬‚Å", KILLED_BY); break; } } } else { mon->mspec_used = rnd(100); /* monster is worn out */ +/*JP You("seem to have enjoyed it more than %s...", noit_mon_nam(mon)); +*/ + You("%s‚æ‚è‚àŠy‚µ‚ñ‚¾‚悤‚¾DDD", noit_mon_nam(mon)); switch (rn2(5)) { case 0: +/*JP You_feel("raised to your full potential."); +*/ + You("öÝ”\—Í‚ª‚‚Ü‚Á‚½‚悤‚ÉŠ´‚¶‚½D"); exercise(A_CON, TRUE); u.uen = (u.uenmax += rnd(5)); break; case 1: +/*JP You_feel("good enough to do it again."); +*/ + You("‚à‚¤ˆê“x‚Å‚«‚é‚ÆŽv‚Á‚½D"); (void) adjattrib(A_CON, 1, TRUE); exercise(A_CON, TRUE); context.botl = 1; break; case 2: +/*JP You("will always remember %s...", noit_mon_nam(mon)); +*/ + You("‚¢‚‚܂łà%s‚ðŠo‚¦‚Ă邾‚낤DDD", mon_nam(mon)); (void) adjattrib(A_WIS, 1, TRUE); exercise(A_WIS, TRUE); context.botl = 1; break; case 3: +/*JP pline("That was a very educational experience."); +*/ + pline("‚Æ‚Ä‚à‹Md‚ÈŒoŒ±‚¾‚Á‚½D"); pluslvl(FALSE); exercise(A_WIS, TRUE); break; case 4: +/*JP You_feel("restored to health!"); +*/ + You("‚Æ‚Ä‚àŒ’N‚É‚È‚Á‚½I"); u.uhp = u.uhpmax; if (Upolyd) u.mh = u.mhmax; @@ -2476,10 +3279,18 @@ register struct monst *mon; if (mon->mtame) /* don't charge */ ; else if (rn2(20) < ACURR(A_CHA)) { +#if 0 /*JP*/ pline("%s demands that you pay %s, but you refuse...", noit_Monnam(mon), Blind ? (fem ? "her" : "him") : mhim(mon)); +#else + pline("%s‚Í‚ ‚È‚½‚É‹à‚𕥂¤‚悤—v‹‚µ‚½‚ªC‚ ‚È‚½‚Í‹‘‚ñ‚¾DDD", + Monnam(mon)); +#endif } else if (u.umonnum == PM_LEPRECHAUN) +/*JP pline("%s tries to take your money, but fails...", noit_Monnam(mon)); +*/ + pline("%s‚Í‹à‚ðŽæ‚낤‚Æ‚µ‚½‚ªCŽ¸”s‚µ‚½DDD", noit_Monnam(mon)); else { long cost; long umoney = money_cnt(invent); @@ -2496,10 +3307,18 @@ register struct monst *mon; if (cost > umoney) cost = umoney; if (!cost) +/*JP verbalize("It's on the house!"); +*/ + verbalize("‚±‚ê‚Í‚¨‚²‚è%sI", fem ? "‚æ" : "‚³"); else { +#if 0 /*JP*/ pline("%s takes %ld %s for services rendered!", noit_Monnam(mon), cost, currency(cost)); +#else + pline("%s‚̓T[ƒrƒX—¿‚Æ‚µ‚Ä%ld%s’D‚¢Žæ‚Á‚½I", noit_Monnam(mon), + cost, currency(cost)); +#endif money2mon(mon, cost); context.botl = 1; } @@ -2522,15 +3341,27 @@ const char *str; return; if (rn2(20) < ACURR(A_CHA)) { +#if 0 /*JP*/ Sprintf(qbuf, "\"Shall I remove your %s, %s?\"", str, (!rn2(2) ? "lover" : !rn2(2) ? "dear" : "sweetheart")); +#else + Sprintf(qbuf,"u%s‚ðŽæ‚Á‚Ä‚¢‚¢C%sHv", str, + (!rn2(2) ? "‚Ë‚¥" : flags.female ? "ƒnƒj[" : "ƒ_[ƒŠƒ“" )); +#endif if (yn(qbuf) == 'n') return; } else { char hairbuf[BUFSZ]; +#if 0 /*JP*/ Sprintf(hairbuf, "let me run my fingers through your %s", body_part(HAIR)); +#else + Sprintf(hairbuf, + flags.female ? "‚È‚ñ‚ÄãY—í‚È%s‚È‚ñ‚¾" : "Š•‚ðŽæ‚Á‚½‚ç‚È‚©‚È‚©ƒCƒJƒX‚¶‚á‚È‚¢", + body_part(HAIR)); +#endif +#if 0 /*JP*/ verbalize("Take off your %s; %s.", str, (obj == uarm) ? "let's get a little closer" @@ -2544,6 +3375,21 @@ const char *str; ? "let me massage you" /* obj == uarmh */ : hairbuf); +#else + verbalize("%s‚ð’E‚¢‚ŁDDD%sD", str, + (obj == uarm) + ? "‚à‚¤‚¿‚å‚Á‚ÆŠñ‚è‚»‚Á‚Ä" + : (obj == uarmc || obj == uarms) + ? "‚»‚¤‚»‚¤" + : (obj == uarmf) + ? (flags.female ? "ãY—í‚È‘«‚¾‚Ë" : "‚¤‚Ó‚ÁC‚½‚­‚Ü‚µ‚¢‘«‚Ë") + : (obj == uarmg) + ? (flags.female ? "‚È‚ñ‚Ä‘f“G‚Ȏ肾" : "‚½‚­‚Ü‚µ‚¢˜r‚Ë") + : (obj == uarmu) + ? (flags.female ? "‚«‚ê‚¢‚È‘Ì‚¾" : "‚½‚­‚Ü‚µ‚¢‚Ì‚Ë") + /* obj == uarmh */ + : hairbuf); +#endif } remove_worn_item(obj, TRUE); } @@ -2575,9 +3421,15 @@ register struct attack *mattk; switch (olduasmon->mattk[i].adtyp) { case AD_ACID: if (!rn2(2)) { +/*JP pline("%s is splashed by your acid!", Monnam(mtmp)); +*/ + pline("%s‚Í‚ ‚È‚½‚ÌŽ_‚ð‚­‚ç‚Á‚½I", Monnam(mtmp)); if (resists_acid(mtmp)) { +/*JP pline("%s is not affected.", Monnam(mtmp)); +*/ + pline("%s‚͉e‹¿‚ðŽó‚¯‚È‚¢D", Monnam(mtmp)); tmp = 0; } } else @@ -2604,7 +3456,10 @@ register struct attack *mattk; mon_to_stone(mtmp); return 1; } +/*JP pline("%s turns to stone!", Monnam(mtmp)); +*/ + pline("%s‚͐΂ɂȂÁ‚½I", Monnam(mtmp)); stoned = 1; xkilled(mtmp, 0); if (mtmp->mhp > 0) @@ -2630,7 +3485,10 @@ register struct attack *mattk; switch (youmonst.data->mattk[i].adtyp) { case AD_PHYS: if (youmonst.data->mattk[i].aatyp == AT_BOOM) { +/*JP You("explode!"); +*/ + pline("‚ ‚È‚½‚Í”š”­‚µ‚½I"); /* KMH, balance patch -- this is okay with unchanging */ rehumanize(); goto assess_dmg; @@ -2645,19 +3503,31 @@ register struct attack *mattk; if (mtmp->mcansee && haseyes(mtmp->data) && rn2(3) && (perceives(mtmp->data) || !Invis)) { if (Blind) +/*JP pline("As a blind %s, you cannot defend yourself.", +*/ + pline("%s‚Í–Ú‚ªŒ©‚¦‚È‚¢‚̂ŁC‚ ‚È‚½‚Í‚É‚ç‚Ý‚Å–hŒä‚Å‚«‚È‚¢D", youmonst.data->mname); else { if (mon_reflects(mtmp, +/*JP "Your gaze is reflected by %s %s.")) +*/ + "‚ ‚È‚½‚Ì‚É‚ç‚Ý‚Í%s‚Ì%s‚Å”½ŽË‚µ‚½D")) return 1; +/*JP pline("%s is frozen by your gaze!", Monnam(mtmp)); +*/ + pline("%s‚Í‚ ‚È‚½‚Ì‚É‚ç‚Ý‚Å“®‚¯‚È‚­‚È‚Á‚½I", Monnam(mtmp)); paralyze_monst(mtmp, tmp); return 3; } } } else { /* gelatinous cube */ +/*JP pline("%s is frozen by you.", Monnam(mtmp)); +*/ + pline("%s‚Í“®‚¯‚È‚¢D", Monnam(mtmp)); paralyze_monst(mtmp, tmp); return 3; } @@ -2665,12 +3535,18 @@ register struct attack *mattk; case AD_COLD: /* Brown mold or blue jelly */ if (resists_cold(mtmp)) { shieldeff(mtmp->mx, mtmp->my); +/*JP pline("%s is mildly chilly.", Monnam(mtmp)); +*/ + pline("%s‚͗₦‚½D", Monnam(mtmp)); golemeffects(mtmp, AD_COLD, tmp); tmp = 0; break; } +/*JP pline("%s is suddenly very cold!", Monnam(mtmp)); +*/ + pline("%s‚Í“Ë‘R“€‚肯‚É‚È‚Á‚½I", Monnam(mtmp)); u.mh += tmp / 2; if (u.mhmax < u.mh) u.mhmax = u.mh; @@ -2680,30 +3556,50 @@ register struct attack *mattk; case AD_STUN: /* Yellow mold */ if (!mtmp->mstun) { mtmp->mstun = 1; +#if 0 /*JP*/ pline("%s %s.", Monnam(mtmp), makeplural(stagger(mtmp->data, "stagger"))); +#else + pline("%s‚Í‚­‚ç‚­‚炵‚½D", Monnam(mtmp)); +#endif } tmp = 0; break; case AD_FIRE: /* Red mold */ if (resists_fire(mtmp)) { shieldeff(mtmp->mx, mtmp->my); +#if 0 /*JP*/ pline("%s is mildly warm.", Monnam(mtmp)); +#else + pline("%s‚Í’g‚©‚­‚È‚Á‚½D", Monnam(mtmp)); +#endif golemeffects(mtmp, AD_FIRE, tmp); tmp = 0; break; } +#if 0 /*JP*/ pline("%s is suddenly very hot!", Monnam(mtmp)); +#else + pline("%s‚Í“Ë‘R”M‚­‚È‚Á‚½I", Monnam(mtmp)); +#endif break; case AD_ELEC: if (resists_elec(mtmp)) { shieldeff(mtmp->mx, mtmp->my); +#if 0 /*JP*/ pline("%s is slightly tingled.", Monnam(mtmp)); +#else + pline("%s‚Í‚¿‚å‚Á‚ƃsƒŠƒsƒŠ‚µ‚½D", Monnam(mtmp)); +#endif golemeffects(mtmp, AD_ELEC, tmp); tmp = 0; break; } +#if 0 /*JP*/ pline("%s is jolted with your electricity!", Monnam(mtmp)); +#else + pline("%s‚Í“d‹CƒVƒ‡ƒbƒN‚ð‚¤‚¯‚½I", Monnam(mtmp)); +#endif break; default: tmp = 0; @@ -2714,7 +3610,10 @@ register struct attack *mattk; assess_dmg: if ((mtmp->mhp -= tmp) <= 0) { +/*JP pline("%s dies!", Monnam(mtmp)); +*/ + pline("%s‚ÍŽ€‚ñ‚¾I", Monnam(mtmp)); xkilled(mtmp, 0); if (mtmp->mhp > 0) return 1; diff --git a/src/minion.c b/src/minion.c index 1af08f5..1d22b72 100644 --- a/src/minion.c +++ b/src/minion.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" void @@ -194,10 +199,19 @@ boolean talk; } if (mon) { if (talk) { +/*JP pline_The("voice of %s booms:", align_gname(alignment)); +*/ + pline("%s‚̐º‚ª‹¿‚¢‚½:", align_gname(alignment)); +/*JP verbalize("Thou shalt pay for thine indiscretion!"); +*/ + verbalize("“ðC–³•ª•Ê‚È‚és‚¢‚Ì”±‚ðŽó‚¯‚é‚ׂµI"); if (!Blind) +/*JP pline("%s appears before you.", Amonnam(mon)); +*/ + pline("%s‚ª‚ ‚È‚½‚Ì‘O‚ÉŒ»‚í‚ꂽD", Amonnam(mon)); mon->mstrategy &= ~STRAT_APPEARMSG; } mon->mpeaceful = FALSE; @@ -215,7 +229,10 @@ register struct monst *mtmp; long cash, demand, offer; if (uwep && uwep->oartifact == ART_EXCALIBUR) { +/*JP pline("%s looks very angry.", Amonnam(mtmp)); +*/ + pline("%s‚Í‚Æ‚Ä‚à“{‚Á‚Ä‚¢‚é‚悤‚ÉŒ©‚¦‚éD", Amonnam(mtmp)); mtmp->mpeaceful = mtmp->mtame = 0; set_malign(mtmp); newsym(mtmp->mx, mtmp->my); @@ -238,14 +255,22 @@ register struct monst *mtmp; mtmp->minvis = mtmp->perminvis = 0; if (wasunseen && canspotmon(mtmp)) { +/*JP pline("%s appears before you.", Amonnam(mtmp)); +*/ + pline("%s‚ª–Ú‚Ì‘O‚ÉŒ»‚í‚ꂽD", Amonnam(mtmp)); mtmp->mstrategy &= ~STRAT_APPEARMSG; } newsym(mtmp->mx, mtmp->my); } if (youmonst.data->mlet == S_DEMON) { /* Won't blackmail their own. */ +#if 0 /*JP*/ pline("%s says, \"Good hunting, %s.\"", Amonnam(mtmp), flags.female ? "Sister" : "Brother"); +#else + pline("%s‚ÍŒ¾‚Á‚½u‚悤ŒZ%sIvD‚»‚µ‚ďÁ‚¦‚½D", Amonnam(mtmp), + flags.female ? "–…" : "’í"); +#endif if (!tele_restrict(mtmp)) (void) rloc(mtmp, TRUE); return (1); @@ -266,17 +291,31 @@ register struct monst *mtmp; if (mon_has_amulet(mtmp)) demand = cash + (long) rn1(1000, 40); +#if 0 /*JP*/ pline("%s demands %ld %s for safe passage.", Amonnam(mtmp), demand, currency(demand)); +#else + pline("%s‚͒ʍs—¿‚Æ‚µ‚Ä%ld%s—v‹‚µ‚½D", Amonnam(mtmp), demand, + currency(demand)); +#endif if ((offer = bribe(mtmp)) >= demand) { +/*JP pline("%s vanishes, laughing about cowardly mortals.", +*/ + pline("‰°•a‚È’è–½‚Ì‚à‚Ì‚ðÎ‚¢‚È‚ª‚çC%s‚͏Á‚¦‚½D", Amonnam(mtmp)); } else if (offer > 0L && (long) rnd(40) > (demand - offer)) { +/*JP pline("%s scowls at you menacingly, then vanishes.", +*/ + pline("%s‚Í‚ ‚È‚½‚ðˆÐŠd‚µCÁ‚¦‚½D", Amonnam(mtmp)); } else { +/*JP pline("%s gets angry...", Amonnam(mtmp)); +*/ + pline("%s‚Í“{‚Á‚½DDD", Amonnam(mtmp)); mtmp->mpeaceful = 0; set_malign(mtmp); return 0; @@ -294,23 +333,38 @@ struct monst *mtmp; long offer; long umoney = money_cnt(invent); +/*JP getlin("How much will you offer?", buf); +*/ + getlin("‚¨‹à‚ð‚¢‚­‚ç—^‚¦‚éH", buf); if (sscanf(buf, "%ld", &offer) != 1) offer = 0L; /*Michael Paddon -- fix for negative offer to monster*/ /*JAR880815 - */ if (offer < 0L) { +/*JP You("try to shortchange %s, but fumble.", mon_nam(mtmp)); +*/ + You("%s‚ð‚¾‚Ü‚»‚¤‚Æ‚µ‚½‚ªCŽ¸”s‚µ‚½D", mon_nam(mtmp)); return 0L; } else if (offer == 0L) { +/*JP You("refuse."); +*/ + You("‹‘‚ñ‚¾D"); return 0L; } else if (offer >= umoney) { +/*JP You("give %s all your gold.", mon_nam(mtmp)); +*/ + You("%s‚É‚¨‹à‚ð‘S‚Ä—^‚¦‚½D", mon_nam(mtmp)); offer = umoney; } else { +/*JP You("give %s %ld %s.", mon_nam(mtmp), offer, currency(offer)); +*/ + You("%s‚É%ld%s—^‚¦‚½D", mon_nam(mtmp), offer, currency(offer)); } (void) money2mon(mtmp, offer); context.botl = 1; @@ -400,10 +454,19 @@ struct monst *mon; /* if null, angel hasn't been created yet */ if (mon) { if (canspotmon(mon)) { if (!Deaf) { +/*JP pline("%s rebukes you, saying:", Monnam(mon)); +*/ + pline("%s‚Í‚ ‚È‚½‚ð”ñ“‚½F", Monnam(mon)); +/*JP verbalize("Since you desire conflict, have some more!"); +*/ + verbalize("“¬‘ˆ‚ð–]‚ñ‚Å‚¢‚é‚悤‚¾‚©‚çC‚à‚Á‚Æ—^‚¦‚Ä‚â‚낤I"); } else { +/*JP pline("%s vanishes!", Monnam(mon)); +*/ + pline("%s‚͏Á‚¦‚½I", Monnam(mon)); } } mongone(mon); @@ -429,13 +492,25 @@ gain_guardian_angel() Hear_again(); /* attempt to cure any deafness now (divine message will be heard even if that fails) */ if (Conflict) { +/*JP pline("A voice booms:"); +*/ + pline("º‚ª‹¿‚¢‚½:"); +/*JP verbalize("Thy desire for conflict shall be fulfilled!"); +*/ + verbalize("u“ð‚Ì“¬‘ˆ‚Ö‚Ì–]‚݁C‚©‚È‚¦‚ç‚ê‚é‚ׂµIv"); /* send in some hostile angels instead */ lose_guardian_angel((struct monst *) 0); } else if (u.ualign.record > 8) { /* fervent */ +/*JP pline("A voice whispers:"); +*/ + pline("‚³‚³‚â‚«º‚ª•·‚±‚¦‚½:"); +/*JP verbalize("Thou hast been worthy of me!"); +*/ + verbalize("u“ðC‰ä‚ª•]‰¿‚𓾂½‚èIv"); mm.x = u.ux; mm.y = u.uy; if (enexto(&mm, mm.x, mm.y, &mons[PM_ANGEL]) @@ -443,9 +518,15 @@ gain_guardian_angel() TRUE)) != 0) { mtmp->mstrategy &= ~STRAT_APPEARMSG; if (!Blind) +/*JP pline("An angel appears near you."); +*/ + pline("“VŽg‚ª‚ ‚È‚½‚Ì‚»‚΂Ɍ»‚í‚ꂽD"); else +/*JP You_feel("the presence of a friendly angel near you."); +*/ + You("‹ß‚­‚É—FD“I‚È“VŽg‚Ì‘¶Ý‚ðŠ´‚¶‚½D"); /* guardian angel -- the one case mtame doesn't * imply an edog structure, so we don't want to * call tamedog(). diff --git a/src/mklev.c b/src/mklev.c index 6fd50f7..ed78589 100644 --- a/src/mklev.c +++ b/src/mklev.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" /* for UNIX, Rand #def'd to (long)lrand48() or (long)random() */ @@ -474,7 +479,10 @@ static NEARDATA const char *trap_engravings[TRAPNUM] = { (char *) 0, (char *) 0, (char *) 0, (char *) 0, (char *) 0, (char *) 0, (char *) 0, (char *) 0, (char *) 0, /* 14..16: trap door, teleport, level-teleport */ +/*JP "Vlad was here", "ad aerarium", "ad aerarium", (char *) 0, (char *) 0, +*/ + "ƒ”ƒ‰ƒh‚Í‚±‚±‚É‚¢‚é", "ad aerarium", "ad aerarium", (char *) 0, (char *) 0, (char *) 0, (char *) 0, (char *) 0, (char *) 0, (char *) 0, }; @@ -1494,7 +1502,10 @@ struct mkroom *croom; } while (occupied(m.x, m.y) || bydoor(m.x, m.y)); /* Put a grave at m.x, m.y */ +/*JP make_grave(m.x, m.y, dobell ? "Saved by the bell!" : (char *) 0); +*/ + make_grave(m.x, m.y, dobell ? "ƒxƒ‹‚É‹~‚í‚ꂽI" : (char *) 0); /* Possibly fill it with objects */ if (!rn2(3)) @@ -1535,8 +1546,14 @@ mkinvokearea() xchar ymin = inv_pos.y, ymax = inv_pos.y; register xchar i; +/*JP pline_The("floor shakes violently under you!"); +*/ + pline("‚ ‚È‚½‚̉º‚̏°‚ª“Ë‘R—h‚ꂽI"); +/*JP pline_The("walls around you begin to bend and crumble!"); +*/ + pline("‚»‚µ‚Ä‚Ü‚í‚è‚Ì•Ç‚ª‚Ë‚¶‚êCÓ‚¯‚½I"); display_nhwindow(WIN_MESSAGE, TRUE); /* any trap hero is stuck in will be going away now */ @@ -1571,7 +1588,10 @@ mkinvokearea() delay_output(); } +/*JP You("are standing at the top of a stairwell leading down!"); +*/ + You("‰º‚É‘±‚­‚«”²‚¯ŠK’i‚̏ã‚É—§‚Á‚Ä‚¢‚éI"); mkstairs(u.ux, u.uy, 0, (struct mkroom *) 0); /* down */ newsym(u.ux, u.uy); vision_full_recalc = 1; /* everything changed */ @@ -1673,7 +1693,10 @@ xchar x, y; branch *br; schar u_depth; +/*JP br = dungeon_branch("Fort Ludios"); +*/ + br = dungeon_branch("ƒ[ƒfƒBƒIƒXÔ"); if (on_level(&knox_level, &br->end1)) { source = &br->end2; } else { @@ -1688,7 +1711,11 @@ xchar x, y; return; if (!(u.uz.dnum == oracle_level.dnum /* in main dungeon */ +#if 0 /*JP*/ && !at_dgn_entrance("The Quest") /* but not Quest's entry */ +#else + && !at_dgn_entrance("ƒNƒGƒXƒg") /* but not Quest's entry */ +#endif && (u_depth = depth(&u.uz)) > 10 /* beneath 10 */ && u_depth < depth(&medusa_level))) /* and above Medusa */ return; diff --git a/src/mkmaze.c b/src/mkmaze.c index eddf6fb..4de113e 100644 --- a/src/mkmaze.c +++ b/src/mkmaze.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" #include "sp_lev.h" #include "lev.h" /* save & restore info */ @@ -1126,7 +1131,10 @@ water_friction() eff = TRUE; } if (eff) +/*JP pline("Water turbulence affects your movements."); +*/ + pline("…‚Ì—¬‚ꂪ‚ ‚È‚½‚Ì“®‚«‚ɉe‹¿‚ð—^‚¦‚½D"); } void @@ -1204,19 +1212,37 @@ xchar x, y; ltyp = db_under_typ(lev->drawbridgemask); if (ltyp == LAVAPOOL) +/*JP return "lava"; +*/ + return "—nŠâ"; else if (ltyp == ICE) +/*JP return "ice"; +*/ + return "•X"; else if (ltyp == POOL) +/*JP return "pool of water"; +*/ + return "…‚½‚Ü‚è"; else if (ltyp == WATER || Is_waterlevel(&u.uz)) ; /* fall through to default return value */ else if (Is_juiblex_level(&u.uz)) +/*JP return "swamp"; +*/ + return "À"; else if (ltyp == MOAT && !Is_medusa_level(&u.uz)) +/*JP return "moat"; +*/ + return "–x"; +/*JP return "water"; +*/ + return "…’†"; } STATIC_OVL void diff --git a/src/mon.c b/src/mon.c index ade5968..ba40f19 100644 --- a/src/mon.c +++ b/src/mon.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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. */ + /* If you're using precompiled headers, you don't want this either */ #ifdef MICROPORT_BUG #define MKROOM_H @@ -35,7 +40,10 @@ STATIC_DCL void FDECL(lifesaved_monster, (struct monst *)); #if 0 /* part of the original warning code which was replaced in 3.3.1 */ const char *warnings[] = { +/*JP "white", "pink", "red", "ruby", "purple", "black" +*/ + "”’‚¢", "ƒsƒ“ƒNF‚Ì", "Ô‚¢", "ƒ‹ƒr[F‚Ì", "Ž‡‚Ì", "•‚¢" }; #endif /* 0 */ @@ -266,7 +274,10 @@ unsigned corpseflags; case PM_BLACK_UNICORN: if (mtmp->mrevived && rn2(2)) { if (canseemon(mtmp)) +/*JP pline("%s recently regrown horn crumbles to dust.", +*/ + pline("Å‹ßÄ¶‚µ‚½%s‚ÌŠp‚Í•²X‚É‚È‚Á‚½D", s_suffix(Monnam(mtmp))); } else { obj = mksobj_at(UNICORN_HORN, x, y, TRUE, FALSE); @@ -451,7 +462,10 @@ register struct monst *mtmp; int dam = d(2, 6); if (cansee(mtmp->mx, mtmp->my)) +/*JP pline("%s rusts.", Monnam(mtmp)); +*/ + pline("%s‚ÍŽK‚Ñ‚½D", Monnam(mtmp)); mtmp->mhp -= dam; if (mtmp->mhpmax > dam) mtmp->mhpmax -= dam; @@ -473,18 +487,31 @@ register struct monst *mtmp; if (!is_clinger(mtmp->data) && !likes_lava(mtmp->data)) { if (!resists_fire(mtmp)) { if (cansee(mtmp->mx, mtmp->my)) +#if 0 /*JP*/ pline("%s %s.", Monnam(mtmp), mtmp->data == &mons[PM_WATER_ELEMENTAL] ? "boils away" : "burns to a crisp"); +#else + pline("%s‚Í%s‚½D", Monnam(mtmp), + mtmp->data == &mons[PM_WATER_ELEMENTAL] + ? "•¦“«‚µ" + : "”R‚¦‚ăpƒŠƒpƒŠ‚É‚È‚Á"); +#endif mondead(mtmp); } else { if (--mtmp->mhp < 1) { if (cansee(mtmp->mx, mtmp->my)) +/*JP pline("%s surrenders to the fire.", Monnam(mtmp)); +*/ + pline("%s‚͉Š‚ɓۂ܂ꂽD", Monnam(mtmp)); mondead(mtmp); } else if (cansee(mtmp->mx, mtmp->my)) +/*JP pline("%s burns slightly.", Monnam(mtmp)); +*/ + pline("%s‚Í‚¿‚å‚Á‚Əł°‚½D", Monnam(mtmp)); } if (mtmp->mhp > 0) { (void) fire_damage_chain(mtmp->minvent, FALSE, FALSE, @@ -502,12 +529,18 @@ register struct monst *mtmp; if (!is_clinger(mtmp->data) && !is_swimmer(mtmp->data) && !amphibious(mtmp->data)) { if (cansee(mtmp->mx, mtmp->my)) { +/*JP pline("%s drowns.", Monnam(mtmp)); +*/ + pline("%s‚Í“M‚ꂽD", Monnam(mtmp)); } if (u.ustuck && u.uswallow && u.ustuck == mtmp) { /* This can happen after a purple worm plucks you off a flying steed while you are over water. */ +/*JP pline("%s sinks as water rushes in and flushes you out.", +*/ + pline("%s‚͐…—¬‚É’¾‚݁D‚ ‚È‚½‚ð“f‚«o‚µ‚½D", Monnam(mtmp)); } mondead(mtmp); @@ -763,22 +796,40 @@ register struct monst *mtmp; && touch_artifact(otmp, mtmp)) { if (mtmp->data == &mons[PM_RUST_MONSTER] && otmp->oerodeproof) { if (canseemon(mtmp) && flags.verbose) { +#if 0 /*JP*/ pline("%s eats %s!", Monnam(mtmp), distant_name(otmp, doname)); +#else + pline("%s‚Í%s‚ðH‚ׂĂ¢‚éI", Monnam(mtmp), + distant_name(otmp,doname)); +#endif } /* The object's rustproofing is gone now */ otmp->oerodeproof = 0; mtmp->mstun = 1; if (canseemon(mtmp) && flags.verbose) { +#if 0 /*JP*/ pline("%s spits %s out in disgust!", Monnam(mtmp), distant_name(otmp, doname)); +#else + pline("%s‚Í%s‚ðƒyƒb‚Æ“f‚«o‚µ‚½I", Monnam(mtmp), + distant_name(otmp,doname)); +#endif } } else { if (cansee(mtmp->mx, mtmp->my) && flags.verbose) +#if 0 /*JP*/ pline("%s eats %s!", Monnam(mtmp), distant_name(otmp, doname)); +#else + pline("%s‚Í%s‚ðH‚ׂĂ¢‚éI", Monnam(mtmp), + distant_name(otmp,doname)); +#endif else if (flags.verbose) +/*JP You_hear("a crunching sound."); +*/ + You_hear("ƒoƒŠƒoƒŠ‚ƐH‚ׂ鉹‚ð•·‚¢‚½D"); mtmp->meating = otmp->owt / 2 + 1; /* Heal up to the object's weight in hp */ if (mtmp->mhp < mtmp->mhpmax) { @@ -809,7 +860,10 @@ register struct monst *mtmp; ptr = mtmp->data; } else if (!resists_ston(mtmp)) { if (canseemon(mtmp)) +/*JP pline("%s turns to stone!", Monnam(mtmp)); +*/ + pline("%s‚͐΂ɂȂÁ‚½I", Monnam(mtmp)); monstone(mtmp); ptr = (struct permonst *) 0; } @@ -883,10 +937,18 @@ struct monst *mtmp; /* engulf */ ++ecount; if (ecount == 1) +#if 0 /*JP*/ Sprintf(buf, "%s engulfs %s.", Monnam(mtmp), distant_name(otmp, doname)); +#else + Sprintf(buf, "%s‚Í%s‚ðˆù‚ݍž‚ñ‚¾D", Monnam(mtmp), + distant_name(otmp,doname)); +#endif else if (ecount == 2) +/*JP Sprintf(buf, "%s engulfs several objects.", Monnam(mtmp)); +*/ + Sprintf(buf, "%s‚Í‚¢‚­‚‚©‚Ì•¨‚ðˆù‚ݍž‚ñ‚¾D", Monnam(mtmp)); obj_extract_self(otmp); (void) mpickobj(mtmp, otmp); /* slurp */ @@ -895,10 +957,18 @@ struct monst *mtmp; /* devour */ ++count; if (cansee(mtmp->mx, mtmp->my) && flags.verbose) +#if 0 /*JP*/ pline("%s eats %s!", Monnam(mtmp), distant_name(otmp, doname)); +#else + pline("%s‚Í%s‚ðH‚ׂĂ¢‚éI", Monnam(mtmp), + distant_name(otmp, doname)); +#endif else if (flags.verbose) +/*JP You_hear("a slurping sound."); +*/ + You_hear("‚²‚­‚ñ‚ƈù‚ݍž‚Þ‰¹‚ð•·‚¢‚½D"); /* Heal up to the object's weight in hp */ if (mtmp->mhp < mtmp->mhpmax) { mtmp->mhp += objects[otmp->otyp].oc_weight; @@ -946,8 +1016,12 @@ struct monst *mtmp; if (cansee(mtmp->mx, mtmp->my) && flags.verbose && buf[0]) pline1(buf); else if (flags.verbose) +#if 0 /*JP*/ You_hear("%s slurping sound%s.", (ecount == 1) ? "a" : "several", plur(ecount)); +#else + You_hear("ƒYƒ‹ƒYƒ‹‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D"); +#endif } return (count > 0 || ecount > 0) ? 1 : 0; } @@ -965,8 +1039,12 @@ register struct monst *mtmp; add_to_minv(mtmp, gold); if (cansee(mtmp->mx, mtmp->my)) { if (flags.verbose && !mtmp->isgd) +#if 0 /*JP*/ pline("%s picks up some %s.", Monnam(mtmp), mat_idx == GOLD ? "gold" : "money"); +#else + pline("%s‚Í‚¨‹à‚ðE‚Á‚½D", Monnam(mtmp)); +#endif newsym(mtmp->mx, mtmp->my); } } @@ -1008,10 +1086,17 @@ register const char *str; otmp3 = splitobj(otmp, carryamt); } if (cansee(mtmp->mx, mtmp->my) && flags.verbose) +#if 0 /*JP*/ pline("%s picks up %s.", Monnam(mtmp), (distu(mtmp->mx, mtmp->my) <= 5) ? doname(otmp3) : distant_name(otmp3, doname)); +#else + pline("%s‚Í%s‚ðE‚Á‚½D", Monnam(mtmp), + (distu(mtmp->mx, mtmp->my) <= 5) + ? doname(otmp3) + : distant_name(otmp3, doname)); +#endif obj_extract_self(otmp3); /* remove from floor */ (void) mpickobj(mtmp, otmp3); /* may merge and free otmp3 */ m_dowear(mtmp, FALSE); @@ -1691,18 +1776,33 @@ struct monst *mtmp; * Nor do you check invisibility, because glowing and * disintegrating amulets are always visible. */ if (cansee(mtmp->mx, mtmp->my)) { +/*JP pline("But wait..."); +*/ + pline("‚µ‚©‚µDDD"); +/*JP pline("%s medallion begins to glow!", s_suffix(Monnam(mtmp))); +*/ + pline("%s‚̃ƒ_ƒŠƒIƒ“‚ª‹P‚«‚Í‚¶‚ß‚½I", Monnam(mtmp)); makeknown(AMULET_OF_LIFE_SAVING); /* amulet is visible, but monster might not be */ if (canseemon(mtmp)) { if (attacktype(mtmp->data, AT_EXPL) || attacktype(mtmp->data, AT_BOOM)) +/*JP pline("%s reconstitutes!", Monnam(mtmp)); +*/ + pline("%s‚͍č\¬‚³‚ꂽI", Monnam(mtmp)); else +/*JP pline("%s looks much better!", Monnam(mtmp)); +*/ + pline("%s‚Í‚·‚Á‚©‚è‰ñ•œ‚µ‚½‚悤‚¾I", Monnam(mtmp)); } +/*JP pline_The("medallion crumbles to dust!"); +*/ + pline_The("ƒƒ_ƒŠƒIƒ“‚Í‚±‚È‚²‚È‚É‚­‚¾‚¯‚Ä‚µ‚Ü‚Á‚½I"); } m_useup(mtmp, lifesave); @@ -1720,7 +1820,10 @@ struct monst *mtmp; /* genocided monster can't be life-saved */ if (cansee(mtmp->mx, mtmp->my)) +/*JP pline("Unfortunately, %s is still genocided...", mon_nam(mtmp)); +*/ + pline("Žc”O‚È‚ª‚ç%s‚Í‹sŽE‚³‚ê‚Ä‚¢‚éDDD", mon_nam(mtmp)); } mtmp->mhp = 0; } @@ -1870,7 +1973,10 @@ boolean was_swallowed; /* digestion */ if (mdat == &mons[PM_VLAD_THE_IMPALER] || mdat->mlet == S_LICH) { if (cansee(mon->mx, mon->my) && !was_swallowed) +/*JP pline("%s body crumbles into dust.", s_suffix(Monnam(mon))); +*/ + pline("%s‚Ì‘Ì‚Í•²X‚É‚È‚Á‚½D", Monnam(mon)); return FALSE; } @@ -1885,26 +1991,45 @@ boolean was_swallowed; /* digestion */ tmp = 0; if (was_swallowed && magr) { if (magr == &youmonst) { +/*JP There("is an explosion in your %s!", body_part(STOMACH)); +*/ + pline("%s‚Ì’†‚Å”š”­‚ª‹N‚«‚½I", body_part(STOMACH)); +#if 0 /*JP*/ Sprintf(killer.name, "%s explosion", s_suffix(mdat->mname)); +#else + Sprintf(killer.name, "%s‚Ì”š”­‚Å", mdat->mname); +#endif losehp(Maybe_Half_Phys(tmp), killer.name, KILLED_BY_AN); } else { +/*JP You_hear("an explosion."); +*/ + You_hear("”š”­‰¹‚ð•·‚¢‚½D"); magr->mhp -= tmp; if (magr->mhp < 1) mondied(magr); if (magr->mhp < 1) { /* maybe lifesaved */ if (canspotmon(magr)) +/*JP pline("%s rips open!", Monnam(magr)); +*/ + pline("%s‚̓rƒŠ‚Á‚Æ”j‚ꂽI", Monnam(magr)); } else if (canseemon(magr)) +/*JP pline("%s seems to have indigestion.", Monnam(magr)); +*/ + pline("%s‚͏Á‰»•s—ǂ̂悤‚¾D", Monnam(magr)); } return FALSE; } +/*JP Sprintf(killer.name, "%s explosion", s_suffix(mdat->mname)); +*/ + Sprintf(killer.name, "%s‚Ì”š”­‚Å", mdat->mname); killer.format = KILLED_BY_AN; explode(mon->mx, mon->my, -1, tmp, MON_EXPLODE, EXPL_NOXIOUS); return FALSE; @@ -1998,7 +2123,10 @@ struct monst *mdef; #endif /* invocation tools resist even with 0% resistance */ || obj_resists(obj, 0, 0)) { +/*JP if (flooreffects(obj, x, y, "fall")) +*/ + if (flooreffects(obj, x, y, "—Ž‚¿‚é")) continue; place_object(obj, x, y); } else { @@ -2038,8 +2166,13 @@ struct monst *mdef; mondead(mdef); if (wasinside) { if (is_animal(mdef->data)) +#if 0 /*JP*/ You("%s through an opening in the new %s.", locomotion(youmonst.data, "jump"), xname(otmp)); +#else + You("V‚µ‚­‚Å‚«‚½%s‚©‚ç%sD", + xname(otmp), jumpedthrough(youmonst.data, "”ò‚яo‚½")); +#endif } } @@ -2054,9 +2187,20 @@ int how; if ((mdef->wormno ? worm_known(mdef) : cansee(mdef->mx, mdef->my)) && fltxt) +#if 0 /*JP*/ pline("%s is %s%s%s!", Monnam(mdef), nonliving(mdef->data) ? "destroyed" : "killed", *fltxt ? " by the " : "", fltxt); +#else + { + if(*fltxt) + pline("%s‚Í%s‚É‚æ‚Á‚Ä%sI", Monnam(mdef), fltxt, + nonliving(mdef->data) ? "“|‚³‚ꂽ" : "ŽE‚³‚ꂽ"); + else + pline("%s‚Í%sI", Monnam(mdef), + nonliving(mdef->data) ? "“|‚³‚ꂽ" : "ŽE‚³‚ꂽ"); + } +#endif else be_sad = (mdef->mtame != 0); @@ -2067,7 +2211,10 @@ int how; mondied(mdef); if (be_sad && mdef->mhp <= 0) +/*JP You("have a sad feeling for a moment, then it passes."); +*/ + You("”ß‚µ‚¢‹CŽ‚É‚¨‚»‚í‚ꂽ‚ªC‚·‚®‚ɉ߂¬‚³‚Á‚½D"); } void @@ -2114,11 +2261,17 @@ int dest; /* dest==1, normal; dest==0, don't print message; dest==2, don't u.uconduct.killer++; if (dest & 1) { +#if 0 /*JP*/ const char *verb = nonliving(mtmp->data) ? "destroy" : "kill"; +#endif if (!wasinside && !canspotmon(mtmp)) +/*JP You("%s it!", verb); +*/ + You("‰½ŽÒ‚©‚ð“|‚µ‚½I"); else { +#if 0 /*JP*/ You("%s %s!", verb, !mtmp->mtame ? mon_nam(mtmp) @@ -2127,6 +2280,11 @@ int dest; /* dest==1, normal; dest==0, don't print message; dest==2, don't "poor", (has_mname(mtmp)) ? SUPPRESS_SADDLE : 0, FALSE)); +#else + You("%s%s‚ð“|‚µ‚½I", + mtmp->mtame ? "‚©‚í‚¢‚»‚¤‚È" : "", + mon_nam(mtmp)); +#endif } } @@ -2173,7 +2331,10 @@ int dest; /* dest==1, normal; dest==0, don't print message; dest==2, don't */ stoned = FALSE; if (!cansee(x, y) && !vamp_rise_msg) +/*JP pline("Maybe not..."); +*/ + pline("‚¢‚âCˆá‚¤‚©‚àDDD"); return; } @@ -2239,7 +2400,10 @@ cleanup: && u.ualign.type != A_CHAOTIC) { HTelepat &= ~INTRINSIC; change_luck(-2); +/*JP You("murderer!"); +*/ + You("ŽEl‹S‚¾I"); if (Blind && !Blind_telepat) see_monsters(); /* Can't sense monsters any more. */ } @@ -2247,7 +2411,10 @@ cleanup: change_luck(-1); if (is_unicorn(mdat) && sgn(u.ualign.type) == sgn(mdat->maligntyp)) { change_luck(-5); +/*JP You_feel("guilty..."); +*/ + You("ß‚ðŠ´‚¶‚½DDD"); } /* give experience points */ @@ -2258,16 +2425,27 @@ cleanup: /* adjust alignment points */ if (mtmp->m_id == quest_status.leader_m_id) { /* REAL BAD! */ adjalign(-(u.ualign.record + (int) ALIGNLIM / 2)); +#if 0 /*JP*/ pline("That was %sa bad idea...", u.uevent.qcompleted ? "probably " : ""); +#else + pline("%s‚æ‚­‚È‚¢sˆ×‚¾‚Á‚½DDD", + u.uevent.qcompleted ? "‚½‚Ô‚ñ" : ""); +#endif } else if (mdat->msound == MS_NEMESIS) { /* Real good! */ adjalign((int) (ALIGNLIM / 4)); } else if (mdat->msound == MS_GUARDIAN) { /* Bad */ adjalign(-(int) (ALIGNLIM / 8)); if (!Hallucination) +/*JP pline("That was probably a bad idea..."); +*/ + pline("‚æ‚­‚È‚¢sˆ×‚¾‚Á‚½DDD"); else +/*JP pline("Whoopsie-daisy!"); +*/ + pline("ƒVƒ“ƒWƒ}ƒbƒ^[I"); } else if (mtmp->ispriest) { adjalign((p_coaligned(mtmp)) ? -2 : 2); /* cancel divine protection for killing your priest */ @@ -2279,9 +2457,15 @@ cleanup: adjalign(-15); /* bad!! */ /* your god is mighty displeased... */ if (!Hallucination) +/*JP You_hear("the rumble of distant thunder..."); +*/ + You_hear("‰“‚­‚Å—‹–‚𕷂¢‚½DDD"); else +/*JP You_hear("the studio audience applaud!"); +*/ + pline("’®O‚ÌŠ…Ñ‚𗁂т½I"); } else if (mtmp->mpeaceful) adjalign(-5); @@ -2298,13 +2482,22 @@ struct monst *mtmp; if (mtmp->data->mlet == S_GOLEM) { /* it's a golem, and not a stone golem */ if (canseemon(mtmp)) +/*JP pline("%s solidifies...", Monnam(mtmp)); +*/ + pline("%s‚͋Ìłµ‚½DDD", Monnam(mtmp)); if (newcham(mtmp, &mons[PM_STONE_GOLEM], FALSE, FALSE)) { if (canseemon(mtmp)) +/*JP pline("Now it's %s.", an(mtmp->data->mname)); +*/ + pline("‚È‚ñ‚Æ%s‚É‚È‚Á‚Ä‚µ‚Ü‚Á‚½D", mtmp->data->mname); } else { if (canseemon(mtmp)) +/*JP pline("... and returns to normal."); +*/ + pline("DDD‚»‚µ‚Ä•’Ê‚É–ß‚Á‚½D"); } } else impossible("Can't polystone %s!", a_monnam(mtmp)); @@ -2426,7 +2619,10 @@ struct monst *mtmp; { if (mtmp->data->msound == MS_SHRIEK) { if (!Deaf) { +/*JP pline("%s shrieks.", Monnam(mtmp)); +*/ + pline("%s‚Í‹àØ‚萺‚ð‚ ‚°‚½D", Monnam(mtmp)); stop_occupation(); } if (!rn2(10)) { @@ -2467,7 +2663,10 @@ struct monst *mtmp; adjalign(-1); /* attacking peaceful monsters is bad */ if (couldsee(mtmp->mx, mtmp->my)) { if (humanoid(mtmp->data) || mtmp->isshk || mtmp->isgd) +/*JP pline("%s gets angry!", Monnam(mtmp)); +*/ + pline("%s‚Í“{‚Á‚½I", Monnam(mtmp)); else if (flags.verbose && !Deaf) growl(mtmp); } @@ -2490,10 +2689,14 @@ struct monst *mtmp; } } if (got_mad && !Hallucination) +#if 0 /*JP*/ pline_The("%s appear%s to be angry too...", got_mad == 1 ? q_guardian->mname : makeplural(q_guardian->mname), got_mad == 1 ? "s" : ""); +#else + pline("%s‚à“{‚Á‚½DDD", q_guardian->mname); +#endif } } @@ -3183,8 +3386,13 @@ boolean msg; /* "The oldmon turns into a newmon!" */ /* Does mdat care? */ if (!noncorporeal(mdat) && !amorphous(mdat) && !is_whirly(mdat) && (mdat != &mons[PM_YELLOW_LIGHT])) { +#if 0 /*JP*/ You("break out of %s%s!", mon_nam(mtmp), (is_animal(mdat) ? "'s stomach" : "")); +#else + You("%s%s‚ð”j‚èo‚½I", mon_nam(mtmp), + (is_animal(mdat) ? "‚̈ݑÜ" : "")); +#endif mtmp->mhp = 1; /* almost dead */ } expels(mtmp, olddata, FALSE); @@ -3220,14 +3428,27 @@ boolean msg; /* "The oldmon turns into a newmon!" */ save_mname = MNAME(mtmp); MNAME(mtmp) = (char *) 0; } +#if 0 /*JP*/ Strcpy(newname, (mdat == &mons[PM_GREEN_SLIME]) ? "slime" : x_monnam(mtmp, ARTICLE_A, (char *) 0, SUPPRESS_SADDLE, FALSE)); +#else + Strcpy(newname, (mdat == &mons[PM_GREEN_SLIME]) + ? "ƒXƒ‰ƒCƒ€" + : x_monnam(mtmp, ARTICLE_A, (char *) 0, + SUPPRESS_SADDLE, FALSE)); +#endif +/*JP if (!strcmpi(oldname, "it") && !strcmpi(newname, "it")) +*/ + if (!strcmpi(oldname, "‰½ŽÒ‚©") && !strcmpi(newname, "‰½ŽÒ‚©")) (void) usmellmon(mdat); else +/*JP pline("%s turns into %s!", oldname, newname); +*/ + pline("%s‚Í%s‚É‚È‚Á‚½I", oldname, newname); if (save_mname) MNAME(mtmp) = save_mname; } @@ -3235,8 +3456,13 @@ boolean msg; /* "The oldmon turns into a newmon!" */ possibly_unwield(mtmp, polyspot); /* might lose use of weapon */ mon_break_armor(mtmp, polyspot); if (!(mtmp->misc_worn_check & W_ARMG)) +#if 0 /*JP*/ mselftouch(mtmp, "No longer petrify-resistant, ", !context.mon_moving); +#else + mselftouch(mtmp, "Î‰»‚Ö‚Ì’ïR—Í‚ª‚È‚­‚È‚Á‚āC", + !context.mon_moving); +#endif m_dowear(mtmp, FALSE); /* This ought to re-test can_carry() on each item in the inventory @@ -3440,7 +3666,10 @@ int damtype, dam; if (mon->mhp > mon->mhpmax) mon->mhp = mon->mhpmax; if (cansee(mon->mx, mon->my)) +/*JP pline("%s seems healthier.", Monnam(mon)); +*/ + pline("%s‚ÍŒ³‹C‚É‚È‚Á‚½‚悤‚ÉŒ©‚¦‚éD", Monnam(mon)); } } } @@ -3473,17 +3702,32 @@ boolean silent; if (ct) { if (!silent) { /* do we want pline msgs? */ if (slct) +#if 0 /*JP*/ pline_The("guard%s wake%s up!", slct > 1 ? "s" : "", slct == 1 ? "s" : ""); +#else + pline("”Ô•º‚Í–Ú‚ðŠo‚Ü‚µ‚½I"); +#endif if (nct || sct) { if (nct) +#if 0 /*JP*/ pline_The("guard%s get%s angry!", nct == 1 ? "" : "s", nct == 1 ? "s" : ""); +#else + pline("”Ô•º‚Í“{‚Á‚½I"); +#endif else if (!Blind) +#if 0 /*JP*/ You_see("%sangry guard%s approaching!", sct == 1 ? "an " : "", sct > 1 ? "s" : ""); +#else + You("“{‚Á‚½”Ô•º‚ª‹ßŠñ‚Á‚Ä‚­‚é‚Ì‚ðŒ©‚½I"); +#endif } else +/*JP You_hear("the shrill sound of a guard's whistle."); +*/ + You_hear("”Ô•º‚Ì“J‚ª‚¯‚½‚½‚Ü‚µ‚­–‚é‚Ì‚ð•·‚¢‚½D"); } return TRUE; } @@ -3517,9 +3761,15 @@ short otyp; break; case M_AP_OBJECT: if (otyp == SPE_HEALING || otyp == SPE_EXTRA_HEALING) { +#if 0 /*JP*/ pline("%s seems a more vivid %s than before.", The(simple_typename(ap)), c_obj_colors[objects[ap].oc_color]); +#else + pline("%s‚͈ȑO‚æ‚è‚æ‚è‘N‚â‚©‚È%s‚É‚È‚Á‚½‚悤‚¾D", + The(simple_typename(ap)), + c_obj_colors[objects[ap].oc_color]); +#endif } break; } diff --git a/src/mondata.c b/src/mondata.c index 9fb2491..f437297 100644 --- a/src/mondata.c +++ b/src/mondata.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" /* These routines provide basic data for any type of monster. */ @@ -1015,13 +1020,34 @@ struct monst *mtmp; return mtmp->data; } +/*JP static const char *levitate[4] = { "float", "Float", "wobble", "Wobble" }; +*/ +static const char *levitate[4] = { "•‚‚­", "•‚‚­", "‚æ‚ë‚ß‚­", "‚æ‚ë‚ß‚­" }; +/*JP static const char *flys[4] = { "fly", "Fly", "flutter", "Flutter" }; +*/ +static const char *flys[4] = { "”ò‚Ô", "”ò‚Ô", "‚Í‚½‚ß‚­", "‚Í‚½‚ß‚­" }; +/*JP static const char *flyl[4] = { "fly", "Fly", "stagger", "Stagger" }; +*/ +static const char *flyl[4] = { "”ò‚Ô", "”ò‚Ô", "‚æ‚ë‚ß‚­", "‚æ‚ë‚ß‚­" }; +/*JP static const char *slither[4] = { "slither", "Slither", "falter", "Falter" }; +*/ +static const char *slither[4] = { "ŠŠ‚é", "ŠŠ‚é", "‚½‚¶‚ë‚®", "‚½‚¶‚ë‚®" }; +/*JP static const char *ooze[4] = { "ooze", "Ooze", "tremble", "Tremble" }; +*/ +static const char *ooze[4] = { "‚É‚¶‚ݏo‚é", "‚É‚¶‚ݏo‚é", "k‚¦‚é", "k‚¦‚é" }; +/*JP static const char *immobile[4] = { "wiggle", "Wiggle", "pulsate", "Pulsate" }; +*/ +static const char *immobile[4] = { "k‚¦‚é", "k‚¦‚é", "k‚¦‚é", "k‚¦‚é" }; +/*JP static const char *crawl[4] = { "crawl", "Crawl", "falter", "Falter" }; +*/ +static const char *crawl[4] = { "‚Í‚¢‚¸‚é", "‚Í‚¢‚¸‚é", "‚½‚¶‚ë‚®", "‚½‚¶‚ë‚®" }; const char * locomotion(ptr, def) @@ -1056,6 +1082,28 @@ const char *def; : nolimbs(ptr) ? crawl[capitalize] : def); } +#if 1 /*JP*/ +static const char *levitate2 = "•‚‚«o‚½"; +static const char *fly2 = "”ò‚яo‚½"; +static const char *slither2 = "ŠŠ‚èo‚½"; +static const char *ooze2 = "‚É‚¶‚ݏo‚½"; +static const char *crawl2 = "‚Í‚¢‚¸‚èo‚½"; + +const char * +jumpedthrough(ptr, def) +const struct permonst *ptr; +const char *def; +{ + return ( + is_floater(ptr) ? levitate2 : + is_flyer(ptr) ? fly2 : + slithy(ptr) ? slither2 : + amorphous(ptr) ? ooze2 : + nolimbs(ptr) ? crawl2 : + def + ); +} +#endif /* return phrase describing the effect of fire attack on a type of monster */ const char * @@ -1070,16 +1118,25 @@ struct attack *mattk; case PM_FIRE_VORTEX: case PM_FIRE_ELEMENTAL: case PM_SALAMANDER: +/*JP what = "already on fire"; +*/ + what = "‚·‚łɉŠ‚ɂ‚‚܂ê‚Ä‚¢‚é"; break; case PM_WATER_ELEMENTAL: case PM_FOG_CLOUD: case PM_STEAM_VORTEX: +/*JP what = "boiling"; +*/ + what = "•¦“«‚µ‚½"; break; case PM_ICE_VORTEX: case PM_GLASS_GOLEM: +/*JP what = "melting"; +*/ + what = "—n‚¯‚½"; break; case PM_STONE_GOLEM: case PM_CLAY_GOLEM: @@ -1088,10 +1145,16 @@ struct attack *mattk; case PM_EARTH_ELEMENTAL: case PM_DUST_VORTEX: case PM_ENERGY_VORTEX: +/*JP what = "heating up"; +*/ + what = "”M‚­‚È‚Á‚½"; break; default: +/*JP what = (mattk->aatyp == AT_HUGS) ? "being roasted" : "on fire"; +*/ + what = (mattk->aatyp == AT_HUGS) ? "ŠÛÄ‚¯‚É‚È‚Á‚½" : "‰Î‚¾‚é‚Ü‚É‚È‚Á‚½"; break; } return what; diff --git a/src/monmove.c b/src/monmove.c index 50329ce..8a74c06 100644 --- a/src/monmove.c +++ b/src/monmove.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" #include "mfndpos.h" #include "artifact.h" @@ -23,9 +28,15 @@ struct monst *mtmp; { if (flags.verbose) { if (cansee(mtmp->mx, mtmp->my) && !Unaware) +/*JP pline("KABOOM!! You see a door explode."); +*/ + pline("‚¿‚ã‚ǁ[‚ñIƒhƒA‚ª”š”­‚·‚é‚Ì‚ðŒ©‚½D"); else if (!Deaf) +/*JP You_hear("a distant explosion."); +*/ + You_hear("‰“•û‚Å”š”­‚·‚鉹‚ð•·‚¢‚½D"); } wake_nearto(mtmp->mx, mtmp->my, 7 * 7); mtmp->mstun = 1; @@ -57,9 +68,15 @@ struct monst *mon; const char *shout; { if (canspotmon(mon)) +/*JP pline("%s yells:", Amonnam(mon)); +*/ + pline("%s‚Í‹©‚ñ‚¾F", Amonnam(mon)); else +/*JP You_hear("someone yell:"); +*/ + pline("‰½ŽÒ‚©‚Í‹©‚ñ‚¾F"); verbalize1(shout); } @@ -75,10 +92,16 @@ register struct monst *mtmp; && (levl[x][y].doormask & D_LOCKED)) { if (couldsee(mtmp->mx, mtmp->my)) { if (levl[x][y].looted & D_WARNED) { +/*JP mon_yells(mtmp, "Halt, thief! You're under arrest!"); +*/ + verbalize("‘҂āI‚Ê‚·‚Á‚ƁI‚¨‚Ü‚¦‚ð‘ß•ß‚·‚éI"); (void) angry_guards(!!Deaf); } else { +/*JP mon_yells(mtmp, "Hey, stop picking that lock!"); +*/ + verbalize("‚¨‚¢CŒ®‚ðŸŽè‚ÉŠJ‚¯‚é‚ñ‚¶‚á‚È‚¢I"); levl[x][y].looted |= D_WARNED; } stop_occupation(); @@ -225,7 +248,10 @@ struct monst *mon; expels(mon, mon->data, TRUE); } else if (!sticks(youmonst.data)) { unstuck(mon); /* let go */ +/*JP You("get released!"); +*/ + You("‰ð•ú‚³‚ꂽI"); } } } @@ -265,9 +291,15 @@ boolean fleemsg; sleep and temporary paralysis, so both conditions receive the same alternate message */ if (!mtmp->mcanmove || !mtmp->data->mmove) +/*JP pline("%s seems to flinch.", Adjmonnam(mtmp, "immobile")); +*/ + pline("%s‚Í‚µ‚育‚Ý‚µ‚Ä‚¢‚é‚悤‚¾D", Monnam(mtmp)); else +/*JP pline("%s turns to flee.", Monnam(mtmp)); +*/ + pline("%s‚Í‚¨‚Ñ‚¦‚Ä“¦‚°o‚µ‚½I", Monnam(mtmp)); } mtmp->mflee = 1; } @@ -434,8 +466,13 @@ register struct monst *mtmp; if (nearby && mdat->msound == MS_BRIBE && mtmp->mpeaceful && !mtmp->mtame && !u.uswallow) { if (mtmp->mux != u.ux || mtmp->muy != u.uy) { +#if 0 /*JP*/ pline("%s whispers at thin air.", cansee(mtmp->mux, mtmp->muy) ? Monnam(mtmp) : "It"); +#else + pline("%s‚ª‚³‚³‚â‚¢‚½D", + cansee(mtmp->mux, mtmp->muy) ? Monnam(mtmp) : "‰½‚©"); +#endif if (is_demon(youmonst.data)) { /* "Good hunting, brother" */ @@ -444,7 +481,10 @@ register struct monst *mtmp; } else { mtmp->minvis = mtmp->perminvis = 0; /* Why? For the same reason in real demon talk */ +/*JP pline("%s gets angry!", Amonnam(mtmp)); +*/ + pline("%s‚Í“{‚Á‚½I", Amonnam(mtmp)); mtmp->mpeaceful = 0; set_malign(mtmp); /* since no way is an image going to pay it off */ @@ -461,27 +501,48 @@ register struct monst *mtmp; struct monst *m2, *nmon = (struct monst *) 0; if (canseemon(mtmp)) +/*JP pline("%s concentrates.", Monnam(mtmp)); +*/ + pline("%s‚͐¸_‚ðW’†‚µ‚Ä‚¢‚éD", Monnam(mtmp)); if (distu(mtmp->mx, mtmp->my) > BOLT_LIM * BOLT_LIM) { +/*JP You("sense a faint wave of psychic energy."); +*/ + You("ƒTƒCƒRƒGƒlƒ‹ƒM[‚Ì”g“®‚ðŠ´‚¶‚½D"); goto toofar; } +/*JP pline("A wave of psychic energy pours over you!"); +*/ + pline("‚ ‚È‚½‚̓TƒCƒRƒGƒlƒ‹ƒM[‚Ì”g“®‚𗁂т½I"); if (mtmp->mpeaceful && (!Conflict || resist(mtmp, RING_CLASS, 0, 0))) { +/*JP pline("It feels quite soothing."); +*/ + pline("S‚ª‚È‚²‚ñ‚¾D"); } else if (!u.uinvulnerable) { register boolean m_sen = sensemon(mtmp); if (m_sen || (Blind_telepat && rn2(2)) || !rn2(10)) { int dmg; +#if 0 /*JP*/ pline("It locks on to your %s!", m_sen ? "telepathy" : Blind_telepat ? "latent telepathy" : "mind"); +#else + pline("‚»‚ê‚Í‚ ‚È‚½‚Ì%s‚𒼌‚‚µ‚½I", + m_sen ? "ƒeƒŒƒpƒV[”\—Í" : Blind_telepat ? "öÝ”\—Í" + : "¸_"); +#endif dmg = rnd(15); if (Half_spell_damage) dmg = (dmg + 1) / 2; +/*JP losehp(dmg, "psychic blast", KILLED_BY_AN); +*/ + losehp(dmg, "ƒTƒCƒRUŒ‚‚Å", KILLED_BY_AN); } } for (m2 = fmon; m2; m2 = nmon) { @@ -497,7 +558,10 @@ register struct monst *mtmp; if ((telepathic(m2->data) && (rn2(2) || m2->mblinded)) || !rn2(10)) { if (cansee(m2->mx, m2->my)) +/*JP pline("It locks on to %s.", mon_nam(m2)); +*/ + pline("%s‚𒼌‚‚µ‚½D", mon_nam(m2)); m2->mhp -= rnd(15); if (m2->mhp <= 0) monkilled(m2, "", AD_DRIN); @@ -640,7 +704,10 @@ itsstuck(mtmp) register struct monst *mtmp; { if (sticks(youmonst.data) && mtmp == u.ustuck && !u.uswallow) { +/*JP pline("%s cannot escape from you!", Monnam(mtmp)); +*/ + pline("%s‚Í‚ ‚È‚½‚©‚瓦‚°‚ç‚ê‚È‚¢I", Monnam(mtmp)); return TRUE; } return FALSE; @@ -811,7 +878,10 @@ register int after; #ifdef MAIL if (ptr == &mons[PM_MAIL_DAEMON]) { if (!Deaf && canseemon(mtmp)) +/*JP verbalize("I'm late!"); +*/ + verbalize("’x‚­‚È‚Á‚Ä‚·‚Ü‚È‚¢I"); mongone(mtmp); return 2; } @@ -1218,11 +1288,19 @@ postmov: || (!amorphous(ptr) && can_fog(mtmp) && vamp_shift(mtmp, &mons[PM_FOG_CLOUD])))) { if (flags.verbose && canseemon(mtmp)) +#if 0 /*JP*/ pline("%s %s under the door.", Monnam(mtmp), (ptr == &mons[PM_FOG_CLOUD] || ptr == &mons[PM_YELLOW_LIGHT]) ? "flows" : "oozes"); +#else + pline("%s‚Í”à‚̉º‚©‚ç%sD", Monnam(mtmp), + (ptr == &mons[PM_FOG_CLOUD] + || ptr == &mons[PM_YELLOW_LIGHT]) + ? "—¬‚ê‚Å‚½" + : "‚É‚¶‚Ý‚Å‚½"); +#endif } else if (here->doormask & D_LOCKED && can_unlock) { if (btrapped) { here->doormask = D_NODOOR; @@ -1233,12 +1311,21 @@ postmov: } else { if (flags.verbose) { if (observeit) +/*JP pline("%s unlocks and opens a door.", +*/ + pline("%s‚ÍŒ®‚ð‚Í‚¸‚µ‚Ä”à‚ðŠJ‚¯‚½D", Monnam(mtmp)); else if (canseeit) +/*JP You_see("a door unlock and open."); +*/ + You("”à‚ÌŒ®‚ª‚Í‚¸‚êCŠJ‚­‚Ì‚ðŒ©‚½D"); else if (!Deaf) +/*JP You_hear("a door unlock and open."); +*/ + You_hear("”à‚ÌŒ®‚ª‚Í‚¸‚êCŠJ‚­‰¹‚ð•·‚¢‚½D"); } here->doormask = D_ISOPEN; /* newsym(mtmp->mx, mtmp->my); */ @@ -1254,11 +1341,20 @@ postmov: } else { if (flags.verbose) { if (observeit) +/*JP pline("%s opens a door.", Monnam(mtmp)); +*/ + pline("%s‚Í”à‚ðŠJ‚¯‚½D", Monnam(mtmp)); else if (canseeit) +/*JP You_see("a door open."); +*/ + You("”à‚ªŠJ‚­‚Ì‚ðŒ©‚½D"); else if (!Deaf) +/*JP You_hear("a door open."); +*/ + You_hear("”à‚ªŠJ‚­‰¹‚ð•·‚¢‚½D"); } here->doormask = D_ISOPEN; /* newsym(mtmp->mx, mtmp->my); */ /* done below */ @@ -1275,12 +1371,21 @@ postmov: } else { if (flags.verbose) { if (observeit) +/*JP pline("%s smashes down a door.", +*/ + pline("%s‚Í”à‚ð”j‰ó‚µ‚½D", Monnam(mtmp)); else if (canseeit) +/*JP You_see("a door crash open."); +*/ + You("”à‚ª”j‰ó‚³‚ê‚é‚Ì‚ðŒ©‚½D"); else if (!Deaf) +/*JP You_hear("a door crash open."); +*/ + You_hear("”à‚ª”j‰ó‚³‚ê‚鉹‚ð•·‚¢‚½D"); } if (here->doormask & D_LOCKED && !rn2(2)) here->doormask = D_NODOOR; @@ -1297,14 +1402,22 @@ postmov: if (may_dig(mtmp->mx, mtmp->my) && (dmgtype(ptr, AD_RUST) || dmgtype(ptr, AD_CORR))) { if (canseemon(mtmp)) +/*JP pline("%s eats through the iron bars.", Monnam(mtmp)); +*/ + pline("%s‚Í“S‚Ì–_‚ðH‚ׂĒʂ蔲‚¯‚½D", Monnam(mtmp)); dissolve_bars(mtmp->mx, mtmp->my); return 3; } else if (flags.verbose && canseemon(mtmp)) +#if 0 /*JP*/ Norep("%s %s %s the iron bars.", Monnam(mtmp), /* pluralization fakes verb conjugation */ makeplural(locomotion(ptr, "pass")), passes_walls(ptr) ? "through" : "between"); +#else + Norep("%s‚Í“S‚Ì–_%s‚ð‚·‚è”²‚¯‚½D", Monnam(mtmp), + passes_walls(ptr) ? "" : "‚ÌŠÔ"); +#endif } /* possibly dig */ diff --git a/src/mplayer.c b/src/mplayer.c index 6ad230d..fbe996b 100644 --- a/src/mplayer.c +++ b/src/mplayer.c @@ -73,6 +73,9 @@ char *nam; { boolean fmlkind = is_female(mtmp->data); const char *devnam; +#if 1 /*JP*/ + char tmp_nam[PL_NSIZ]; +#endif devnam = dev_name(); if (!devnam) @@ -86,9 +89,17 @@ char *nam; mtmp->female = 1; else mtmp->female = 0; +#if 0 /*JP*/ Strcat(nam, " the "); Strcat(nam, rank_of((int) mtmp->m_lev, monsndx(mtmp->data), (boolean) mtmp->female)); +#else /*Ì†‚ð‘O‚É•t‚¯‚½‚¢‚Ì‚Åtmp_nam‚Ɉê’U\’z‚µ‚Änam‚É–ß‚·*/ + Strcpy(tmp_nam, rank_of((int) mtmp->m_lev, monsndx(mtmp->data), + (boolean)mtmp->female)); + Strcat(tmp_nam, "‚Ì"); + Strcat(tmp_nam, nam); + Strcpy(nam, tmp_nam); +#endif } STATIC_OVL void @@ -357,6 +368,7 @@ void mplayer_talk(mtmp) register struct monst *mtmp; { +#if 0 /*JP*/ static const char *same_class_msg[3] = { "I can't win, and neither will you!", "You don't deserve to win!", @@ -366,14 +378,49 @@ register struct monst *mtmp; "The low-life wants to talk, eh?", "Fight, scum!", "Here is what I have to say!", }; +#else + static const char *same_class_msg[2][3] = { + { + "Ž„‚Å‚·‚ç’B¬‚Å‚«‚È‚¢‚̂ɁC‚¨‘O‚É’B¬‚Å‚«‚é‚Ì‚©H", + "‚¨‘O‚ª¬Œ÷‚·‚é‚È‚ñ‚Ä‚±‚Æ‚Í‚È‚¢‚ȁD", + "–¼—_‚ð‰ä‚ɁI‚¨‘O‚¶‚á‚È‚¢I", + }, + { + "Ž„‚Å‚·‚ç’B¬‚Å‚«‚È‚¢‚̂ɁC‚ ‚È‚½‚É’B¬‚Å‚«‚āH", + "‚ ‚È‚½‚ª¬Œ÷‚·‚é‚È‚ñ‚Ä‚ ‚肦‚Ü‚¹‚ñ‚íD", + "–¼—_‚ÍŽ„‚ɁI‚ ‚È‚½‚É‚È‚ñ‚Ä‚Æ‚ñ‚Å‚à‚È‚¢D", + } + }, + *other_class_msg[2][3] = { + { + "‰ºO‚ª˜b‚µ‚©‚¯‚é‚©H‚͂́[‚ñH", + "í‚¦I‚±‚Ì–ì˜YI", + "‚¨‘O‚Ƙb‚·‚±‚Æ‚È‚Ç‚È‚É‚à‚È‚¢I", + }, + { + "Ž„‚Ƙb‚µ‚½‚¢‚Å‚·‚Á‚āH", + "Œ•‚ðŽæ‚è‚È‚³‚¢I", + "‚ ‚È‚½‚Ƙb‚·‚±‚Æ‚È‚Ç‚ ‚è‚Ü‚¹‚ñ‚íI", + } + }; + int female; +#endif if (mtmp->mpeaceful) return; /* will drop to humanoid talk */ +#if 0 /*JP*/ pline("Talk? -- %s", (mtmp->data == &mons[urole.malenum] || mtmp->data == &mons[urole.femalenum]) ? same_class_msg[rn2(3)] : other_class_msg[rn2(3)]); +#else + female = (mtmp->female ? 1 : 0); + pline("˜b‚·H -- %s", (mtmp->data == &mons[urole.malenum] + || mtmp->data == &mons[urole.femalenum]) + ? same_class_msg[female][rn2(3)] + : other_class_msg[female][rn2(3)]); +#endif } /*mplayer.c*/ diff --git a/src/mthrowu.c b/src/mthrowu.c index b63a479..34d69df 100644 --- a/src/mthrowu.c +++ b/src/mthrowu.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" STATIC_DCL int FDECL(drop_throw, (struct obj *, BOOLEAN_P, int, int)); @@ -15,9 +20,15 @@ STATIC_DCL int FDECL(drop_throw, (struct obj *, BOOLEAN_P, int, int)); * Keep consistent with breath weapons in zap.c, and AD_* in monattk.h. */ STATIC_OVL NEARDATA const char *breathwep[] = { +#if 0 /*JP*/ "fragments", "fire", "frost", "sleep gas", "a disintegration blast", "lightning", "poison gas", "acid", "strange breath #8", "strange breath #9" +#else + "”j•Ð", "‰Š", "—â‹C", "‡–°ƒKƒX", "•ª‰ð‚Ì‘§", + "ˆîÈ", "“Å‚Ì‘§", "Ž_", "strange breath #8", + "strange breath #9" +#endif }; extern boolean notonhead; /* for long worms */ @@ -42,12 +53,19 @@ const char *name; /* if null, then format `obj' */ knm = strcpy(knmbuf, killer_xname(obj)); kprefix = KILLED_BY; /* killer_name supplies "an" if warranted */ } else { +#if 0 /*JP*/ knm = name; /* [perhaps ought to check for plural here to] */ if (!strncmpi(name, "the ", 4) || !strncmpi(name, "an ", 3) || !strncmpi(name, "a ", 2)) kprefix = KILLED_BY; +#else + knm = strcpy(knmbuf, name); +#endif } +#if 1 /*JP*/ + strcat(knmbuf, "‚É“–‚½‚Á‚Ä"); +#endif onm = (obj && obj_is_pname(obj)) ? the(name) : (obj && obj->quan > 1L) ? name : an(name); @@ -55,26 +73,47 @@ const char *name; /* if null, then format `obj' */ if (u.uac + tlev <= rnd(20)) { if (Blind || !flags.verbose) +/*JP pline("It misses."); +*/ + pline("‚»‚ê‚Í‚Í‚¸‚ꂽD"); else +/*JP You("are almost hit by %s.", onm); +*/ + pline("‚à‚¤­‚µ‚Å%s‚É–½’†‚·‚é‚Æ‚±‚낾‚Á‚½I",onm); return 0; } else { if (Blind || !flags.verbose) +/*JP You("are hit%s", exclam(dam)); +*/ + pline("‰½‚©‚ª‚ ‚È‚½‚É–½’†‚µ‚½I"); else +/*JP You("are hit by %s%s", onm, exclam(dam)); +*/ + pline("%s‚ª‚ ‚È‚½‚É–½’†‚µ‚½I", onm); if (obj && objects[obj->otyp].oc_material == SILVER && Hate_silver) { /* extra damage already applied by dmgval() */ +/*JP pline_The("silver sears your flesh!"); +*/ + pline("‚ ‚È‚½‚Ì‘Ì‚Í‹â‚ŏĂ©‚ꂽI"); exercise(A_CON, FALSE); } if (is_acid && Acid_resistance) +/*JP pline("It doesn't seem to hurt you."); +*/ + pline("‚ ‚È‚½‚͏‚‚©‚È‚©‚Á‚½D"); else { if (is_acid) +/*JP pline("It burns!"); +*/ + pline("Ž_‚ŏĂ©‚ꂽI"); losehp(dam, knm, kprefix); /* acid damage */ exercise(A_STR, FALSE); } @@ -113,8 +152,13 @@ int x, y; if (down_gate(x, y) != -1) objgone = ship_object(obj, x, y, FALSE); if (!objgone) { +#if 0 /*JP*/ if (!flooreffects(obj, x, y, "fall")) { /* don't double-dip on damage */ +#else + if (!flooreffects(obj, x, y, + "—Ž‚¿‚é")) { /* don't double-dip on damage */ +#endif place_object(obj, x, y); if (!mtmp && x == u.ux && y == u.uy) mtmp = &youmonst; @@ -154,7 +198,10 @@ boolean verbose; /* give message(s) even when you can't see what happened */ if (vis) miss(distant_name(otmp, mshot_xname), mtmp); else if (verbose) +/*JP pline("It is missed."); +*/ + pline("‰½‚©‚ª‚©‚·‚ß‚½D"); } if (!range) { /* Last position; object drops */ (void) drop_throw(otmp, 0, mtmp->mx, mtmp->my); @@ -178,19 +225,28 @@ boolean verbose; /* give message(s) even when you can't see what happened */ if (vis) hit(distant_name(otmp, mshot_xname), mtmp, exclam(damage)); else if (verbose) +/*JP pline("%s is hit%s", Monnam(mtmp), exclam(damage)); +*/ + pline("%s‚É–½’†‚µ‚½%s", Monnam(mtmp), exclam(damage)); if (otmp->opoisoned && is_poisonable(otmp)) { if (resists_poison(mtmp)) { if (vis) +/*JP pline_The("poison doesn't seem to affect %s.", +*/ + pline("%s‚͓ł̉e‹¿‚ðŽó‚¯‚È‚¢‚悤‚¾D", mon_nam(mtmp)); } else { if (rn2(30)) { damage += rnd(6); } else { if (vis) +/*JP pline_The("poison was deadly..."); +*/ + pline("“Å‚Í’vŽ€—Ê‚¾‚Á‚½DDD"); damage = mtmp->mhp; } } @@ -198,30 +254,53 @@ boolean verbose; /* give message(s) even when you can't see what happened */ if (objects[otmp->otyp].oc_material == SILVER && mon_hates_silver(mtmp)) { if (vis) +/*JP pline_The("silver sears %s flesh!", s_suffix(mon_nam(mtmp))); +*/ + pline("%s‚Ì‘Ì‚Í‹â‚ŏĂ©‚ꂽI", s_suffix(mon_nam(mtmp))); else if (verbose) +/*JP pline("Its flesh is seared!"); +*/ + pline("‰½ŽÒ‚©‚̑̂͏Ă©‚ꂽI"); } if (otmp->otyp == ACID_VENOM && cansee(mtmp->mx, mtmp->my)) { if (resists_acid(mtmp)) { if (vis || verbose) +/*JP pline("%s is unaffected.", Monnam(mtmp)); +*/ + pline("%s‚͉e‹¿‚ðŽó‚¯‚È‚¢D", Monnam(mtmp)); damage = 0; } else { if (vis) +/*JP pline_The("acid burns %s!", mon_nam(mtmp)); +*/ + pline("%s‚ÍŽ_‚ŏĂ©‚ꂽI", mon_nam(mtmp)); else if (verbose) +/*JP pline("It is burned!"); +*/ + pline("‰½‚©‚͏Ă©‚ꂽI"); } } mtmp->mhp -= damage; if (mtmp->mhp < 1) { if (vis || verbose) +#if 0 /*JP*/ pline("%s is %s!", Monnam(mtmp), (nonliving(mtmp->data) || is_vampshifter(mtmp) || !canspotmon(mtmp)) ? "destroyed" : "killed"); +#else + pline("%s‚Í%sI", Monnam(mtmp), + (nonliving(mtmp->data) || is_vampshifter(mtmp) + || !canspotmon(mtmp)) + ? "“|‚³‚ꂽ" + : "Ž€‚ñ‚¾"); +#endif /* don't blame hero for unknown rolling boulder trap */ if (!context.mon_moving && (otmp->otyp != BOULDER || range >= 0 || otmp->otrapped)) @@ -235,7 +314,10 @@ boolean verbose; /* give message(s) even when you can't see what happened */ : AT_WEAP), otmp)) { if (vis && mtmp->mcansee) +/*JP pline("%s is blinded by %s.", Monnam(mtmp), the(xname(otmp))); +*/ + pline("%s‚Í%s‚É‚æ‚Á‚Ä–Ú‚ªŒ©‚¦‚È‚­‚È‚Á‚½D", Monnam(mtmp), the(xname(otmp))); mtmp->mcansee = 0; tmp = (int) mtmp->mblinded + rnd(25) + 20; if (tmp > 127) @@ -296,10 +378,18 @@ struct obj *obj; /* missile (or stack providing it) */ if ((singleobj->cursed || singleobj->greased) && (dx || dy) && !rn2(7)) { if (canseemon(mon) && flags.verbose) { if (is_ammo(singleobj)) +/*JP pline("%s misfires!", Monnam(mon)); +*/ + pline("%s‚Í‚Í‚¸‚µ‚½I", Monnam(mon)); else +#if 0 /*JP*/ pline("%s as %s throws it!", Tobjnam(singleobj, "slip"), mon_nam(mon)); +#else + pline("%s‚ª“Š‚°‚悤‚Æ‚µ‚½‚Æ‚½‚ñ%s‚ªŠŠ‚Á‚½I", + mon_nam(mon), xname(singleobj)); +#endif } dx = rn2(3) - 1; dy = rn2(3) - 1; @@ -343,18 +433,33 @@ struct obj *obj; /* missile (or stack providing it) */ && singleobj->otyp <= LAST_GEM + 9 /* 9 glass colors */ && is_unicorn(youmonst.data)) { if (singleobj->otyp > LAST_GEM) { +/*JP You("catch the %s.", xname(singleobj)); +*/ + You("%s‚ð‚‚©‚Ü‚¦‚½D", xname(singleobj)); +/*JP You("are not interested in %s junk.", +*/ + You("%s‚̃Kƒ‰ƒNƒ^‚É‹»–¡‚Í‚È‚¢D", s_suffix(mon_nam(mon))); makeknown(singleobj->otyp); dropy(singleobj); } else { You( +/*JP "accept %s gift in the spirit in which it was intended.", +*/ + "‚±‚ꂪ—~‚µ‚©‚Á‚½‚ñ‚¾‚ÆŽv‚¢‚È‚ª‚ç%s‚Ì‘¡‚蕨‚ðŽó‚¯‚Æ‚Á‚½D", s_suffix(mon_nam(mon))); +#if 0 /*JP*/ (void) hold_another_object( singleobj, "You catch, but drop, %s.", xname(singleobj), "You catch:"); +#else + (void) hold_another_object( + singleobj, "‚ ‚È‚½‚Í%s‚ð‚‚©‚Ü‚¦‚½‚ªC—Ž‚µ‚½D", + xname(singleobj), "‚ð‚‚©‚Ü‚¦‚½D"); +#endif } break; } @@ -417,11 +522,20 @@ struct obj *obj; /* missile (or stack providing it) */ blindinc = rnd(25); if (singleobj->otyp == CREAM_PIE) { if (!Blind) +/*JP pline("Yecch! You've been creamed."); +*/ + pline("ƒEƒF[DƒNƒŠ[ƒ€‚ð‚©‚Ô‚Á‚½D"); else +#if 0 /*JP*/ pline("There's %s sticky all over your %s.", something, body_part(FACE)); +#else + pline("‚ ‚È‚½‚Í%s‚ɂׂƂ‚­‚à‚Ì‚ðŠ´‚¶‚½D", + body_part(FACE)); +#endif } else if (singleobj->otyp == BLINDING_VENOM) { +#if 0 /*JP*/ const char *eyes = body_part(EYE); if (eyecount(youmonst.data) != 1) @@ -431,6 +545,12 @@ struct obj *obj; /* missile (or stack providing it) */ pline_The("venom blinds you."); else Your("%s %s.", eyes, vtense(eyes, "sting")); +#else + if(!Blind) + pline("“Å‚Å–Ú‚ªŒ©‚¦‚È‚­‚È‚Á‚½D"); + else + Your("%s‚Í‚¿‚­‚¿‚­‚µ‚½D", body_part(EYE)); +#endif } } if (hitu && singleobj->otyp == EGG) { @@ -542,8 +662,12 @@ struct monst *mtmp; if (canseemon(mtmp)) { onm = xname(otmp); +#if 0 /*JP*/ pline("%s thrusts %s.", Monnam(mtmp), obj_is_pname(otmp) ? the(onm) : an(onm)); +#else + pline("%s‚Í%s‚ð“Ë‚«Žh‚µ‚½D", Monnam(mtmp), onm); +#endif } dam = dmgval(otmp, &youmonst); @@ -637,7 +761,10 @@ struct monst *mtmp; if (multishot > 1) { /* "N arrows"; multishot > 1 implies otmp->quan > 1, so xname()'s result will already be pluralized */ +/*JP Sprintf(onmbuf, "%d %s", multishot, xname(otmp)); +*/ + Sprintf(onmbuf, "%d%s‚Ì%s", multishot, numeral(otmp), xname(otmp)); onm = onmbuf; } else { /* "an arrow" */ @@ -645,7 +772,10 @@ struct monst *mtmp; onm = obj_is_pname(otmp) ? the(onm) : an(onm); } m_shot.s = ammo_and_launcher(otmp, mwep) ? TRUE : FALSE; +/*JP pline("%s %s %s!", Monnam(mtmp), m_shot.s ? "shoots" : "throws", onm); +*/ + pline("%s‚Í%s‚ð%s!", Monnam(mtmp), onm, m_shot.s ? "Œ‚‚Á‚½" : "“Š‚°‚½"); m_shot.o = otmp->otyp; } else { m_shot.o = STRANGE_OBJECT; /* don't give multishot feedback */ @@ -682,7 +812,10 @@ struct attack *mattk; if (mtmp->mcan) { if (!Deaf) +/*JP pline("A dry rattle comes from %s throat.", +*/ + pline("%s‚̍A‚ªƒKƒ‰ƒKƒ‰‚Ɩ‚Á‚½D", s_suffix(mon_nam(mtmp))); return 0; } @@ -702,7 +835,10 @@ struct attack *mattk; if (!rn2(BOLT_LIM - distmin(mtmp->mx, mtmp->my, mtmp->mux, mtmp->muy))) { if (canseemon(mtmp)) +/*JP pline("%s spits venom!", Monnam(mtmp)); +*/ + pline("%s‚Í“Å‚ð“f‚¢‚½I", Monnam(mtmp)); m_throw(mtmp, mtmp->mx, mtmp->my, sgn(tbx), sgn(tby), distmin(mtmp->mx, mtmp->my, mtmp->mux, mtmp->muy), otmp); nomul(0); @@ -728,17 +864,28 @@ struct attack *mattk; if (mtmp->mcan) { if (!Deaf) { if (canseemon(mtmp)) +/*JP pline("%s coughs.", Monnam(mtmp)); +*/ + pline("%s‚Í‚¹‚«‚ð‚µ‚½D", Monnam(mtmp)); else +/*JP You_hear("a cough."); +*/ + You_hear("‚¹‚«‚̉¹‚ð•·‚¢‚½D"); } return 0; } if (!mtmp->mspec_used && rn2(3)) { if ((typ >= AD_MAGM) && (typ <= AD_ACID)) { if (canseemon(mtmp)) +#if 0 /*JP*/ pline("%s breathes %s!", Monnam(mtmp), breathwep[typ - 1]); +#else + pline("%s‚Í%s‚ð“f‚¢‚½I", Monnam(mtmp), + breathwep[typ - 1]); +#endif buzz((int) (-20 - (typ - 1)), (int) mattk->damn, mtmp->mx, mtmp->my, sgn(tbx), sgn(tby)); nomul(0); @@ -889,13 +1036,22 @@ int whodidit; /* 1==hero, 0=other, -1==just check whether it'll pass thru */ *obj_p = otmp = 0; /* object is now gone */ /* breakage makes its own noises */ else if (obj_type == BOULDER || obj_type == HEAVY_IRON_BALL) +/*JP pline("Whang!"); +*/ + pline("‚®‚í[‚ñI"); else if (otmp->oclass == COIN_CLASS || objects[obj_type].oc_material == GOLD || objects[obj_type].oc_material == SILVER) +/*JP pline("Clink!"); +*/ + pline("ƒ`ƒƒƒŠƒ“I"); else +/*JP pline("Clonk!"); +*/ + pline("ƒSƒcƒ“I"); } return hits; diff --git a/src/muse.c b/src/muse.c index 012ac8b..84a0708 100644 --- a/src/muse.c +++ b/src/muse.c @@ -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. */ + /* * Monster item usage routines. */ @@ -72,7 +77,10 @@ struct obj *obj; if (obj->oclass == POTION_CLASS) { coord cc; +/*JP static const char *empty = "The potion turns out to be empty."; +*/ + static const char *empty = "–ò‚Í‹ó‚Á‚Û‚Å‚ ‚邱‚Æ‚ª‚í‚©‚Á‚½D"; const char *potion_descr; struct monst *mtmp; @@ -90,12 +98,23 @@ struct obj *obj; pline1(empty); } else { if (vis) { +#if 0 /*JP*/ pline( "As %s opens the bottle, an enormous %s emerges!", mon_nam(mon), Hallucination ? rndmonnam(NULL) : (const char *) "ghost"); +#else + pline( + "%s‚ª•r‚ðŠJ‚¯‚é‚ƁC‹‘å‚È%s‚ªo‚Ä‚«‚½I", + mon_nam(mon), + Hallucination ? rndmonnam(NULL) + : (const char *)"—H—ì"); +#endif +/*JP pline("%s is frightened to death, and unable to move.", +*/ + pline("%s‚Í‚Ü‚Á‚³‚¨‚É‚È‚Á‚Ä‹Á‚«C“®‚¯‚È‚­‚È‚Á‚½D", Monnam(mon)); } paralyze_monst(mon, 3); @@ -103,7 +122,10 @@ struct obj *obj; return 2; } } +/*JP if (potion_descr && !strcmp(potion_descr, "smoky") +*/ + if (potion_descr && !strcmp(potion_descr, "‰Œ‚̏o‚Ä‚¢‚é–ò") && !(mvitals[PM_DJINNI].mvflags & G_GONE) && !rn2(POTION_OCCUPANT_CHANCE(mvitals[PM_DJINNI].born))) { if (!enexto(&cc, mon->mx, mon->my, &mons[PM_DJINNI])) @@ -116,18 +138,33 @@ struct obj *obj; pline1(empty); } else { if (vis) +/*JP pline("In a cloud of smoke, %s emerges!", a_monnam(mtmp)); +*/ + pline("‰Œ‚Ì’†‚©‚çC%s‚ªŒ»‚í‚ꂽI", a_monnam(mtmp)); +/*JP pline("%s speaks.", vis ? Monnam(mtmp) : Something); +*/ + pline("%s‚͘b‚µ‚½D", vis ? Monnam(mtmp) : Something); /* I suspect few players will be upset that monsters */ /* can't wish for wands of death here.... */ if (rn2(2)) { +/*JP verbalize("You freed me!"); +*/ + verbalize("‰ð•ú‚µ‚Ä‚­‚ꂽ‚Ì‚Í‚¨‘O‚©I"); mtmp->mpeaceful = 1; set_malign(mtmp); } else { +/*JP verbalize("It is about time."); +*/ + verbalize("‚³‚ç‚΂¾I"); if (vis) +/*JP pline("%s vanishes.", Monnam(mtmp)); +*/ + pline("%s‚͏Á‚¦‚½D", Monnam(mtmp)); mongone(mtmp); } } @@ -140,10 +177,18 @@ struct obj *obj; if (!Deaf) { if (vis) +#if 0 /*JP*/ pline("%s zaps %s, which suddenly explodes!", Monnam(mon), an(xname(obj))); +#else + pline("%s‚Í%s‚ð‚Ó‚è‚©‚´‚µ‚½C‚»‚ê‚Í“Ë‘R”š”­‚µ‚½I", Monnam(mon), + an(xname(obj))); +#endif else +/*JP You_hear("a zap and an explosion in the distance."); +*/ + You_hear("‰“•û‚̏ñ‚̉¹‚Æ”š”­‰¹‚ð•·‚¢‚½D"); } m_useup(mon, obj); if (mon->mhp <= dam) { @@ -165,15 +210,30 @@ boolean self; { if (!canseemon(mtmp)) { if (!Deaf) +#if 0 /*JP*/ You_hear("a %s zap.", (distu(mtmp->mx, mtmp->my) <= (BOLT_LIM + 1) * (BOLT_LIM + 1)) ? "nearby" : "distant"); +#else + You_hear("%s‚­‚ŏñ‚̉¹‚ð•·‚¢‚½D", (distu(mtmp->mx, mtmp->my) + <= (BOLT_LIM + 1) * (BOLT_LIM + 1)) + ? "‹ß" + : "‰“"); +#endif } else if (self) { +#if 0 /*JP*/ pline("%s zaps %sself with %s!", Monnam(mtmp), mhim(mtmp), doname(otmp)); +#else + pline("%s‚ÍŽ©•ªŽ©g‚É%s‚ð‚Ó‚è‚©‚´‚µ‚½I", Monnam(mtmp), + doname(otmp)); +#endif } else { +/*JP pline("%s zaps %s!", Monnam(mtmp), an(xname(otmp))); +*/ + pline("%s‚Í%s‚ð‚Ó‚è‚©‚´‚µ‚½I", Monnam(mtmp), an(xname(otmp))); stop_occupation(); } } @@ -206,16 +266,30 @@ struct obj *otmp; otmp->bknown = savebknown; if (vismon) +/*JP pline("%s reads %s!", Monnam(mtmp), onambuf); +*/ + pline("%s‚Í%s‚ð“Ç‚ñ‚¾I", Monnam(mtmp), onambuf); else +#if 0 /*JP*/ You_hear("%s reading %s.", x_monnam(mtmp, ARTICLE_A, (char *) 0, (SUPPRESS_IT | SUPPRESS_INVISIBLE | SUPPRESS_SADDLE), FALSE), onambuf); +#else + You_hear("%s‚ª%s‚ð“Ç‚ñ‚Å‚¢‚鐺‚ð•·‚¢‚½D", + x_monnam(mtmp, ARTICLE_A, (char *)0, + (SUPPRESS_IT|SUPPRESS_INVISIBLE|SUPPRESS_SADDLE), + FALSE), + onambuf); +#endif if (mtmp->mconf) +/*JP pline("Being confused, %s mispronounces the magic words...", +*/ + pline("¬—‚µ‚Ä‚¢‚é‚̂ŁC%s‚ÍŽô•¶‚ðŠÔˆá‚Á‚ď¥‚¦‚Ä‚µ‚Ü‚Á‚½DDD", vismon ? mon_nam(mtmp) : mhe(mtmp)); } @@ -226,9 +300,15 @@ struct obj *otmp; { if (canseemon(mtmp)) { otmp->dknown = 1; +/*JP pline("%s drinks %s!", Monnam(mtmp), singular(otmp, doname)); +*/ + pline("%s‚Í%s‚ðˆù‚ñ‚¾I", Monnam(mtmp), singular(otmp, doname)); } else if (!Deaf) +/*JP You_hear("a chugging sound."); +*/ + You_hear("ƒSƒNƒbI‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D"); } /* Defines for various types of stuff. The order in which monsters prefer @@ -600,7 +680,10 @@ struct monst *mtmp; int i, fleetim, how = 0; struct obj *otmp = m.defensive; boolean vis, vismon, oseen; +/*JP const char *mcsa = "%s can see again."; +*/ + const char *mcsa = "%s‚Í‚Ü‚½Œ©‚¦‚é‚悤‚É‚È‚Á‚½D"; if ((i = precheck(mtmp, otmp)) != 0) return i; @@ -620,9 +703,15 @@ struct monst *mtmp; case MUSE_UNICORN_HORN: if (vismon) { if (otmp) +/*JP pline("%s uses a unicorn horn!", Monnam(mtmp)); +*/ + pline("%s‚̓†ƒjƒR[ƒ“‚ÌŠp‚ðŽg‚Á‚½I", Monnam(mtmp)); else +/*JP pline_The("tip of %s's horn glows!", mon_nam(mtmp)); +*/ + pline("%s‚ÌŠp‚̐æ’[‚ª‹P‚¢‚½I", mon_nam(mtmp)); } if (!mtmp->mcansee) { mtmp->mcansee = 1; @@ -632,15 +721,24 @@ struct monst *mtmp; } else if (mtmp->mconf || mtmp->mstun) { mtmp->mconf = mtmp->mstun = 0; if (vismon) +/*JP pline("%s seems steadier now.", Monnam(mtmp)); +*/ + pline("%s‚Í•½Ã‚ð‚Æ‚è‚à‚Ç‚µ‚½D", Monnam(mtmp)); } else impossible("No need for unicorn horn?"); return 2; case MUSE_BUGLE: if (vismon) +/*JP pline("%s plays %s!", Monnam(mtmp), doname(otmp)); +*/ + pline("%s‚Í%s‚𐁂¢‚½I", Monnam(mtmp), doname(otmp)); else if (!Deaf) +/*JP You_hear("a bugle playing reveille!"); +*/ + You_hear("‹N°ƒ‰ƒbƒp‚̉¹‚ð•·‚¢‚½I"); awaken_soldiers(mtmp); return 2; case MUSE_WAN_TELEPORTATION_SELF: @@ -661,7 +759,10 @@ struct monst *mtmp; } if ((mon_has_amulet(mtmp) || On_W_tower_level(&u.uz)) && !rn2(3)) { if (vismon) +/*JP pline("%s seems disoriented for a moment.", Monnam(mtmp)); +*/ + pline("%s‚͈êu•ûŒüŠ´Šo‚ðŽ¸‚Á‚½D", Monnam(mtmp)); return 2; } if (oseen && how) @@ -694,14 +795,20 @@ struct monst *mtmp; if (mon_has_amulet(mtmp) || In_endgame(&u.uz)) { if (vismon) +/*JP pline("%s seems very disoriented for a moment.", +*/ + pline("%s‚͈êu•ûŒüŠ´Šo‚ðŽ¸‚Á‚½D", Monnam(mtmp)); return 2; } nlev = random_teleport_level(); if (nlev == depth(&u.uz)) { if (vismon) +/*JP pline("%s shudders for a moment.", Monnam(mtmp)); +*/ + pline("%s‚͈êuk‚¦‚½D", Monnam(mtmp)); return 2; } get_level(&flev, nlev); @@ -726,12 +833,18 @@ struct monst *mtmp; || (is_drawbridge_wall(mtmp->mx, mtmp->my) >= 0) || (sstairs.sx && sstairs.sx == mtmp->mx && sstairs.sy == mtmp->my)) { +/*JP pline_The("digging ray is ineffective."); +*/ + pline("Œ@íŒõü‚ÍŒø‰Ê‚ª‚È‚¢D"); return 2; } if (!Can_dig_down(&u.uz) && !levl[mtmp->mx][mtmp->my].candig) { if (canseemon(mtmp)) +/*JP pline_The("%s here is too hard to dig in.", +*/ + pline("‚±‚±‚Ì%s‚͌ł­‚ÄŒ@‚ê‚È‚¢D", surface(mtmp->mx, mtmp->my)); return 2; } @@ -740,13 +853,28 @@ struct monst *mtmp; return 2; seetrap(ttmp); if (vis) { +#if 0 /*JP*/ pline("%s has made a hole in the %s.", Monnam(mtmp), surface(mtmp->mx, mtmp->my)); +#else + pline("%s‚Í%s‚ÉŒŠ‚ðŠJ‚¯‚½D", Monnam(mtmp), + surface(mtmp->mx, mtmp->my)); +#endif +#if 0 /*JP*/ pline("%s %s through...", Monnam(mtmp), is_flyer(mtmp->data) ? "dives" : "falls"); +#else + pline("%s‚͒ʂ蔲‚¯‚Ä%sDDD", Monnam(mtmp), + is_flyer(mtmp->data) ? "”ò‚Ñ‚±‚ñ‚¾" : "—Ž‚¿‚½"); +#endif } else if (!Deaf) +#if 0 /*JP*/ You_hear("%s crash through the %s.", something, surface(mtmp->mx, mtmp->my)); +#else + You_hear("‰½‚©‚ª%s‚ð’ʂ蔲‚¯‚Ä—Ž‚¿‚鉹‚ð•·‚¢‚½DDD", + surface(mtmp->mx, mtmp->my)); +#endif /* we made sure that there is a level for mtmp to go to */ migrate_to_level(mtmp, ledger_no(&u.uz) + 1, MIGR_RANDOM, (coord *) 0); @@ -819,9 +947,15 @@ struct monst *mtmp; if (vis) { struct trap *t = t_at(trapx, trapy); +#if 0 /*JP*/ pline("%s %s into a %s!", Monnam(mtmp), makeplural(locomotion(mtmp->data, "jump")), t->ttyp == TRAPDOOR ? "trap door" : "hole"); +#else + pline("%s‚Í%s‚É%s“ü‚Á‚½I", Monnam(mtmp), + t->ttyp == TRAPDOOR ? "—Ž‚µ”à" : "ŒŠ", + jconj(locomotion(mtmp->data, "”ò‚Ô"), "‚Ä")); +#endif if (levl[trapx][trapy].typ == SCORR) { levl[trapx][trapy].typ = CORR; unblock_point(trapx, trapy); @@ -851,7 +985,10 @@ struct monst *mtmp; if (mon_has_special(mtmp)) return 0; if (vismon) +/*JP pline("%s escapes the dungeon!", Monnam(mtmp)); +*/ + pline("%s‚Í–À‹{‚©‚瓦‘–‚µ‚½I", Monnam(mtmp)); mongone(mtmp); return 2; } @@ -859,9 +996,15 @@ struct monst *mtmp; if (Inhell && mon_has_amulet(mtmp) && !rn2(4) && (dunlev(&u.uz) < dunlevs_in_dungeon(&u.uz) - 3)) { if (vismon) +#if 0 /*JP*/ pline( "As %s climbs the stairs, a mysterious force momentarily surrounds %s...", mon_nam(mtmp), mhim(mtmp)); +#else + pline( + "%s‚ªŠK’i‚ð‚̂ڂ낤‚Æ‚·‚é‚ÆŠï–­‚È—Í‚ª%s‚ð‚‚‚ñ‚¾DDD", + mon_nam(mtmp), mhim(mtmp)); +#endif /* simpler than for the player; this will usually be the Wizard and he'll immediately go right to the upstairs, so there's not much point in having any @@ -870,7 +1013,10 @@ struct monst *mtmp; (coord *) 0); } else { if (vismon) +/*JP pline("%s escapes upstairs!", Monnam(mtmp)); +*/ + pline("%s‚ÍŠK’i‚ð‚Ì‚Ú‚Á‚Ä“¦‚°‚½I", Monnam(mtmp)); migrate_to_level(mtmp, ledger_no(&u.uz) - 1, MIGR_STAIRS_DOWN, (coord *) 0); } @@ -878,29 +1024,43 @@ struct monst *mtmp; case MUSE_DOWNSTAIRS: m_flee(mtmp); if (vismon) +/*JP pline("%s escapes downstairs!", Monnam(mtmp)); +*/ + pline("%s‚ÍŠK’i‚ð~‚è‚Ä“¦‚°‚½I", Monnam(mtmp)); migrate_to_level(mtmp, ledger_no(&u.uz) + 1, MIGR_STAIRS_UP, (coord *) 0); return 2; case MUSE_UP_LADDER: m_flee(mtmp); if (vismon) +/*JP pline("%s escapes up the ladder!", Monnam(mtmp)); +*/ + pline("%s‚Í‚Í‚µ‚²‚ð‚Ì‚Ú‚Á‚Ä“¦‚°‚½I", Monnam(mtmp)); migrate_to_level(mtmp, ledger_no(&u.uz) - 1, MIGR_LADDER_DOWN, (coord *) 0); return 2; case MUSE_DN_LADDER: m_flee(mtmp); if (vismon) +/*JP pline("%s escapes down the ladder!", Monnam(mtmp)); +*/ + pline("%s‚Í‚Í‚µ‚²‚ð~‚è‚Ä“¦‚°‚½I", Monnam(mtmp)); migrate_to_level(mtmp, ledger_no(&u.uz) + 1, MIGR_LADDER_UP, (coord *) 0); return 2; case MUSE_SSTAIRS: m_flee(mtmp); if (vismon) +#if 0 /*JP*/ pline("%s escapes %sstairs!", Monnam(mtmp), sstairs.up ? "up" : "down"); +#else + pline("%s‚ÍŠK’i‚ð%s“¦‚°‚½I", Monnam(mtmp), + sstairs.up ? "‚Ì‚Ú‚Á‚Ä" : "~‚è‚Ä"); +#endif /* going from the Valley to Castle (Stronghold) has no sstairs to target, but having sstairs. == <0,0> will work the same as specifying MIGR_RANDOM when mon_arrive() eventually @@ -911,8 +1071,12 @@ struct monst *mtmp; case MUSE_TELEPORT_TRAP: m_flee(mtmp); if (vis) { +#if 0 /*JP*/ pline("%s %s onto a teleport trap!", Monnam(mtmp), makeplural(locomotion(mtmp->data, "jump"))); +#else + pline("%s‚͏uŠÔˆÚ“®‚Ì㩂ɔò‚эž‚ñ‚¾I", Monnam(mtmp)); +#endif seetrap(t_at(trapx, trapy)); } /* don't use rloc_to() because worm tails must "move" */ @@ -937,7 +1101,10 @@ struct monst *mtmp; pline(mcsa, Monnam(mtmp)); } if (vismon) +/*JP pline("%s looks better.", Monnam(mtmp)); +*/ + pline("%s‚Í‹C•ª‚ª‚æ‚­‚È‚Á‚½‚悤‚¾D", Monnam(mtmp)); if (oseen) makeknown(POT_HEALING); m_useup(mtmp, otmp); @@ -955,7 +1122,10 @@ struct monst *mtmp; pline(mcsa, Monnam(mtmp)); } if (vismon) +/*JP pline("%s looks much better.", Monnam(mtmp)); +*/ + pline("%s‚Í‚Æ‚Ä‚à‹C•ª‚ª‚æ‚­‚È‚Á‚½‚悤‚¾D", Monnam(mtmp)); if (oseen) makeknown(POT_EXTRA_HEALING); m_useup(mtmp, otmp); @@ -972,7 +1142,10 @@ struct monst *mtmp; pline(mcsa, Monnam(mtmp)); } if (vismon) +/*JP pline("%s looks completely healed.", Monnam(mtmp)); +*/ + pline("%s‚ÍŠ®‘S‚ɉñ•œ‚µ‚½‚悤‚¾D", Monnam(mtmp)); if (oseen) makeknown(otmp->otyp); m_useup(mtmp, otmp); @@ -1213,28 +1386,49 @@ register struct obj *otmp; makeknown(WAN_STRIKING); if (Antimagic) { shieldeff(u.ux, u.uy); +/*JP pline("Boing!"); +*/ + pline("ƒ{ƒCƒ“I"); } else if (rnd(20) < 10 + u.uac) { +/*JP pline_The("wand hits you!"); +*/ + pline("ñ‚Í‚ ‚È‚½‚É–½’†‚µ‚½I"); tmp = d(2, 12); if (Half_spell_damage) tmp = (tmp + 1) / 2; +/*JP losehp(tmp, "wand", KILLED_BY_AN); +*/ + losehp(tmp, "ÕŒ‚‚̏ñ‚É‚æ‚Á‚Ä", KILLED_BY_AN); } else +/*JP pline_The("wand misses you."); +*/ + pline("ñ‚Í‚Í‚¸‚ꂽD"); stop_occupation(); nomul(0); } else if (resists_magm(mtmp)) { shieldeff(mtmp->mx, mtmp->my); +/*JP pline("Boing!"); +*/ + pline("ƒ{ƒCƒ“I"); } else if (rnd(20) < 10 + find_mac(mtmp)) { tmp = d(2, 12); +/*JP hit("wand", mtmp, exclam(tmp)); +*/ + hit("ñ", mtmp, exclam(tmp)); (void) resist(mtmp, otmp->oclass, tmp, TELL); if (cansee(mtmp->mx, mtmp->my) && zap_oseen) makeknown(WAN_STRIKING); } else { +/*JP miss("wand", mtmp); +*/ + miss("ñ", mtmp); if (cansee(mtmp->mx, mtmp->my) && zap_oseen) makeknown(WAN_STRIKING); } @@ -1248,7 +1442,10 @@ register struct obj *otmp; /* for consistency with zap.c, don't identify */ if (mtmp->ispriest && *in_rooms(mtmp->mx, mtmp->my, TEMPLE)) { if (cansee(mtmp->mx, mtmp->my)) +/*JP pline("%s resists the magic!", Monnam(mtmp)); +*/ + pline("%s‚Í–‚–@‚ð–h‚¢‚¾I", Monnam(mtmp)); } else if (!tele_restrict(mtmp)) (void) rloc(mtmp, TRUE); } @@ -1397,9 +1594,15 @@ struct monst *mtmp; case MUSE_FROST_HORN: if (oseen) { makeknown(otmp->otyp); +/*JP pline("%s plays a %s!", Monnam(mtmp), xname(otmp)); +*/ + pline("%s‚Í%s‚𐁂¢‚½I", Monnam(mtmp), xname(otmp)); } else +/*JP You_hear("a horn being played."); +*/ + You_hear("ƒzƒ‹ƒ“‚̉¹‚ð•·‚¢‚½D"); otmp->spe--; m_using = TRUE; buzz(-30 - ((otmp->otyp == FROST_HORN) ? AD_COLD - 1 : AD_FIRE - 1), @@ -1427,12 +1630,22 @@ struct monst *mtmp; mreadmsg(mtmp, otmp); /* Identify the scroll */ if (canspotmon(mtmp)) { +#if 0 /*JP*/ pline_The("%s rumbles %s %s!", ceiling(mtmp->mx, mtmp->my), otmp->blessed ? "around" : "above", mon_nam(mtmp)); +#else + pline("%s‚Ì%s‚Ì%s‚©‚çƒSƒƒSƒ‚Ɖ¹‚ª•·‚±‚¦‚Ä‚«‚½D", + mon_nam(mtmp), + otmp->blessed ? "‚Ü‚í‚è" : "^ã", + ceiling(mtmp->mx, mtmp->my)); +#endif if (oseen) makeknown(otmp->otyp); } else if (cansee(mtmp->mx, mtmp->my)) { +/*JP pline_The("%s rumbles in the middle of nowhere!", +*/ + pline_The("‚Ç‚±‚©‚Ì%s‚©‚çƒSƒƒSƒ‚Ɖ¹‚ª•·‚±‚¦‚Ä‚«‚½D", ceiling(mtmp->mx, mtmp->my)); if (mtmp->minvis) map_invisible(mtmp->mx, mtmp->my); @@ -1468,26 +1681,41 @@ struct monst *mtmp; mreadmsg(mtmp, otmp); if (mtmp->mconf) { if (vis) +/*JP pline("Oh, what a pretty fire!"); +*/ + pline("‚í‚ŸC‚«‚ê‚¢‚ȉŠ‚¾I"); } else { struct monst *mtmp2; int num; if (vis) +/*JP pline_The("scroll erupts in a tower of flame!"); +*/ + pline("Šª•¨‚©‚ç‰Î’Œ‚ª—§‚¿¸‚Á‚½I"); shieldeff(mtmp->mx, mtmp->my); +/*JP pline("%s is uninjured.", Monnam(mtmp)); +*/ + pline("%s‚͏‚‚©‚È‚©‚Á‚½D", Monnam(mtmp)); (void) destroy_mitem(mtmp, SCROLL_CLASS, AD_FIRE); (void) destroy_mitem(mtmp, SPBOOK_CLASS, AD_FIRE); (void) destroy_mitem(mtmp, POTION_CLASS, AD_FIRE); num = (2 * (rn1(3, 3) + 2 * bcsign(otmp)) + 1) / 3; if (Fire_resistance) +/*JP You("are not harmed."); +*/ + You("‚‚©‚È‚©‚Á‚½D"); burn_away_slime(); if (Half_spell_damage) num = (num + 1) / 2; else +/*JP losehp(num, "scroll of fire", KILLED_BY_AN); +*/ + losehp(num, "‰Š‚ÌŠª•¨‚Å", KILLED_BY_AN); for (mtmp2 = fmon; mtmp2; mtmp2 = mtmp2->nmon) { if (DEADMONSTER(mtmp2)) continue; if (mtmp == mtmp2) continue; @@ -1518,7 +1746,10 @@ struct monst *mtmp; */ if (cansee(mtmp->mx, mtmp->my)) { otmp->dknown = 1; +/*JP pline("%s hurls %s!", Monnam(mtmp), singular(otmp, doname)); +*/ + pline("%s‚Í%s‚ð‹­‚­“Š‚°‚‚¯‚½I", Monnam(mtmp), singular(otmp, doname)); } m_throw(mtmp, mtmp->mx, mtmp->my, sgn(mtmp->mux - mtmp->mx), sgn(mtmp->muy - mtmp->my), @@ -1765,8 +1996,13 @@ struct monst *mtmp; if (on_level(&tolevel, &u.uz)) goto skipmsg; if (vismon) { +#if 0 /*JP*/ pline("%s rises up, through the %s!", Monnam(mtmp), ceiling(mtmp->mx, mtmp->my)); +#else + pline("%s‚Í%s‚ð“Ë‚«”²‚¯‚½I", Monnam(mtmp), + ceiling(mtmp->mx, mtmp->my)); +#endif if (!objects[POT_GAIN_LEVEL].oc_name_known && !objects[POT_GAIN_LEVEL].oc_uname) docall(otmp); @@ -1778,7 +2014,10 @@ struct monst *mtmp; } else { skipmsg: if (vismon) { +/*JP pline("%s looks uneasy.", Monnam(mtmp)); +*/ + pline("%s‚Í•sˆÀ‚°‚ÉŒ©‚¦‚éD", Monnam(mtmp)); if (!objects[POT_GAIN_LEVEL].oc_name_known && !objects[POT_GAIN_LEVEL].oc_uname) docall(otmp); @@ -1788,7 +2027,10 @@ struct monst *mtmp; } } if (vismon) +/*JP pline("%s seems more experienced.", Monnam(mtmp)); +*/ + pline("%s‚ÍŒoŒ±‚ðÏ‚ñ‚¾‚悤‚ÉŒ©‚¦‚éD", Monnam(mtmp)); if (oseen) makeknown(POT_GAIN_LEVEL); m_useup(mtmp, otmp); @@ -1808,11 +2050,20 @@ struct monst *mtmp; mon_set_minvis(mtmp); if (vismon && mtmp->minvis) { /* was seen, now invisible */ if (canspotmon(mtmp)) +#if 0 /*JP*/ pline("%s body takes on a %s transparency.", upstart(s_suffix(nambuf)), Hallucination ? "normal" : "strange"); +#else + pline("%s%s‚Ì‘Ì‚Í“§‰ß«‚ð‚à‚Á‚½D", + Hallucination ? "‚ ‚½‚è‚Ü‚¦‚È‚±‚Æ‚¾‚ª" : "Šï–­‚È‚±‚Æ‚É", + nambuf); +#endif else +/*JP pline("Suddenly you cannot see %s.", nambuf); +*/ + pline("%s‚Í“Ë‘RŒ©‚¦‚È‚­‚È‚Á‚½D", nambuf); if (oseen) makeknown(otmp->otyp); } @@ -1846,7 +2097,10 @@ struct monst *mtmp; case MUSE_POT_POLYMORPH: mquaffmsg(mtmp, otmp); if (vismon) +/*JP pline("%s suddenly mutates!", Monnam(mtmp)); +*/ + pline("%s‚Í“Ë‘R•Ï‰»‚µ‚½I", Monnam(mtmp)); (void) newcham(mtmp, muse_newcham_mon(mtmp), FALSE, FALSE); if (oseen) makeknown(POT_POLYMORPH); @@ -1854,8 +2108,12 @@ struct monst *mtmp; return 2; case MUSE_POLY_TRAP: if (vismon) +#if 0 /*JP*/ pline("%s deliberately %s onto a polymorph trap!", Monnam(mtmp), makeplural(locomotion(mtmp->data, "jump"))); +#else + pline("%s‚Í‚í‚´‚ƕω»‚Ì㩂ɔò‚Ñ‚±‚ñ‚¾I", Monnam(mtmp)); +#endif if (vis) seetrap(t_at(trapx, trapy)); @@ -1872,7 +2130,10 @@ struct monst *mtmp; case MUSE_BULLWHIP: /* attempt to disarm hero */ { +/*JP const char *The_whip = vismon ? "The bullwhip" : "A whip"; +*/ + const char *The_whip = vismon ? "•Ú" : "•Ú"; int where_to = rn2(4); struct obj *obj = uwep; const char *hand; @@ -1890,23 +2151,46 @@ struct monst *mtmp; hand = makeplural(hand); if (vismon) +#if 0 /*JP*/ pline("%s flicks a bullwhip towards your %s!", Monnam(mtmp), hand); +#else + pline("%s‚Í‚ ‚È‚½‚Ì%s‚ÉŒü‚©‚Á‚Ä•Ú‚ð‘Å‚Á‚½I", Monnam(mtmp), + hand); +#endif if (obj->otyp == HEAVY_IRON_BALL) { +/*JP pline("%s fails to wrap around %s.", The_whip, the_weapon); +*/ + pline("%s‚Í%s‚É‚Í‚©‚ç‚݂‚©‚È‚©‚Á‚½D", The_whip, the_weapon); return 1; } +#if 0 /*JP*/ pline("%s wraps around %s you're wielding!", The_whip, the_weapon); +#else + pline("%s‚Í‚ ‚È‚½‚Ì‘•”õ‚µ‚Ä‚¢‚é%s‚É‚©‚ç‚݂‚¢‚½I", The_whip, + the_weapon); +#endif if (welded(obj)) { +#if 0 /*JP*/ pline("%s welded to your %s%c", !is_plural(obj) ? "It is" : "They are", hand, !obj->bknown ? '!' : '.'); +#else + pline("‚µ‚©‚µC‚»‚ê‚Í‚Ü‚¾‚ ‚È‚½‚Ì%s‚Ì’†‚É‚ ‚é%s", + hand, + !obj->bknown ? "I" : "D"); +#endif /* obj->bknown = 1; */ /* welded() takes care of this */ where_to = 0; } if (!where_to) { +#if 0 /*JP*/ pline_The("whip slips free."); /* not `The_whip' */ +#else + pline("•Ú‚Í‚Ù‚Ç‚¯‚½D"); /* not `The_whip' */ +#endif return 1; } else if (where_to == 3 && mon_hates_silver(mtmp) && objects[obj->otyp].oc_material == SILVER) { @@ -1918,17 +2202,30 @@ struct monst *mtmp; freeinv(obj); switch (where_to) { case 1: /* onto floor beneath mon */ +#if 0 /*JP*/ pline("%s yanks %s from your %s!", Monnam(mtmp), the_weapon, hand); +#else + pline("%s‚Í%s‚ð‚ ‚È‚½‚Ì%s‚©‚ç‚®‚¢‚ƂЂÁ‚Ï‚Á‚½I", Monnam(mtmp), the_weapon, + hand); +#endif place_object(obj, mtmp->mx, mtmp->my); break; case 2: /* onto floor beneath you */ +#if 0 /*JP*/ pline("%s yanks %s to the %s!", Monnam(mtmp), the_weapon, surface(u.ux, u.uy)); +#else + pline("%s‚Í%s‚ð%s‚Ɉø‚«—Ž‚µ‚½I", Monnam(mtmp), the_weapon, + surface(u.ux, u.uy)); +#endif dropy(obj); break; case 3: /* into mon's inventory */ +/*JP pline("%s snatches %s!", Monnam(mtmp), the_weapon); +*/ + pline("%s‚Í%s‚ð’D‚Á‚½I", Monnam(mtmp), the_weapon); (void) mpickobj(mtmp, obj); break; } @@ -1949,7 +2246,10 @@ STATIC_OVL void you_aggravate(mtmp) struct monst *mtmp; { +/*JP pline("For some reason, %s presence is known to you.", +*/ + pline("‚È‚º‚©C‚ ‚È‚½‚Í%s‚Ì‘¶Ý‚É‹C‚ª‚‚¢‚½D", s_suffix(noit_mon_nam(mtmp))); cls(); #ifdef CLIPPING @@ -1957,12 +2257,18 @@ struct monst *mtmp; #endif show_glyph(mtmp->mx, mtmp->my, mon_to_glyph(mtmp)); display_self(); +/*JP You_feel("aggravated at %s.", noit_mon_nam(mtmp)); +*/ + You("%s‚É• ‚ª‚½‚Á‚½D", mon_nam(mtmp)); display_nhwindow(WIN_MAP, TRUE); docrt(); if (unconscious()) { multi = -1; +/*JP nomovemsg = "Aggravated, you are jolted into full consciousness."; +*/ + nomovemsg = "• ‚ª‚½‚Á‚Ä‚¢‚āCƒsƒŠƒsƒŠ‚µ‚Ä‚¢‚éD"; } newsym(mtmp->mx, mtmp->my); if (!canspotmon(mtmp)) @@ -2091,19 +2397,28 @@ const char *str; if (orefl && orefl->otyp == SHIELD_OF_REFLECTION) { if (str) { +/*JP pline(str, s_suffix(mon_nam(mon)), "shield"); +*/ + pline(str, mon_nam(mon), "‚"); makeknown(SHIELD_OF_REFLECTION); } return TRUE; } else if (arti_reflects(MON_WEP(mon))) { /* due to wielded artifact weapon */ if (str) +/*JP pline(str, s_suffix(mon_nam(mon)), "weapon"); +*/ + pline(str, mon_nam(mon), "•Ší"); return TRUE; } else if ((orefl = which_armor(mon, W_AMUL)) && orefl->otyp == AMULET_OF_REFLECTION) { if (str) { +/*JP pline(str, s_suffix(mon_nam(mon)), "amulet"); +*/ + pline(str, mon_nam(mon), "–‚œ‚¯"); makeknown(AMULET_OF_REFLECTION); } return TRUE; @@ -2111,13 +2426,19 @@ const char *str; && (orefl->otyp == SILVER_DRAGON_SCALES || orefl->otyp == SILVER_DRAGON_SCALE_MAIL)) { if (str) +/*JP pline(str, s_suffix(mon_nam(mon)), "armor"); +*/ + pline(str, mon_nam(mon), "ŠZ"); return TRUE; } else if (mon->data == &mons[PM_SILVER_DRAGON] || mon->data == &mons[PM_CHROMATIC_DRAGON]) { /* Silver dragons only reflect when mature; babies do not */ if (str) +/*JP pline(str, s_suffix(mon_nam(mon)), "scales"); +*/ + pline(str, mon_nam(mon), "—Ø"); return TRUE; } return FALSE; @@ -2130,28 +2451,43 @@ const char *fmt, *str; /* Check from outermost to innermost objects */ if (EReflecting & W_ARMS) { if (fmt && str) { +/*JP pline(fmt, str, "shield"); +*/ + pline(fmt, str, "‚"); makeknown(SHIELD_OF_REFLECTION); } return TRUE; } else if (EReflecting & W_WEP) { /* Due to wielded artifact weapon */ if (fmt && str) +/*JP pline(fmt, str, "weapon"); +*/ + pline(fmt, str, "•Ší"); return TRUE; } else if (EReflecting & W_AMUL) { if (fmt && str) { +/*JP pline(fmt, str, "medallion"); +*/ + pline(fmt, str, "ƒƒ_ƒŠƒIƒ“"); makeknown(AMULET_OF_REFLECTION); } return TRUE; } else if (EReflecting & W_ARM) { if (fmt && str) +/*JP pline(fmt, str, uskin ? "luster" : "armor"); +*/ + pline(fmt, str, uskin ? "‚‚â" : "ŠZ"); return TRUE; } else if (youmonst.data == &mons[PM_SILVER_DRAGON]) { if (fmt && str) +/*JP pline(fmt, str, "scales"); +*/ + pline(fmt, str, "—Ø"); return TRUE; } return FALSE; @@ -2205,16 +2541,30 @@ boolean stoning; long save_quan = obj->quan; obj->quan = 1L; +#if 0 /*JP*/ pline("%s %s %s.", Monnam(mon), (obj->oclass == POTION_CLASS) ? "quaffs" : (obj->otyp == TIN) ? "opens and eats the contents of" : "eats", distant_name(obj, doname)); +#else + pline("%s‚Í%s‚ð%sD", Monnam(mon), + distant_name(obj, doname), + (obj->oclass == POTION_CLASS) + ? "ˆù‚ñ‚¾" + : (obj->otyp == TIN) ? "ŠJ‚¯‚Ä’†g‚ðH‚ׂ½" + : "H‚ׂ½"); +#endif obj->quan = save_quan; } else if (!Deaf) +#if 0 /*JP*/ You_hear("%s.", (obj->oclass == POTION_CLASS) ? "drinking" : "chewing"); +#else + You_hear("%s‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D", + (obj->otyp == POT_ACID) ? "ƒSƒNƒ“" : "ƒNƒ`ƒƒƒNƒ`ƒƒ"); +#endif m_useup(mon, obj); /* obj is now gone */ @@ -2222,9 +2572,15 @@ boolean stoning; if (acid && !tinned && !resists_acid(mon)) { mon->mhp -= rnd(15); if (vis) +/*JP pline("%s has a very bad case of stomach acid.", Monnam(mon)); +*/ + pline("%s‚͈ݎ_‚Ì’²Žq‚ª‚Æ‚Ä‚àˆ«‚¢D", Monnam(mon)); if (mon->mhp <= 0) { +/*JP pline("%s dies!", Monnam(mon)); +*/ + pline("%s‚ÍŽ€‚ñ‚¾I", Monnam(mon)); if (by_you) xkilled(mon, 0); else @@ -2234,16 +2590,25 @@ boolean stoning; } if (stoning && vis) { if (Hallucination) +/*JP pline("What a pity - %s just ruined a future piece of art!", +*/ + pline("‚È‚ñ‚Ä‚±‚Æ‚¾I%s‚ÍŒ|pì•i‚ɂȂꂽ‚©‚à‚µ‚ê‚È‚¢‚̂ɁI", mon_nam(mon)); else +/*JP pline("%s seems limber!", Monnam(mon)); +*/ + pline("%s‚Í‘Ì‚ª_‚ç‚©‚­‚È‚Á‚½‚悤‚ÉŒ©‚¦‚éI", Monnam(mon)); } if (lizard && (mon->mconf || mon->mstun)) { mon->mconf = 0; mon->mstun = 0; if (vis && !is_bat(mon->data) && mon->data != &mons[PM_STALKER]) +/*JP pline("%s seems steadier now.", Monnam(mon)); +*/ + pline("%s‚Í‚æ‚èä•v‚É‚È‚Á‚½‚悤‚¾D", Monnam(mon)); } if (mon->mtame && !mon->isminion && nutrit > 0) { struct edog *edog = EDOG(mon); diff --git a/src/music.c b/src/music.c index 89ff061..883c309 100644 --- a/src/music.c +++ b/src/music.c @@ -2,6 +2,11 @@ /* Copyright (c) 1989 by Jean-Christophe Collet */ /* 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. */ + /* * This file contains the different functions designed to manipulate the * musical instruments and their various effects. @@ -128,11 +133,20 @@ int distance; newsym(mtmp->mx, mtmp->my); if (canseemon(mtmp)) { if (!could_see_mon) +/*JP You("notice %s, swaying with the music.", a_monnam(mtmp)); +*/ + You("%s‚ª‰¹Šy‚ɍ‡‚킹‚Ä—h‚ê‚Ä‚¢‚é‚Ì‚É‹C•t‚¢‚½D", a_monnam(mtmp)); else +#if 0 /*JP*/ pline("%s freezes, then sways with the music%s.", Monnam(mtmp), was_peaceful ? "" : ", and now seems quieter"); +#else + pline("%s‚Í—§‚¿‚·‚­‚݁C‰¹Šy‚ɍ‡‚킹‚Ä—h‚ê%s‚½D", + Monnam(mtmp), + was_peaceful ? "" : "C‚¨‚Æ‚È‚µ‚­‚È‚Á"); +#endif } } } @@ -159,7 +173,10 @@ int distance; mtmp->mstrategy &= ~STRAT_WAITMASK; if (canseemon(mtmp)) pline( +/*JP "%s listens cheerfully to the music, then seems quieter.", +*/ + "%s‚͉¹Šy‚É•·‚«‚¢‚èC‚¨‚Æ‚È‚µ‚­‚È‚Á‚½D", Monnam(mtmp)); } } @@ -184,9 +201,15 @@ struct monst *bugler; /* monster that played instrument */ mtmp->mcanmove = 1; mtmp->mstrategy &= ~STRAT_WAITMASK; if (canseemon(mtmp)) +/*JP pline("%s is now ready for battle!", Monnam(mtmp)); +*/ + pline("%s‚͐킢‚̏€”õ‚ª®‚Á‚½I", Monnam(mtmp)); else +/*JP Norep("You hear the rattle of battle gear being readied."); +*/ + Norep("‚ ‚È‚½‚͐킢‚̏€”õ‚ª®‚Á‚½‚±‚Æ‚ðŽ¦‚·‰¹‚ð•·‚¢‚½D"); } else if ((distm = ((bugler == &youmonst) ? distu(mtmp->mx, mtmp->my) : dist2(bugler->mx, bugler->my, mtmp->mx, @@ -267,12 +290,21 @@ int force; if (mtmp->mundetected && is_hider(mtmp->data)) { mtmp->mundetected = 0; if (cansee(x, y)) +/*JP pline("%s is shaken loose from the ceiling!", +*/ + pline("%s‚Í—h‚·‚ç‚êC“Vˆä‚©‚ç—Ž‚¿‚Ä‚«‚½I", Amonnam(mtmp)); else +/*JP You_hear("a thumping sound."); +*/ + You_hear("ƒhƒ“ƒhƒ“‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D"); if (x == u.ux && y == u.uy) +/*JP You("easily dodge the falling %s.", mon_nam(mtmp)); +*/ + You("—Ž‚¿‚Ä‚«‚½%s‚ðŠÈ’P‚É‚©‚킵‚½D", mon_nam(mtmp)); newsym(x, y); } } @@ -280,26 +312,41 @@ int force; switch (levl[x][y].typ) { case FOUNTAIN: /* Make the fountain disappear */ if (cansee(x, y)) +/*JP pline_The("fountain falls into a chasm."); +*/ + pline("ò‚Í’nŠ„‚ê‚É—Ž‚¿‚½D"); goto do_pit; case SINK: if (cansee(x, y)) +/*JP pline_The("kitchen sink falls into a chasm."); +*/ + pline("—¬‚µ‘ä‚Í’nŠ„‚ê‚É—Ž‚¿‚½D"); goto do_pit; case ALTAR: if (Is_astralevel(&u.uz) || Is_sanctum(&u.uz)) break; if (cansee(x, y)) +/*JP pline_The("altar falls into a chasm."); +*/ + pline("Õ’d‚Í’nŠ„‚ê‚É—Ž‚¿‚½D"); goto do_pit; case GRAVE: if (cansee(x, y)) +/*JP pline_The("headstone topples into a chasm."); +*/ + pline("•æÎ‚Í•ö‚ꂳ‚Á‚½D"); goto do_pit; case THRONE: if (cansee(x, y)) +/*JP pline_The("throne falls into a chasm."); +*/ + pline("‹ÊÀ‚Í’nŠ„‚ê‚É—Ž‚¿‚½D"); /* Falls into next case */ case ROOM: case CORR: /* Try to make a pit */ @@ -325,9 +372,15 @@ int force; if ((otmp = sobj_at(BOULDER, x, y)) != 0) { if (cansee(x, y)) +#if 0 /*JP*/ pline("KADOOM! The boulder falls into a chasm%s!", ((x == u.ux) && (y == u.uy)) ? " below you" : ""); +#else + pline("ƒhƒh[ƒ“IŠâ‚Í%s’nŠ„‚ê‚É—Ž‚¿‚½I", + ((x == u.ux) && (y == u.uy)) ? "‚ ‚È‚½‚̉º‚Ì" + : ""); +#endif if (mtmp) mtmp->mtrapped = 0; obj_extract_self(otmp); @@ -344,20 +397,33 @@ int force; mtmp->mtrapped = 1; if (!m_already_trapped) { /* suppress messages */ if (cansee(x, y)) +/*JP pline("%s falls into a chasm!", +*/ + pline("%s‚Í’nŠ„‚ê‚É—Ž‚¿‚½I", Monnam(mtmp)); else if (humanoid(mtmp->data)) +/*JP You_hear("a scream!"); +*/ + You_hear("‹©‚ѐº‚ð•·‚¢‚½I"); } /* Falling is okay for falling down within a pit from jostling too */ +/*JP mselftouch(mtmp, "Falling, ", TRUE); +*/ + mselftouch(mtmp, "—Ž‰º’†C", TRUE); if (mtmp->mhp > 0) if ((mtmp->mhp -= rnd(m_already_trapped ? 4 : 6)) <= 0) { if (!cansee(x, y)) +/*JP pline("It is destroyed!"); +*/ + pline("‰½ŽÒ‚©‚ÍŽ€‚ñ‚¾I"); else { +#if 0 /*JP*/ You("destroy %s!", mtmp->mtame ? x_monnam( @@ -368,6 +434,12 @@ int force; : 0, FALSE) : mon_nam(mtmp)); +#else + pline("%s%s‚ÍŽ€‚ñ‚¾I", + mtmp->mtame + ? "‚©‚í‚¢‚»‚¤‚È" : "", + mon_nam(mtmp)); +#endif } xkilled(mtmp, 0); } @@ -376,19 +448,36 @@ int force; if (Levitation || Flying || is_clinger(youmonst.data)) { if (!tu_pit) { /* no pit here previously */ +/*JP pline("A chasm opens up under you!"); +*/ + pline("’nŠ„‚ꂪ‘«Œ³‚ÉŠJ‚¢‚½I"); +/*JP You("don't fall in!"); +*/ + You("—Ž‚¿‚È‚©‚Á‚½I"); } } else if (!tu_pit || !u.utrap || (u.utrap && u.utraptype != TT_PIT)) { /* no pit here previously, or you were not in it even it there was */ +/*JP You("fall into a chasm!"); +*/ + You("’nŠ„‚ê‚É—Ž‚¿‚½I"); u.utrap = rn1(6, 2); u.utraptype = TT_PIT; +#if 0 /*JP*/ losehp(Maybe_Half_Phys(rnd(6)), "fell into a chasm", NO_KILLER_PREFIX); +#else + losehp(Maybe_Half_Phys(rnd(6)), + "’nŠ„‚ê‚É—Ž‚¿‚Ä", NO_KILLER_PREFIX); +#endif +/*JP selftouch("Falling, you"); +*/ + selftouch("—Ž‚¿‚È‚ª‚çC‚ ‚È‚½‚Í"); } else if (u.utrap && u.utraptype == TT_PIT) { boolean keepfooting = ((Fumbling && !rn2(5)) @@ -415,7 +504,10 @@ int force; if (levl[x][y].doormask == D_NODOOR) goto do_pit; if (cansee(x, y)) +/*JP pline_The("door collapses."); +*/ + pline_The("”à‚Í‚±‚È‚²‚È‚É‚È‚Á‚½D"); if (*in_rooms(x, y, SHOPBASE)) add_damage(x, y, 0L); levl[x][y].doormask = D_NODOOR; @@ -462,23 +554,35 @@ struct obj *instr; #endif /* MAC || AMIGA || VPIX_MUSIC || PCMUSIC */ if (!do_spec) +/*JP pline("What you produce is quite far from music..."); +*/ + pline("‚ ‚È‚½‚ª‘t‚Å‚½‚à‚͉̂¹Šy‚Æ‚Í‚Æ‚Ä‚àŒÄ‚ׂȂ¢DDD"); else +/*JP You("start playing %s.", the(xname(instr))); +*/ + You("%s‚ð‘t‚Å‚Í‚¶‚ß‚½D", the(xname(instr))); switch (instr->otyp) { case MAGIC_FLUTE: /* Make monster fall asleep */ if (do_spec && instr->spe > 0) { consume_obj_charge(instr, TRUE); +/*JP You("produce %s music.", Hallucination ? "piped" : "soft"); +*/ + You("%s‚ð‘t‚Å‚½D", Hallucination ? "‚a‚f‚l" : "“î‚ç‚©‚¢‹È"); put_monsters_to_sleep(u.ulevel * 5); exercise(A_DEX, TRUE); break; } /* else FALLTHRU */ case WOODEN_FLUTE: /* May charm snakes */ do_spec &= (rn2(ACURR(A_DEX)) + u.ulevel > 25); +/*JP pline("%s.", Tobjnam(instr, do_spec ? "trill" : "toot")); +*/ + pline("%s‚ð%s‚½D", xname(instr), do_spec ? "‘t‚Å" : "‚¢"); if (do_spec) charm_snakes(u.ulevel * 3); exercise(A_DEX, TRUE); @@ -489,13 +593,19 @@ struct obj *instr; consume_obj_charge(instr, TRUE); if (!getdir((char *) 0)) { +/*JP pline("%s.", Tobjnam(instr, "vibrate")); +*/ + pline("%s‚͐k‚¦‚½D", xname(instr)); break; } else if (!u.dx && !u.dy && !u.dz) { if ((damage = zapyourself(instr, TRUE)) != 0) { char buf[BUFSZ]; +/*JP Sprintf(buf, "using a magical horn on %sself", uhim()); +*/ + Strcpy(buf, "Ž©•ªŽ©g‚Ì–‚–@‚̃zƒ‹ƒ“‚̗͂𗁂тÄ"); losehp(damage, buf, KILLED_BY); /* fire or frost damage */ } } else { @@ -506,12 +616,18 @@ struct obj *instr; break; } /* else FALLTHRU */ case TOOLED_HORN: /* Awaken or scare monsters */ +/*JP You("produce a frightful, grave sound."); +*/ + You("gk‚¢‚·‚é‚悤‚ÈŽ€ŽÒ‚̉¹Šy‚ð‘t‚Å‚½D"); awaken_monsters(u.ulevel * 30); exercise(A_WIS, FALSE); break; case BUGLE: /* Awaken & attract soldiers */ +/*JP You("extract a loud noise from %s.", the(xname(instr))); +*/ + You("%s‚©‚ç‘å‚«‚ÈŽ¨á‚è‚ȉ¹‚ðo‚µ‚½D", the(xname(instr))); awaken_soldiers(&youmonst); exercise(A_WIS, FALSE); break; @@ -519,15 +635,23 @@ struct obj *instr; if (do_spec && instr->spe > 0) { consume_obj_charge(instr, TRUE); +/*JP pline("%s very attractive music.", Tobjnam(instr, "produce")); +*/ + pline("%s‚Í‚Æ‚Ä‚à–£—Í“I‚ȉ¹Šy‚ð‘t‚Å‚½D", xname(instr)); charm_monsters((u.ulevel - 1) / 3 + 1); exercise(A_DEX, TRUE); break; } /* else FALLTHRU */ case WOODEN_HARP: /* May calm Nymph */ do_spec &= (rn2(ACURR(A_DEX)) + u.ulevel > 25); +#if 0 /*JP*/ pline("%s %s.", The(xname(instr)), do_spec ? "produces a lilting melody" : "twangs"); +#else + You("%sD", + do_spec ? "Œy‰õ‚ȉ¹Šy‚ð‘t‚Å‚½" : "ƒ|ƒ[ƒ“‚Æ‚¢‚¤‰¹‚ðo‚µ‚½"); +#endif if (do_spec) calm_nymphs(u.ulevel * 3); exercise(A_DEX, TRUE); @@ -536,8 +660,14 @@ struct obj *instr; if (do_spec && instr->spe > 0) { consume_obj_charge(instr, TRUE); +/*JP You("produce a heavy, thunderous rolling!"); +*/ + You("dŒú‚È—‹‚̂悤‚ȉ¹‚ð‘t‚Å‚½I"); +/*JP pline_The("entire dungeon is shaking around you!"); +*/ + pline("‚ ‚È‚½‚̉ñ‚è‚Ì–À‹{‚ª—h‚ꂽI"); do_earthquake((u.ulevel - 1) / 3 + 1); /* shake up monsters in a much larger radius... */ awaken_monsters(ROWNO * COLNO); @@ -545,7 +675,10 @@ struct obj *instr; break; } /* else FALLTHRU */ case LEATHER_DRUM: /* Awaken monsters */ +/*JP You("beat a deafening row!"); +*/ + You("Ž¨‚ª•·‚±‚¦‚È‚­‚È‚é‚­‚ç‚¢’@‚¢‚½I"); awaken_monsters(u.ulevel * 40); incr_itimeout(&HDeaf, rn1(20, 30)); exercise(A_WIS, FALSE); @@ -570,7 +703,10 @@ struct obj *instr; boolean ok; if (Underwater) { +/*JP You_cant("play music underwater!"); +*/ + You("…‚Ì’†‚ł͉¹Šy‚ð‘t‚Å‚ç‚ê‚È‚¢I"); return 0; } else if ((instr->otyp == WOODEN_FLUTE || instr->otyp == MAGIC_FLUTE || instr->otyp == TOOLED_HORN || instr->otyp == FROST_HORN @@ -580,19 +716,28 @@ struct obj *instr; return 0; } if (instr->otyp != LEATHER_DRUM && instr->otyp != DRUM_OF_EARTHQUAKE) { +/*JP c = ynq("Improvise?"); +*/ + c = ynq("‘¦‹»‚ʼn‰‘t‚·‚éH"); if (c == 'q') goto nevermind; } if (c == 'n') { if (u.uevent.uheard_tune == 2) +/*JP c = ynq("Play the passtune?"); +*/ + c = ynq("ƒR[ƒh‚ð‰‰‘t‚·‚éH"); if (c == 'q') { goto nevermind; } else if (c == 'y') { Strcpy(buf, tune); } else { +/*JP getlin("What tune are you playing? [5 notes, A-G]", buf); +*/ + getlin("‚ǂ̂悤‚È’²‚×‚ð‰‰‘t‚µ‚Ü‚·‚©H[A-G ‚©‚ç5‰¹‚ð‚¢‚ê‚Ä‚Ë]", buf); (void) mungspaces(buf); if (*buf == '\033') goto nevermind; @@ -610,7 +755,10 @@ struct obj *instr; *s = 'B'; } } +/*JP You("extract a strange sound from %s!", the(xname(instr))); +*/ + You("%s‚©‚çŠï–­‚ȉ¹‚ðo‚µ‚½I", the(xname(instr))); #ifdef UNIX386MUSIC /* if user is at the console, play through the console speaker */ if (atconsole()) @@ -695,14 +843,27 @@ struct obj *instr; } if (tumblers) if (gears) +#if 0 /*JP*/ You_hear("%d tumbler%s click and %d gear%s turn.", tumblers, plur(tumblers), gears, plur(gears)); +#else + You_hear("%d‚Ì‹à‹ï‚ªƒJƒ`‚Á‚Æ‚È‚èC%d‚ÌŽ•ŽÔ‚ª‚Ü‚í‚鉹‚ð•·‚¢‚½D", + tumblers, gears); +#endif else +#if 0 /*JP*/ You_hear("%d tumbler%s click.", tumblers, plur(tumblers)); +#else + You_hear("%d‚Ì‹à‹ï‚ªƒJƒ`‚Á‚ƂȂ鉹‚ð•·‚¢‚½D", + tumblers); +#endif else if (gears) { +/*JP You_hear("%d gear%s turn.", gears, plur(gears)); +*/ + You_hear("%d‚ÌŽ•ŽÔ‚ª‰ñ‚鉹‚ð•·‚¢‚½D", gears); /* could only get `gears == 5' by playing five correct notes followed by excess; otherwise, tune would have matched above */ @@ -741,7 +902,10 @@ atconsole() */ char *termtype = nh_getenv("TERM"); +/*JP return (!strcmp(termtype, "AT386") || !strcmp(termtype, "xterm")); +*/ + return (!strcmp(termtype, "AT386") || !strcmp(termtype, "xterm") || !strcmp(termtype, "kterm")); } STATIC_OVL void diff --git a/src/o_init.c b/src/o_init.c index 17f49b8..ed0cd54 100644 --- a/src/o_init.c +++ b/src/o_init.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" #include "lev.h" /* save & restore info */ @@ -418,7 +423,10 @@ dodiscovered() /* free after Robert Viduya */ winid tmpwin; tmpwin = create_nhwindow(NHW_MENU); +/*JP putstr(tmpwin, 0, "Discoveries"); +*/ + putstr(tmpwin, 0, "”­Œ©•¨ˆê——"); putstr(tmpwin, 0, ""); /* gather "unique objects" into a pseudo-class; note that they'll @@ -426,7 +434,10 @@ dodiscovered() /* free after Robert Viduya */ for (i = dis = 0; i < SIZE(uniq_objs); i++) if (objects[uniq_objs[i]].oc_name_known) { if (!dis++) +/*JP putstr(tmpwin, iflags.menu_headings, "Unique items"); +*/ + putstr(tmpwin, iflags.menu_headings, "“ÁŽêƒAƒCƒeƒ€"); Sprintf(buf, " %s", OBJ_NAME(objects[uniq_objs[i]])); putstr(tmpwin, 0, buf); ++ct; @@ -462,7 +473,10 @@ dodiscovered() /* free after Robert Viduya */ } } if (ct == 0) { +/*JP You("haven't discovered anything yet..."); +*/ + You("‚Ü‚¾‰½‚à”­Œ©‚µ‚Ä‚¢‚È‚¢DDD"); } else display_nhwindow(tmpwin, TRUE); destroy_nhwindow(tmpwin); diff --git a/src/objnam.c b/src/objnam.c index 18d78fe..bd32b66 100644 --- a/src/objnam.c +++ b/src/objnam.c @@ -2,10 +2,20 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" /* "an uncursed greased partly eaten guardian naga hatchling [corpse]" */ +#if 0 /*JP*/ #define PREFIX 80 /* (56) */ +#else +/* uŽô‚í‚ê‚Ä‚¢‚È‚¢–û‚Ì“h‚ç‚ꂽH‚ׂ©‚¯‚̃Nƒƒ}ƒeƒBƒbƒNEƒhƒ‰ƒSƒ“(‚ÌŽ€‘Ì)v*/ +#define PREFIX 100 +#endif #define SCHAR_LIM 127 #define NUMOBUF 12 @@ -20,6 +30,13 @@ STATIC_DCL boolean FDECL(singplur_lookup, (char *, char *, BOOLEAN_P, const char *const *)); STATIC_DCL char *FDECL(singplur_compound, (char *)); STATIC_DCL char *FDECL(xname_flags, (struct obj *, unsigned)); +#if 1 /*JP*/ +static char *FDECL(substitute, (char *, char *, char *)); +static char *FDECL(transpose, (char *buf,char *)); +static char *FDECL(delete, (char *, char *str)); +static int FDECL(digit_8, (int)); +static int FDECL(atoi_8, (const char *)); +#endif struct Jitem { int item; @@ -63,7 +80,7 @@ register const char *pref; register int i = (int) strlen(pref); if (i > PREFIX) { - impossible("PREFIX too short (for %d).", i); + impossible("PREFIX too short (for %d).%s//%s", i, s, pref); return s; } s -= i; @@ -106,26 +123,49 @@ register int otyp; if (Role_if(PM_SAMURAI) && Japanese_item_name(otyp)) actualn = Japanese_item_name(otyp); +#if 1 /*JP*/ + if(un) + Sprintf(buf, "%s‚ƌĂ΂ê‚é", un); +#endif switch (ocl->oc_class) { case COIN_CLASS: +/*JP Strcpy(buf, "coin"); +*/ + Strcat(buf, "‹à‰Ý"); break; case POTION_CLASS: +/*JP Strcpy(buf, "potion"); +*/ + Strcat(buf, "–ò"); break; case SCROLL_CLASS: +/*JP Strcpy(buf, "scroll"); +*/ + Strcat(buf, "Šª•¨"); break; case WAND_CLASS: +/*JP Strcpy(buf, "wand"); +*/ + Strcat(buf, "ñ"); break; case SPBOOK_CLASS: +/*JP Strcpy(buf, "spellbook"); +*/ + Strcat(buf, "–‚–@‘"); break; case RING_CLASS: +/*JP Strcpy(buf, "ring"); +*/ + Strcat(buf, "Žw—Ö"); break; case AMULET_CLASS: +#if 0 /*JP*/ if (nn) Strcpy(buf, actualn); else @@ -135,8 +175,24 @@ register int otyp; if (dn) Sprintf(eos(buf), " (%s)", dn); return buf; +#else + if (nn) + Strcat(buf, actualn); + else if(un) + Strcat(buf, "–‚œ‚¯"); + break; +#endif +#if 1 /*JP*/ + case GEM_CLASS: + if(nn) + Strcat(buf, actualn); + else if(un) + Strcat(buf, "•óÎ"); + break; +#endif default: if (nn) { +#if 0 /*JP*/ Strcpy(buf, actualn); if (GemStone(otyp)) Strcat(buf, " stone"); @@ -144,27 +200,49 @@ register int otyp; Sprintf(eos(buf), " called %s", un); if (dn) Sprintf(eos(buf), " (%s)", dn); +#else + Strcat(buf, actualn); +#endif } else { +#if 0 /*JP*/ Strcpy(buf, dn ? dn : actualn); if (ocl->oc_class == GEM_CLASS) Strcat(buf, (ocl->oc_material == MINERAL) ? " stone" : " gem"); if (un) Sprintf(eos(buf), " called %s", un); +#else + Strcat(buf, dn ? dn : actualn); +#endif } +#if 0 /*JP*/ return buf; +#else + break; +#endif } /* here for ring/scroll/potion/wand */ if (nn) { +#if 0 /*JP*/ if (ocl->oc_unique) Strcpy(buf, actualn); /* avoid spellbook of Book of the Dead */ else Sprintf(eos(buf), " of %s", actualn); +#else + Strcpy(buf, actualn); +#endif } +#if 0 /*JP*/ if (un) Sprintf(eos(buf), " called %s", un); +#endif if (dn) +#if 0 /*JP*/ Sprintf(eos(buf), " (%s)", dn); +#else + Sprintf(eos(buf), "(%s%s)", dn, + ocl->oc_class == POTION_CLASS ? "–ò" : ""); +#endif return buf; } @@ -224,6 +302,11 @@ char * fruitname(juice) boolean juice; /* whether or not to append " juice" to the name */ { +#if 1 /*JP*//*“ú–{Œê‚Å‚Í‚»‚±‚Ü‚Å‚µ‚È‚¢*/ + char *buf = nextobuf(); + Sprintf(buf, "%s%s", pl_fruit, juice ? "ƒWƒ…[ƒX" : ""); + return buf; +#else char *buf = nextobuf(); const char *fruit_nam = strstri(pl_fruit, " of "); @@ -234,6 +317,7 @@ boolean juice; /* whether or not to append " juice" to the name */ Sprintf(buf, "%s%s", makesingular(fruit_nam), juice ? " juice" : ""); return buf; +#endif } char * @@ -286,41 +370,83 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */ } if (obj_is_pname(obj)) +#if 0 /*JP*/ + goto nameit; +#else + { + Strcat(buf, ONAME(obj)); goto nameit; + } +#endif +#if 1 /*JP*/ + if (has_oname(obj) && dknown) { + Strcat(buf, ONAME(obj)); + Strcat(buf, "‚Æ–¼‚¯‚ç‚ꂽ"); + } +#endif switch (obj->oclass) { case AMULET_CLASS: if (!dknown) +/*JP Strcpy(buf, "amulet"); +*/ + Strcat(buf, "–‚œ‚¯"); else if (typ == AMULET_OF_YENDOR || typ == FAKE_AMULET_OF_YENDOR) /* each must be identified individually */ Strcpy(buf, known ? actualn : dn); else if (nn) Strcpy(buf, actualn); else if (un) +/*JP Sprintf(buf, "amulet called %s", un); +*/ + Sprintf(eos(buf), "%s‚ƌĂ΂ê‚é–‚œ‚¯", un); else +/*JP Sprintf(buf, "%s amulet", dn); +*/ + Sprintf(eos(buf), "%s", dn); break; case WEAPON_CLASS: if (is_poisonable(obj) && obj->opoisoned) +/*JP Strcpy(buf, "poisoned "); +*/ + Strcpy(buf, "“Å‚Ì“h‚ç‚ꂽ"); case VENOM_CLASS: case TOOL_CLASS: +#if 1 /*JP*/ + if (typ == FIGURINE) + Sprintf(eos(buf), "%s‚Ì", mons[obj->corpsenm].mname); +#endif if (typ == LENSES) +/*JP Strcpy(buf, "pair of "); +*/ + Strcpy(buf, "ˆê‘΂Ì"); else if (is_wet_towel(obj)) +/*JP Strcpy(buf, (obj->spe < 3) ? "moist " : "wet "); +*/ + Strcpy(buf, (obj->spe < 3) ? "Ž¼‚Á‚½" : "”G‚ꂽ"); if (!dknown) Strcat(buf, dn ? dn : actualn); else if (nn) Strcat(buf, actualn); else if (un) { +#if 0 /*JP*/ Strcat(buf, dn ? dn : actualn); Strcat(buf, " called "); Strcat(buf, un); +#else + Strcat(buf, un); + Strcat(buf, "‚ƌĂ΂ê‚é"); + Strcat(buf, dn ? dn : actualn); +#endif } else Strcat(buf, dn ? dn : actualn); +#if 0 /*JP*/ /*‚±‚ê‚͌ꏇ‚ÌŠÖŒW‚©‚çã‚Ì•û‚Å’è‹`*/ /* If we use an() here we'd have to remember never to use */ /* it whenever calling doname() or xname(). */ if (typ == FIGURINE && omndx != NON_PM) { @@ -328,6 +454,9 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */ index(vowels, *mons[omndx].mname) ? "n" : "", mons[omndx].mname); } else if (is_wet_towel(obj)) { +#else + if (is_wet_towel(obj)) { +#endif if (wizard) Sprintf(eos(buf), " (%d)", obj->spe); } @@ -335,25 +464,38 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */ case ARMOR_CLASS: /* depends on order of the dragon scales objects */ if (typ >= GRAY_DRAGON_SCALES && typ <= YELLOW_DRAGON_SCALES) { +/*JP Sprintf(buf, "set of %s", actualn); +*/ + Sprintf(buf, "%sˆêŽ®", actualn); break; } if (is_boots(obj) || is_gloves(obj)) +/*JP Strcpy(buf, "pair of "); +*/ + Strcat(buf,"ˆê‘΂Ì"); if (obj->otyp >= ELVEN_SHIELD && obj->otyp <= ORCISH_SHIELD && !dknown) { +/*JP Strcpy(buf, "shield"); +*/ + Strcat(buf, "‚"); break; } if (obj->otyp == SHIELD_OF_REFLECTION && !dknown) { +/*JP Strcpy(buf, "smooth shield"); +*/ + Strcat(buf, "‚·‚ׂ·‚ׂµ‚½‚"); break; } if (nn) Strcat(buf, actualn); else if (un) { +#if 0 /*JP*/ if (is_boots(obj)) Strcat(buf, "boots"); else if (is_gloves(obj)) @@ -368,6 +510,22 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */ Strcpy(buf, "armor"); Strcat(buf, " called "); Strcat(buf, un); +#else + char *p; + if (is_boots(obj)) + p = "ŒC"; + else if (is_gloves(obj)) + p = "¬Žè"; + else if (is_cloak(obj)) + p = "ƒNƒ[ƒN"; + else if (is_helmet(obj)) + p = "Š•"; + else if (is_shield(obj)) + p = "‚"; + else + p = "ŠZ"; + Sprintf(eos(buf), "%s‚ƌĂ΂ê‚é%s", un, p); +#endif } else Strcat(buf, dn); break; @@ -396,26 +554,47 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */ if (Is_pudding(obj)) { Sprintf(buf, "%s%s", (obj->owt < 100) +/*JP ? "small " +*/ + ? "¬‚³‚¢" : (obj->owt > 500) +/*JP ? "very large " +*/ + ? "‚Æ‚Ä‚à‘å‚«‚¢" : (obj->owt > 300) +/*JP ? "large " +*/ + ? "‘å‚«‚¢" : "", actualn); break; } +#if 0 /*JP*/ Strcpy(buf, actualn); if (typ == TIN && known) tin_details(obj, omndx, buf); +#else + if (typ == TIN && known) + /*JP u`‚Ì“÷‚́v*/ + tin_details(obj, omndx, buf); + Strcat(buf, actualn); +#endif break; case COIN_CLASS: case CHAIN_CLASS: +#if 0 /*JP*/ Strcpy(buf, actualn); +#else + Strcat(buf, actualn); +#endif break; case ROCK_CLASS: if (typ == STATUE && omndx != NON_PM) +#if 0 /*JP*/ Sprintf(buf, "%s%s of %s%s", (Role_if(PM_ARCHEOLOGIST) && (obj->spe & STATUE_HISTORIC)) ? "historic " @@ -429,63 +608,134 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */ ? "an " : "a ", mons[omndx].mname); +#else + Sprintf(eos(buf), "%s%s‚Ì%s", + (Role_if(PM_ARCHEOLOGIST) && (obj->spe & STATUE_HISTORIC)) + ? "—ðŽj“I‚È" + : "", + mons[obj->corpsenm].mname, actualn); +#endif else +#if 0 /*JP*/ Strcpy(buf, actualn); +#else + Strcat(buf, actualn); +#endif break; case BALL_CLASS: +#if 0 /*JP*/ Sprintf(buf, "%sheavy iron ball", (obj->owt > ocl->oc_weight) ? "very " : ""); +#else + Sprintf(eos(buf), "%sd‚¢“S‹…", + (obj->owt > ocl->oc_weight) ? "‚Æ‚Ä‚à" : ""); +#endif break; case POTION_CLASS: if (dknown && obj->odiluted) +/*JP Strcpy(buf, "diluted "); +*/ + Strcat(buf, "”–‚Ü‚Á‚½"); if (nn || un || !dknown) { +#if 0 /*JP*/ Strcat(buf, "potion"); if (!dknown) break; +#else + if (!dknown){ + Strcat(buf, "–ò"); + break; + } +#endif if (nn) { +#if 0 /*JP*/ Strcat(buf, " of "); +#endif if (typ == POT_WATER && bknown && (obj->blessed || obj->cursed)) { +/*JP Strcat(buf, obj->blessed ? "holy " : "unholy "); +*/ + Strcat(buf, obj->blessed ? "¹" : "•sò‚È"); } Strcat(buf, actualn); } else { +#if 0 /*JP*/ Strcat(buf, " called "); Strcat(buf, un); +#else + Strcat(buf, un); + Strcat(buf, "‚ƌĂ΂ê‚é–ò"); +#endif } } else { Strcat(buf, dn); +/*JP Strcat(buf, " potion"); +*/ + Strcat(buf, "–ò"); } break; case SCROLL_CLASS: +#if 0 /*JP*/ Strcpy(buf, "scroll"); if (!dknown) break; +#else + if(!dknown){ + Strcat(buf,"Šª•¨"); + break; + } +#endif if (nn) { +#if 0 /*JP*/ Strcat(buf, " of "); +#endif Strcat(buf, actualn); } else if (un) { +#if 0 /*JP*/ Strcat(buf, " called "); Strcat(buf, un); +#else + Strcat(buf, un); + Strcat(buf, "‚ƌĂ΂ê‚銪•¨"); +#endif } else if (ocl->oc_magic) { +#if 0 /*JP*/ Strcat(buf, " labeled "); +#endif Strcat(buf, dn); } else { +#if 0 /*JP*/ Strcpy(buf, dn); Strcat(buf, " scroll"); +#else + Strcat(buf, dn); +#endif } break; case WAND_CLASS: if (!dknown) +/*JP Strcpy(buf, "wand"); +*/ + Strcat(buf, "ñ"); else if (nn) +/*JP Sprintf(buf, "wand of %s", actualn); +*/ + Strcat(buf, actualn); else if (un) +/*JP Sprintf(buf, "wand called %s", un); +*/ + Sprintf(eos(buf), "%s‚ƌĂ΂ê‚éñ", un); else +/*JP Sprintf(buf, "%s wand", dn); +*/ + Strcat(buf, dn); break; case SPBOOK_CLASS: if (typ == SPE_NOVEL) { /* 3.6 tribute */ @@ -500,48 +750,88 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */ break; /* end of tribute */ } else if (!dknown) { +/*JP Strcpy(buf, "spellbook"); +*/ + Strcat(buf, "–‚–@‘"); } else if (nn) { +#if 0 /*JP*/ if (typ != SPE_BOOK_OF_THE_DEAD) Strcpy(buf, "spellbook of "); +#endif Strcat(buf, actualn); } else if (un) { +/*JP Sprintf(buf, "spellbook called %s", un); +*/ + Sprintf(eos(buf), "%s‚ƌĂ΂ê‚é–‚–@‘", un); } else +/*JP Sprintf(buf, "%s spellbook", dn); +*/ + Sprintf(eos(buf), "%s", dn); break; case RING_CLASS: if (!dknown) +/*JP Strcpy(buf, "ring"); +*/ + Strcat(buf, "Žw—Ö"); else if (nn) +/*JP Sprintf(buf, "ring of %s", actualn); +*/ + Strcat(buf, actualn); else if (un) +/*JP Sprintf(buf, "ring called %s", un); +*/ + Sprintf(eos(buf), "%s‚ƌĂ΂ê‚éŽw—Ö", un); else +/*JP Sprintf(buf, "%s ring", dn); +*/ + Strcat(buf, dn); break; case GEM_CLASS: { +/*JP const char *rock = (ocl->oc_material == MINERAL) ? "stone" : "gem"; +*/ + const char *rock = (ocl->oc_material == MINERAL) ? "Î" : "•óÎ"; if (!dknown) { +#if 0 /*JP*/ Strcpy(buf, rock); +#else + Strcat(buf, rock); +#endif } else if (!nn) { if (un) +/*JP Sprintf(buf, "%s called %s", rock, un); +*/ + Sprintf(eos(buf), "%s‚ƌĂ΂ê‚é%s", un, rock); else +/*JP Sprintf(buf, "%s %s", dn, rock); +*/ + Strcat(buf, dn); } else { Strcpy(buf, actualn); +#if 0 /*JP*/ if (GemStone(typ)) Strcat(buf, " stone"); +#endif } break; } default: Sprintf(buf, "glorkum %d %d %d", obj->oclass, typ, obj->spe); } +#if 0 /*JP*/ if (pluralize) Strcpy(buf, makeplural(buf)); +#endif if (obj->otyp == T_SHIRT && program_state.gameover) { char tmpbuf[BUFSZ]; @@ -549,6 +839,7 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */ Sprintf(eos(buf), " with text \"%s\"", tshirt_text(obj, tmpbuf)); } +#if 0 /*JP*/ if (has_oname(obj) && dknown) { Strcat(buf, " named "); nameit: @@ -557,6 +848,9 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */ if (!strncmpi(buf, "the ", 4)) buf += 4; +#else +nameit: +#endif return buf; } @@ -621,7 +915,10 @@ struct obj *obj; if (m_shot.n > 1 && m_shot.o == obj->otyp) { /* "the Nth arrow"; value will eventually be passed to an() or The(), both of which correctly handle this "the " prefix */ +/*JP Sprintf(tmpbuf, "the %d%s ", m_shot.i, ordin(m_shot.i)); +*/ + Sprintf(tmpbuf, "%d%s–Ú‚Ì", m_shot.i, numeral(obj)); onm = strprepend(onm, tmpbuf); } return onm; @@ -632,6 +929,7 @@ boolean the_unique_obj(obj) struct obj *obj; { +#if 0 /*JP*/ boolean known = (obj->known || iflags.override_ID); if (!obj->dknown && !iflags.override_ID) @@ -641,6 +939,9 @@ struct obj *obj; else return (boolean) (objects[obj->otyp].oc_unique && (known || obj->otyp == AMULET_OF_YENDOR)); +#else + return FALSE; +#endif } /* should monster type be prefixed with "the"? (mostly used for corpses) */ @@ -686,34 +987,65 @@ char *prefix; if (obj->oeroded && !iscrys) { switch (obj->oeroded) { case 2: +/*JP Strcat(prefix, "very "); +*/ + Strcat(prefix, "‚Æ‚Ä‚à"); break; case 3: +/*JP Strcat(prefix, "thoroughly "); +*/ + Strcat(prefix, "‚©‚È‚è"); break; } +/*JP Strcat(prefix, is_rustprone(obj) ? "rusty " : "burnt "); +*/ + Strcat(prefix, is_rustprone(obj) ? "ŽK‚Ñ‚½" : "‚‚¢‚½"); } if (obj->oeroded2 && !iscrys) { switch (obj->oeroded2) { case 2: +/*JP Strcat(prefix, "very "); +*/ + Strcat(prefix, "‚Æ‚Ä‚à"); break; case 3: +/*JP Strcat(prefix, "thoroughly "); +*/ + Strcat(prefix, "‚©‚È‚è"); break; } +/*JP Strcat(prefix, is_corrodeable(obj) ? "corroded " : "rotted "); +*/ + Strcat(prefix, is_corrodeable(obj) ? "•…H‚µ‚½" : "•…‚Á‚½"); } if (rknown && obj->oerodeproof) Strcat(prefix, iscrys +/*JP ? "fixed " +*/ + ? "ˆÀ’肵‚½" : is_rustprone(obj) +/*JP ? "rustproof " +*/ + ? "ŽK‚Ñ‚È‚¢" : is_corrodeable(obj) +#if 0 /*JP*/ ? "corrodeproof " /* "stainless"? */ +#else + ? "•…H‚µ‚È‚¢" /* "stainless"? */ +#endif : is_flammable(obj) +/*JP ? "fireproof " +*/ + ? "”R‚¦‚È‚¢" : ""); } @@ -730,6 +1062,9 @@ boolean with_price; the start of prefix instead of the end (Strcat is used on the end) */ register char *bp = xname(obj); +#if 1 /*JP*//*‡˜“ü‚ê‘Ö‚¦‚ÉŽg‚¤*/ + char preprefix[PREFIX]; +#endif if (iflags.override_ID) { known = cknown = bknown = lknown = TRUE; @@ -746,23 +1081,56 @@ boolean with_price; * combining both into one function taking a parameter. */ /* must check opoisoned--someone can have a weirdly-named fruit */ +#if 0 /*JP*/ if (!strncmp(bp, "poisoned ", 9) && obj->opoisoned) { bp += 9; ispoisoned = TRUE; } +#else + if (!strncmp(bp, "“Å‚Ì“h‚ç‚ꂽ", 12) && obj->opoisoned) { + bp += 12; + ispoisoned = TRUE; + } +#endif +#if 1 /*JP*/ + /* JP + *uŽq”L‚Ì‚½‚Ü‚Æ–¼‚¯‚ç‚ꂽŽ€‘́v‚æ‚èu‚½‚Ü‚Æ–¼‚¯‚ç‚ꂽŽq”L‚ÌŽ€‘́v + * ‚Ì‚Ù‚¤‚ªŽ©‘R‚Å‚ ‚éD + */ + { + char *tp; + preprefix[0] = '\0'; + if((tp = strstri(bp, "–¼‚¯‚ç‚ꂽ")) != NULL){ + tp += 12; /* u–¼‚¯‚ç‚ꂽv*/ + strncpy(preprefix, bp, tp - bp); + preprefix[tp - bp] = '\0'; + bp = tp; + } + Strcpy(prefix, ""); + } +#endif if (obj->quan != 1L) { +#if 0 /*JP*/ Sprintf(prefix, "%ld ", obj->quan); +#else /* “ú–{Œê‚Æ‚µ‚Ă͐”ŽŒ‚ª‚È‚¢‚Ì‚Í•sŽ©‘R */ + Sprintf(prefix, "%ld%s‚Ì", obj->quan, numeral(obj)); +#endif } else if (obj->otyp == CORPSE) { /* skip article prefix for corpses [else corpse_xname() would have to be taught how to strip it off again] */ *prefix = '\0'; +#if 0 /*JP*/ /* Š¥ŽŒ‚Í•s—v */ } else if (obj_is_pname(obj) || the_unique_obj(obj)) { if (!strncmpi(bp, "the ", 4)) bp += 4; Strcpy(prefix, "the "); } else { Strcpy(prefix, "a "); +#else /*prefix‚̏‰Šú‰»*/ + } else { + Strcpy(prefix, ""); +#endif } /* "empty" goes at the beginning, but item count goes at the end */ @@ -778,7 +1146,10 @@ boolean with_price; /* not bag of tricks: empty if container which has no contents */ : (Is_container(obj) || obj->otyp == STATUE) && !Has_contents(obj))) +/*JP Strcat(prefix, "empty "); +*/ + Strcat(prefix, "‹ó‚Ì"); if (bknown && obj->oclass != COIN_CLASS && (obj->otyp != POT_WATER || !objects[POT_WATER].oc_name_known @@ -787,9 +1158,15 @@ boolean with_price; * always allow "uncursed potion of water" */ if (obj->cursed) +/*JP Strcat(prefix, "cursed "); +*/ + Strcat(prefix, "Žô‚í‚ꂽ"); else if (obj->blessed) +/*JP Strcat(prefix, "blessed "); +*/ + Strcat(prefix, "j•Ÿ‚³‚ꂽ"); else if (!iflags.implicit_uncursed /* For most items with charges or +/-, if you know how many * charges are left or what the +/- is, then you must have @@ -810,20 +1187,35 @@ boolean with_price; && obj->otyp != FAKE_AMULET_OF_YENDOR && obj->otyp != AMULET_OF_YENDOR && !Role_if(PM_PRIEST))) +/*JP Strcat(prefix, "uncursed "); +*/ + Strcat(prefix, "Žô‚í‚ê‚Ä‚¢‚È‚¢"); } if (lknown && Is_box(obj)) { if (obj->obroken) +/*JP Strcat(prefix, "unlockable "); +*/ + Strcat(prefix, "Œ®‚̉ó‚ꂽ"); else if (obj->olocked) +/*JP Strcat(prefix, "locked "); +*/ + Strcat(prefix, "Œ®‚ÌŠ|‚©‚Á‚½"); else +/*JP Strcat(prefix, "unlocked "); +*/ + Strcat(prefix, "Œ®‚ÌŠ|‚©‚Á‚Ä‚¢‚È‚¢"); } if (obj->greased) +/*JP Strcat(prefix, "greased "); +*/ + Strcat(prefix, "–û‚Ì“h‚ç‚ꂽ"); if (cknown && Has_contents(obj)) { /* we count all objects (obj->quantity); perhaps we should @@ -833,18 +1225,28 @@ boolean with_price; when there are 2 scrolls plus 1000 gold pieces */ long itemcount = count_contents(obj, FALSE, FALSE, TRUE); +#if 0 /*JP*/ Sprintf(eos(bp), " containing %ld item%s", itemcount, plur(itemcount)); +#else + Sprintf(eos(bp), "(%ldŒÂ“ü‚Á‚Ä‚¢‚é)", itemcount); +#endif } switch (obj->oclass) { case AMULET_CLASS: if (obj->owornmask & W_AMUL) +/*JP Strcat(bp, " (being worn)"); +*/ + Strcat(bp, "(g‚ɂ‚¯‚Ä‚¢‚é)"); break; case WEAPON_CLASS: if (ispoisoned) +/*JP Strcat(prefix, "poisoned "); +*/ + Strcat(prefix, "“Å‚Ì“h‚ç‚ꂽ"); plus: add_erosion_words(obj, prefix); if (known) { @@ -854,38 +1256,67 @@ boolean with_price; break; case ARMOR_CLASS: if (obj->owornmask & W_ARMOR) +/*JP Strcat(bp, (obj == uskin) ? " (embedded in your skin)" +*/ + Strcat(bp, (obj == uskin) ? "(”§‚É–„‚ß‚±‚Ü‚ê‚Ä‚¢‚é)" +/*JP : " (being worn)"); +*/ + : "(g‚ɂ‚¯‚Ä‚¢‚é)"); goto plus; case TOOL_CLASS: /* weptools already get this done when we go to the +n code */ if (!is_weptool(obj)) add_erosion_words(obj, prefix); if (obj->owornmask & (W_TOOL /* blindfold */ | W_SADDLE)) { +/*JP Strcat(bp, " (being worn)"); +*/ + Strcat(bp, "(g‚ɂ‚¯‚Ä‚¢‚é)"); break; } if (obj->otyp == LEASH && obj->leashmon != 0) { +/*JP Strcat(bp, " (in use)"); +*/ + Strcat(bp, "(Œ‹‚т‚¯‚Ä‚¢‚é)"); break; } if (is_weptool(obj)) goto plus; if (obj->otyp == CANDELABRUM_OF_INVOCATION) { +#if 0 /*JP*/ if (!obj->spe) Strcpy(tmpbuf, "no"); else Sprintf(tmpbuf, "%d", obj->spe); Sprintf(eos(bp), " (%s candle%s%s)", tmpbuf, plur(obj->spe), !obj->lamplit ? " attached" : ", lit"); +#else + if(!obj->spe) + Sprintf(eos(bp), "(ˆê–{‚àŽæ‚è‚‚¯‚ç‚ê‚Ä‚¢‚È‚¢)"); + else { + if(!obj->lamplit) + Sprintf(eos(bp), "(%d–{Žæ‚è‚‚¯‚ç‚ê‚Ä‚¢‚é)", obj->spe); + else + Sprintf(eos(bp), "(%d–{Œõ‚Á‚Ä‚¢‚é)", obj->spe); + } +#endif break; } else if (obj->otyp == OIL_LAMP || obj->otyp == MAGIC_LAMP || obj->otyp == BRASS_LANTERN || Is_candle(obj)) { if (Is_candle(obj) && obj->age < 20L * (long) objects[obj->otyp].oc_cost) +/*JP Strcat(prefix, "partly used "); +*/ + Strcat(prefix, "Žg‚¢‚³‚µ‚Ì"); if (obj->lamplit) +/*JP Strcat(bp, " (lit)"); +*/ + Strcat(bp, "(Œõ‚Á‚Ä‚¢‚é)"); break; } if (objects[obj->otyp].oc_charged) @@ -895,34 +1326,57 @@ boolean with_price; add_erosion_words(obj, prefix); charges: if (known) +/*JP Sprintf(eos(bp), " (%d:%d)", (int) obj->recharged, obj->spe); +*/ + Sprintf(eos(bp), "(%d:%d)", (int) obj->recharged, obj->spe); break; case POTION_CLASS: if (obj->otyp == POT_OIL && obj->lamplit) +/*JP Strcat(bp, " (lit)"); +*/ + Strcat(bp, "(Œõ‚Á‚Ä‚¢‚é)"); break; case RING_CLASS: add_erosion_words(obj, prefix); ring: if (obj->owornmask & W_RINGR) +/*JP Strcat(bp, " (on right "); +*/ + Strcat(bp, "(‰E"); if (obj->owornmask & W_RINGL) +/*JP Strcat(bp, " (on left "); +*/ + Strcat(bp, "(¶"); if (obj->owornmask & W_RING) { Strcat(bp, body_part(HAND)); Strcat(bp, ")"); } if (known && objects[obj->otyp].oc_charged) { +#if 1 /*JP*/ + Strcat(prefix, " "); +#endif Strcat(prefix, sitoa(obj->spe)); Strcat(prefix, " "); } break; case FOOD_CLASS: if (obj->oeaten) +/*JP Strcat(prefix, "partly eaten "); +*/ + Strcat(prefix, "H‚ׂ©‚¯‚Ì"); if (obj->otyp == CORPSE) { +#if 0 /*JP*/ Sprintf(prefix, "%s ", corpse_xname(obj, prefix, CXN_ARTICLE | CXN_NOCORPSE)); +#else + Sprintf(prefix, "%s‚Ì", + corpse_xname(obj, prefix, CXN_ARTICLE | CXN_NOCORPSE)); +#endif } else if (obj->otyp == EGG) { #if 0 /* corpses don't tell if they're stale either */ if (known && stale_egg(obj)) @@ -930,10 +1384,18 @@ boolean with_price; #endif if (omndx >= LOW_PM && (known || (mvitals[omndx].mvflags & MV_KNOWS_EGG))) { +#if 0 /*JP*/ Strcat(prefix, mons[omndx].mname); Strcat(prefix, " "); +#else + Strcat(prefix, mons[omndx].mname); + Strcat(prefix, "‚Ì"); +#endif if (obj->spe) +/*JP Strcat(bp, " (laid by you)"); +*/ + Strcat(bp, "(‚ ‚È‚½‚ªŽY‚ñ‚¾)"); } } if (obj->otyp == MEAT_RING) @@ -943,34 +1405,52 @@ boolean with_price; case CHAIN_CLASS: add_erosion_words(obj, prefix); if (obj->owornmask & W_BALL) +/*JP Strcat(bp, " (chained to you)"); +*/ + Strcat(bp, "(‚ ‚È‚½‚ÉŒq‚ª‚ê‚Ä‚¢‚é)"); break; } if ((obj->owornmask & W_WEP) && !mrg_to_wielded) { if (obj->quan != 1L) { +/*JP Strcat(bp, " (wielded)"); +*/ + Strcat(bp, "(‘•”õ‚µ‚Ä‚¢‚é)"); } else { const char *hand_s = body_part(HAND); if (bimanual(obj)) hand_s = makeplural(hand_s); +/*JP Sprintf(eos(bp), " (weapon in %s)", hand_s); +*/ + Sprintf(eos(bp), "(%s‚É‚µ‚Ä‚¢‚é)", hand_s); if (warn_obj_cnt && obj == uwep && (EWarn_of_mon & W_WEP) != 0L) { /* presumably can be felt when blind */ - Strcat(bp, " (glowing"); +#if 0 /*JP*/ + Strcat(bp, " ("); if (!Blind) - Sprintf(eos(bp), " %s", glow_color(obj->oartifact)); - Strcat(bp, ")"); + Sprintf(eos(bp), "%sF‚É", glow_color(obj->oartifact)); + Strcat(bp, "‹P‚¢‚Ä‚¢‚é)"); +#else +#endif } } } if (obj->owornmask & W_SWAPWEP) { if (u.twoweap) +/*JP Sprintf(eos(bp), " (wielded in other %s)", body_part(HAND)); +*/ + Sprintf(eos(bp), "(¶%s‚É‚µ‚Ä‚¢‚é)", body_part(HAND)); else +/*JP Strcat(bp, " (alternate weapon; not wielded)"); +*/ + Strcat(bp, "(—\”õ‚Ì•Ší;‘•”õ‚µ‚Ä‚¢‚È‚¢)"); } if (obj->owornmask & W_QUIVER) { switch (obj->oclass) { @@ -978,16 +1458,25 @@ boolean with_price; if (is_ammo(obj)) { if (objects[obj->otyp].oc_skill == -P_BOW) { /* Ammo for a bow */ +/*JP Strcat(bp, " (in quiver)"); +*/ + Strcat(bp, "(–î“›‚É“ü‚Á‚Ä‚¢‚é)"); break; } else { /* Ammo not for a bow */ +/*JP Strcat(bp, " (in quiver pouch)"); +*/ + Strcat(bp, "(’e“ü‚ê‚É“ü‚Á‚Ä‚¢‚é)"); break; } } else { /* Weapons not considered ammo */ +/*JP Strcat(bp, " (at the ready)"); +*/ + Strcat(bp, "(€”õ‚µ‚Ä‚¢‚é)"); break; } /* Small things and ammo not for a bow */ @@ -996,10 +1485,16 @@ boolean with_price; case WAND_CLASS: case COIN_CLASS: case GEM_CLASS: +/*JP Strcat(bp, " (in quiver pouch)"); +*/ + Strcat(bp, "(’e“ü‚ê‚É“ü‚Á‚Ä‚¢‚é)"); break; default: /* odd things */ +/*JP Strcat(bp, " (at the ready)"); +*/ + Strcat(bp, "(€”õ‚µ‚Ä‚¢‚é)"); } } if (!iflags.suppress_price && is_unpaid(obj)) { @@ -1014,6 +1509,7 @@ boolean with_price; if (price > 0) Sprintf(eos(bp), " (%ld %s)", price, currency(price)); } +#if 0 /*JP*//*“ú–{Œê‚Å‚Í•s—v*/ if (!strncmp(prefix, "a ", 2) && index(vowels, *(prefix + 2) ? *(prefix + 2) : *bp) && (*(prefix + 2) @@ -1023,13 +1519,19 @@ boolean with_price; Strcpy(prefix, "an "); Strcpy(prefix + 3, tmpbuf + 2); } +#endif /* show weight for items (debug tourist info) * aum is stolen from Crawl's "Arbitrary Unit of Measure" */ if (wizard) { Sprintf(eos(bp), " (%d aum)", obj->owt); } +#if 0 /*JP*/ bp = strprepend(bp, prefix); +#else /*JP:u–¼•t‚¯‚ç‚ꂽv‚ð–ß‚·*/ + Strcat(preprefix, prefix); + bp = strprepend(bp, preprefix); +#endif return bp; } @@ -1106,12 +1608,18 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */ const char *mname; if (omndx == NON_PM) { /* paranoia */ +/*JP mname = "thing"; +*/ + mname = "‰½‚©"; /* [Possible enhancement: check whether corpse has monster traits attached in order to use priestname() for priests and minions.] */ } else if (omndx == PM_ALIGNED_PRIEST) { /* avoid "aligned priest"; it just exposes internal details */ +/*JP mname = "priest"; +*/ + mname = "‘m—µ"; } else { mname = mons[omndx].mname; if (the_unique_pm(&mons[omndx]) || type_is_pname(&mons[omndx])) { @@ -1136,8 +1644,10 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */ Name causes it to assume a personal name and return Name as-is; that's usually the behavior wanted, but here we need to force "the" to precede capitalized unique monsters (pnames are handled above) */ +#if 0 /*JP*//*“ú–{Œê‚ɒ芥ŽŒ‚Í•s—v*/ if (the_prefix) Strcat(nambuf, "the "); +#endif if (!adjective || !*adjective) { /* normal case: newt corpse */ @@ -1145,9 +1655,15 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */ } else { /* adjective positioning depends upon format of monster name */ if (possessive) /* Medusa's cursed partly eaten corpse */ +/*JP Sprintf(eos(nambuf), "%s %s", mname, adjective); +*/ + Sprintf(eos(nambuf), "%s%s", mname, adjective); else /* cursed partly eaten troll corpse */ +/*JP Sprintf(eos(nambuf), "%s %s", adjective, mname); +*/ + Sprintf(eos(nambuf), "%s%s", adjective, mname); /* in case adjective has a trailing space, squeeze it out */ mungspaces(nambuf); /* doname() might include a count in the adjective argument; @@ -1157,12 +1673,16 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */ } if (!omit_corpse) { +#if 0 /*JP*/ Strcat(nambuf, " corpse"); /* makeplural(nambuf) => append "s" to "corpse" */ if (otmp->quan > 1L && !ignore_quan) { Strcat(nambuf, "s"); any_prefix = FALSE; /* avoid "a newt corpses" */ } +#else + Strcat(nambuf, "‚ÌŽ€‘Ì"); +#endif } /* it's safe to overwrite our nambuf after an() has copied @@ -1244,13 +1764,18 @@ struct obj *obj; devnull tournament, suppress player supplied fruit names because those can be used to fake other objects and dungeon features */ buf = nextobuf(); +/*JP Sprintf(buf, "deadly slime mold%s", plur(obj->quan)); +*/ + Strcpy(buf, "ŠëŒ¯‚Ȃ˂΂˂΃Jƒr"); } else { buf = xname(obj); } /* apply an article if appropriate; caller should always use KILLED_BY */ +#if 0 /*JP*//*“ú–{Œê‚Å‚Í•s—v*/ if (obj->quan == 1L && !strstri(buf, "'s ") && !strstri(buf, "s' ")) buf = (obj_is_pname(obj) || the_unique_obj(obj)) ? the(buf) : an(buf); +#endif objects[obj->otyp].oc_name_known = save_ocknown; objects[obj->otyp].oc_uname = save_ocuname; @@ -1369,6 +1894,7 @@ register const char *str; { char *buf = nextobuf(); +#if 0 /*JP*//*•s’芥ŽŒ‚Í•s—v*/ buf[0] = '\0'; if (strncmpi(str, "the ", 4) && strcmp(str, "molten lava") @@ -1382,6 +1908,9 @@ register const char *str; } Strcat(buf, str); +#else /*’P‚ɃRƒs[*/ + Strcpy(buf, str); +#endif return buf; } @@ -1391,7 +1920,9 @@ const char *str; { char *tmp = an(str); +#if 0 /*JP*//*‘啶Žš‰»‚µ‚È‚¢*/ *tmp = highc(*tmp); +#endif return tmp; } @@ -1404,6 +1935,7 @@ the(str) const char *str; { char *buf = nextobuf(); +#if 0 /*JP*//*’芥ŽŒ‚Í•s—v*/ boolean insert_the = FALSE; if (!strncmpi(str, "the ", 4)) { @@ -1445,6 +1977,9 @@ const char *str; buf[0] = '\0'; Strcat(buf, str); +#else /*’P‚ɃRƒs[*/ + Strcpy(buf, str); +#endif /*JP*/ return buf; } @@ -1454,10 +1989,22 @@ const char *str; { char *tmp = the(str); +#if 0 /*JP*//*‘啶Žš‰»‚µ‚È‚¢*/ *tmp = highc(*tmp); +#endif return tmp; } +#if 1 /*JP*/ +char * +aobjnam(otmp, verb) +register struct obj *otmp; +register const char *verb; +{ + return xname(otmp); +} + +#else /* returns "count cxname(otmp)" or just cxname(otmp) if count == 1 */ char * aobjnam(otmp, verb) @@ -1477,6 +2024,7 @@ const char *verb; } return bp; } +#endif /*JP*/ /* combine yname and aobjnam eg "your count cxname(otmp)" */ char * @@ -1506,7 +2054,9 @@ const char *verb; { register char *s = yobjnam(obj, verb); +#if 0 /*JP*/ *s = highc(*s); +#endif return s; } @@ -1518,10 +2068,12 @@ const char *verb; { char *bp = The(xname(otmp)); +#if 0 /*JP*//*“ú–{Œê‚É‚ÍŽO’PŒ»‚Ìs‚Í‚È‚¢*/ if (verb) { Strcat(bp, " "); Strcat(bp, otense(otmp, verb)); } +#endif /*JP*/ return bp; } @@ -1563,7 +2115,9 @@ struct obj *obj; { char *s = yname(obj); +#if 0 /*JP*/ *s = highc(*s); +#endif return s; } @@ -1577,9 +2131,15 @@ struct obj *obj; { char *outbuf = nextobuf(); char *s = shk_your(outbuf, obj); /* assert( s == outbuf ); */ +#if 0 /*JP*/ int space_left = BUFSZ - 1 - strlen(s); return strncat(s, minimal_xname(obj), space_left); +#else + int space_left = BUFSZ - strlen(s); + + return strncat(s, minimal_xname(obj), space_left); +#endif } /* capitalized variant of ysimple_name() */ @@ -1589,7 +2149,9 @@ struct obj *obj; { char *s = ysimple_name(obj); +#if 0 /*JP*/ *s = highc(*s); +#endif return s; } @@ -1600,8 +2162,10 @@ struct obj *obj; { char *simpleoname = minimal_xname(obj); +#if 0 /*JP*//*“ú–{Œê‚Í’P•¡“¯Œ^*/ if (obj->quan != 1L) simpleoname = makeplural(simpleoname); +#endif return simpleoname; } @@ -1648,8 +2212,10 @@ struct obj *obj; if (obj->oartifact) { outbuf = nextobuf(); Strcpy(outbuf, artiname(obj->oartifact)); +#if 0 /*JP*/ if (!strncmp(outbuf, "The ", 4)) outbuf[0] = lowc(outbuf[0]); +#endif } else { outbuf = xname(obj); } @@ -1681,8 +2247,10 @@ const char *verb; * if the result of xname(otmp) would be plural. Don't bother * recomputing xname(otmp) at this time. */ +#if 0 /*JP*//*“ú–{Œê‚É‚ÍŽO’PŒ»‚Ìs‚Í‚È‚¢*/ if (!is_plural(otmp)) return vtense((char *) 0, verb); +#endif /*JP*/ buf = nextobuf(); Strcpy(buf, verb); @@ -1708,6 +2276,7 @@ vtense(subj, verb) register const char *subj; register const char *verb; { +#if 0 /*JP*//*“ú–{Œê‚É‚ÍŽO’PŒ»‚Ìs‚Í‚È‚¢*/ char *buf = nextobuf(), *bspot; int len, ltmp; const char *sp, *spot; @@ -1795,6 +2364,12 @@ sing: Strcasecpy(bspot + 1, "s"); } +#else + char *buf; + + buf = nextobuf(); + Strcpy(buf, verb); +#endif /*JP*/ return buf; } @@ -1937,6 +2512,7 @@ char * makeplural(oldstr) const char *oldstr; { +#if 0 /*JP*//*“ú–{Œê‚Í’P•¡“¯Œ^*/ register char *spot; char lo_c, *str = nextobuf(); const char *excess = (char *) 0; @@ -2083,6 +2659,10 @@ const char *oldstr; bottom: if (excess) Strcat(str, excess); +#else /*JP*/ + char *str = nextobuf(); + Strcpy(str, oldstr); +#endif return str; } @@ -2102,6 +2682,7 @@ char * makesingular(oldstr) const char *oldstr; { +#if 0 /*JP*//*“ú–{Œê‚Í’P•¡“¯Œ^*/ register char *p, *bp; const char *excess = 0; char *str = nextobuf(); @@ -2204,6 +2785,11 @@ bottom: Strcat(bp, excess); return bp; +#else /*JP*/ + char *str = nextobuf(); + Strcpy(str, oldstr); + return str; +#endif } /* compare user string against object name string using fuzzy matching */ @@ -2404,6 +2990,7 @@ schar skill; * if not an object return &zeroobj; if an error (no matching object), * return null. */ + struct obj * readobjnam(bp, no_wish) register char *bp; @@ -2422,6 +3009,10 @@ struct obj *no_wish; struct fruit *f; int ftype = context.current_fruit; char fruitbuf[BUFSZ]; +#if 1 /*JP*/ + char buf[BUFSZ]; + char pfx[BUFSZ]; +#endif /* Fruits may not mess up the ability to wish for real objects (since * you can leave a fruit in a bones file and it will be added to * another person's game), so they must be checked for last, after @@ -2459,8 +3050,12 @@ struct obj *no_wish; (void) mungspaces(bp); /* allow wishing for "nothing" to preserve wishless conduct... [now requires "wand of nothing" if that's what was really wanted] */ +#if 0 /*JP*/ if (!strcmpi(bp, "nothing") || !strcmpi(bp, "nil") || !strcmpi(bp, "none")) +#else + if (!strcmpi(bp, "‚È‚µ") || !strcmpi(bp, "–³‚µ")) +#endif return no_wish; /* save the [nearly] unmodified choice string */ Strcpy(fruitbuf, bp); @@ -2489,26 +3084,54 @@ struct obj *no_wish; while (*bp == ' ') bp++; l = 0; +#if 0 /*JP*/ } else if (!strncmpi(bp, "blessed ", l = 8) || !strncmpi(bp, "holy ", l = 5)) { +#else + } else if (!strncmpi(bp, "j•Ÿ‚³‚ꂽ", l = 10)) { +#endif blessed = 1; +#if 0 /*JP*/ } else if (!strncmpi(bp, "moist ", l = 6) || !strncmpi(bp, "wet ", l = 4)) { +#else + } else if (!strncmpi(bp, "Ž¼‚Á‚½", l = 6) + || !strncmpi(bp, "”G‚ꂽ", l = 6)) { +#endif +#if 0 /*JP*/ if (!strncmpi(bp, "wet ", 4)) +#else + if (!strncmpi(bp, "”G‚ꂽ", 4)) +#endif wetness = rn2(3) + 3; else wetness = rnd(2); +#if 0 /*JP*/ } else if (!strncmpi(bp, "cursed ", l = 7) || !strncmpi(bp, "unholy ", l = 7)) { +#else + } else if (!strncmpi(bp, "Žô‚í‚ꂽ", l = 8)) { +#endif iscursed = 1; +#if 0 /*JP*/ } else if (!strncmpi(bp, "uncursed ", l = 9)) { +#else + } else if (!strncmpi(bp, "Žô‚í‚ê‚Ä‚¢‚È‚¢", l = 9)) { +#endif uncursed = 1; +#if 0 /*JP*/ } else if (!strncmpi(bp, "rustproof ", l = 10) || !strncmpi(bp, "erodeproof ", l = 11) || !strncmpi(bp, "corrodeproof ", l = 13) || !strncmpi(bp, "fixed ", l = 6) || !strncmpi(bp, "fireproof ", l = 10) || !strncmpi(bp, "rotproof ", l = 9)) { +#else + } else if (!strncmpi(bp, "ŽK‚Ñ‚È‚¢", l = 8) + || !strncmpi(bp, "•…H‚µ‚È‚¢", l = 10) + || !strncmpi(bp, "ˆÀ’肵‚½", l = 8) + || !strncmpi(bp, "”R‚¦‚È‚¢", l = 8)) { +#endif erodeproof = 1; } else if (!strncmpi(bp, "lit ", l = 4) || !strncmpi(bp, "burning ", l = 8)) { @@ -3483,7 +4106,10 @@ typfnd: artifact_exists(otmp, safe_oname(otmp), FALSE); obfree(otmp, (struct obj *) 0); otmp = &zeroobj; +/*JP pline("For a moment, you feel %s in your %s, but it disappears!", +*/ + pline("ˆêu%s‚ª%s‚Ì’†‚É‚ ‚é‚悤‚ÈŠ´‚¶‚ª‚µ‚½‚ªC‚·‚®‚ɏÁ‚¦‚³‚Á‚½I", something, makeplural(body_part(HAND))); } @@ -3562,18 +4188,33 @@ struct obj *cloak; if (cloak) { switch (cloak->otyp) { case ROBE: +/*JP return "robe"; +*/ + return "ƒ[ƒu"; case MUMMY_WRAPPING: +/*JP return "wrapping"; +*/ + return "•ï‘Ñ"; case ALCHEMY_SMOCK: return (objects[cloak->otyp].oc_name_known && cloak->dknown) +/*JP ? "smock" +*/ + ? "ƒXƒ‚ƒbƒN" +/*JP : "apron"; +*/ + : "ƒGƒvƒƒ“"; default: break; } } +/*JP return "cloak"; +*/ + return "ƒNƒ[ƒN"; } /* helm vs hat for messages */ @@ -3593,7 +4234,10 @@ struct obj *helmet; * fedora, cornuthaum, dunce cap -> hat * all other types of helmets -> helm */ +/*JP return (helmet && !is_metallic(helmet)) ? "hat" : "helm"; +*/ + return (helmet && !is_metallic(helmet)) ? "–XŽq" : "Š•"; } const char * @@ -3604,10 +4248,16 @@ struct monst *mtmp; && mtmp->mappearance != STRANGE_OBJECT) { int idx = objects[mtmp->mappearance].oc_descr_idx; if (mtmp->mappearance == GOLD_PIECE) +/*JP return "gold"; +*/ + return "‹à‰Ý"; return obj_descr[idx].oc_name; } +/*JP return "whatcha-may-callit"; +*/ + return "‰½‚Æ‚©‚¢‚¤‚à‚Ì"; } /* diff --git a/src/options.c b/src/options.c index 87c4004..d0f9223 100644 --- a/src/options.c +++ b/src/options.c @@ -243,151 +243,373 @@ static struct Comp_Opt { * a different format */ int optflags; } compopt[] = { +/*JP { "align", "your starting alignment (lawful, neutral, or chaotic)", 8, +*/ + { "align", "ƒQ[ƒ€ƒXƒ^[ƒgŽž‚Ì‘®« (lawful, neutral, or chaotic‚Ì‚¢‚¸‚ê‚©)", 8, DISP_IN_GAME }, +#if 0 /*JP*/ { "align_message", "message window alignment", 20, DISP_IN_GAME }, /*WC*/ +#else + { "align_message", "ƒƒbƒZ[ƒWƒEƒBƒ“ƒhƒE‚Ì‘µ‚¦", 20, DISP_IN_GAME }, /*WC*/ +#endif +#if 0 /*JP*/ { "align_status", "status window alignment", 20, DISP_IN_GAME }, /*WC*/ +#else + { "align_status", "ó‹µƒEƒBƒ“ƒhƒE‚Ì‘µ‚¦", 20, DISP_IN_GAME }, /*WC*/ +#endif +/*JP { "altkeyhandler", "alternate key handler", 20, DISP_IN_GAME }, +*/ + { "altkeyhandler", "ALTƒL[ƒnƒ“ƒhƒ‰", 20, DISP_IN_GAME }, #ifdef BACKWARD_COMPAT +/*JP { "boulder", "deprecated (use S_boulder in sym file instead)", 1, +*/ + { "boulder", "‹Šâ‚ð•\Ž¦‚·‚éƒVƒ“ƒ{ƒ‹•¶Žš", 1, SET_IN_FILE }, #endif +/*JP { "catname", "the name of your (first) cat (e.g., catname:Tabby)", +*/ + { "catname", "–`Œ¯‚ð‹Ÿ‚É‚·‚é(Å‰‚Ì)”L‚Ì–¼‘O (—á catname:‚½‚Ü)", PL_PSIZ, DISP_IN_GAME }, +/*JP { "disclose", "the kinds of information to disclose at end of game", +*/ + { "disclose", "ƒQ[ƒ€I—¹Žž‚ÉŒ©‚éî•ñ‚ÌŽí—Þ", sizeof(flags.end_disclose) * 2, SET_IN_GAME }, +/*JP { "dogname", "the name of your (first) dog (e.g., dogname:Fang)", PL_PSIZ, +*/ + { "dogname", "–`Œ¯‚ð‹Ÿ‚É‚·‚é(Å‰‚Ì)Œ¢‚Ì–¼‘O (—á dogname:ƒ|ƒ`)", PL_PSIZ, DISP_IN_GAME }, +/*JP { "dungeon", "the symbols to use in drawing the dungeon map", +*/ + { "dungeon", "ƒ_ƒ“ƒWƒ‡ƒ“‚ð•`‰æ‚·‚éƒVƒ“ƒ{ƒ‹•¶Žš", MAXDCHARS + 1, SET_IN_FILE }, +/*JP { "effects", "the symbols to use in drawing special effects", +*/ + { "effects", "“ÁŽêŒø‰Ê‚ð•`‰æ‚·‚éƒVƒ“ƒ{ƒ‹•¶Žš", MAXECHARS + 1, SET_IN_FILE }, +/*JP { "font_map", "the font to use in the map window", 40, +*/ + { "font_map", "ƒ}ƒbƒvƒEƒBƒ“ƒhƒE‚ÉŽg—p‚·‚éƒtƒHƒ“ƒg", 40, DISP_IN_GAME }, /*WC*/ +#if 0 /*JP*/ { "font_menu", "the font to use in menus", 40, DISP_IN_GAME }, /*WC*/ +#else + { "font_menu", "ƒƒjƒ…[‚ÉŽg—p‚·‚éƒtƒHƒ“ƒg", 40, DISP_IN_GAME }, /*WC*/ +#endif +/*JP { "font_message", "the font to use in the message window", 40, +*/ + { "font_message", "ƒƒbƒZ[ƒWƒEƒBƒ“ƒhƒE‚ÉŽg—p‚·‚éƒtƒHƒ“ƒg", 40, DISP_IN_GAME }, /*WC*/ +#if 0 /*JP*/ { "font_size_map", "the size of the map font", 20, DISP_IN_GAME }, /*WC*/ +#else + { "font_size_map", "ƒ}ƒbƒvƒtƒHƒ“ƒg‚̃TƒCƒY", 20, DISP_IN_GAME }, /*WC*/ +#endif +/*JP { "font_size_menu", "the size of the menu font", 20, +*/ + { "font_size_menu", "ƒƒjƒ…[ƒtƒHƒ“ƒg‚̃TƒCƒY", 20, DISP_IN_GAME }, /*WC*/ +/*JP { "font_size_message", "the size of the message font", 20, +*/ + { "font_size_message", "ƒƒbƒZ[ƒWƒtƒHƒ“ƒg‚̃TƒCƒY", 20, DISP_IN_GAME }, /*WC*/ +/*JP { "font_size_status", "the size of the status font", 20, +*/ + { "font_size_status", "ó‹µƒtƒHƒ“ƒg‚̃TƒCƒY", 20, DISP_IN_GAME }, /*WC*/ +/*JP { "font_size_text", "the size of the text font", 20, +*/ + { "font_size_text", "ƒeƒLƒXƒgƒtƒHƒ“ƒg‚̃TƒCƒY", 20, DISP_IN_GAME }, /*WC*/ +/*JP { "font_status", "the font to use in status window", 40, +*/ + { "font_status", "ó‹µƒEƒBƒ“ƒhƒE‚ÉŽg—p‚·‚éƒtƒHƒ“ƒg", 40, DISP_IN_GAME }, /*WC*/ +/*JP { "font_text", "the font to use in text windows", 40, +*/ + { "font_text", "ƒeƒLƒXƒgƒEƒBƒ“ƒhƒE‚ÉŽg—p‚·‚éƒtƒHƒ“ƒg", 40, DISP_IN_GAME }, /*WC*/ +/*JP { "fruit", "the name of a fruit you enjoy eating", PL_FSIZ, SET_IN_GAME }, +*/ + { "fruit", "D•¨‚̉ʕ¨‚Ì–¼‘O", PL_FSIZ, SET_IN_GAME }, +/*JP { "gender", "your starting gender (male or female)", 8, DISP_IN_GAME }, +*/ + { "gender", "ƒQ[ƒ€ŠJŽnŽž‚̐«•Ê(male ‚Ü‚½‚Í female)", 8, DISP_IN_GAME }, +/*JP { "horsename", "the name of your (first) horse (e.g., horsename:Silver)", +*/ + { "horsename", "–`Œ¯‚ð‹Ÿ‚É‚·‚é(Å‰‚Ì)”n‚Ì–¼‘O (—á ghoulname:ƒVƒ‹ƒo[)", PL_PSIZ, DISP_IN_GAME }, +#if 0 /*JP*/ { "map_mode", "map display mode under Windows", 20, DISP_IN_GAME }, /*WC*/ +#else + { "map_mode", "ƒEƒBƒ“ƒhƒE•\Ž¦Žž‚̃}ƒbƒv‚Ì•\Ž¦ƒ‚[ƒh", 20, DISP_IN_GAME }, /*WC*/ +#endif +/*JP { "menustyle", "user interface for object selection", MENUTYPELEN, +*/ + { "menustyle", "ƒIƒuƒWƒFƒNƒg‚ð‘I‘ð‚·‚é‚Æ‚«‚̃†[ƒU[ƒCƒ“ƒ^ƒtƒF[ƒX", MENUTYPELEN, SET_IN_GAME }, +/*JP { "menu_deselect_all", "deselect all items in a menu", 4, SET_IN_FILE }, +*/ + { "menu_deselect_all", "‘S‚ẴAƒCƒeƒ€‚ð”ñ‘I‘ð", 4, SET_IN_FILE }, +/*JP { "menu_deselect_page", "deselect all items on this page of a menu", 4, +*/ + { "menu_deselect_page", "Œ»Ý•\Ž¦‚³‚ê‚Ä‚¢‚éƒy[ƒW‚̃AƒCƒeƒ€‚ð”ñ‘I‘ð", 4, SET_IN_FILE }, +/*JP { "menu_first_page", "jump to the first page in a menu", 4, SET_IN_FILE }, +*/ + { "menu_first_page", "ƒƒjƒ…[‚̍ŏ‰‚̃y[ƒW‚Ö", 4, SET_IN_FILE }, +/*JP { "menu_headings", "text attribute for menu headings", 9, SET_IN_GAME }, +*/ + { "menu_headings", "‹­’²C”½“]‚Ü‚½‚͉ºü‚ÅŽí—Þ‚ð•\Ž¦‚·‚é", 9, SET_IN_GAME }, +/*JP { "menu_invert_all", "invert all items in a menu", 4, SET_IN_FILE }, +*/ + { "menu_invert_all", "‘S‚ẴAƒCƒeƒ€‚𔽓]", 4, SET_IN_FILE }, +/*JP { "menu_invert_page", "invert all items on this page of a menu", 4, +*/ + { "menu_invert_page", "Œ»Ý•\Ž¦‚³‚ê‚Ä‚¢‚éƒy[ƒW‚̃AƒCƒeƒ€‚𔽓]", SET_IN_FILE }, +/*JP { "menu_last_page", "jump to the last page in a menu", 4, SET_IN_FILE }, +*/ + { "menu_last_page", "ƒƒjƒ…[‚̍Ōã‚̃y[ƒW‚Ö", 4, SET_IN_FILE }, +/*JP { "menu_next_page", "goto the next menu page", 4, SET_IN_FILE }, +*/ + { "menu_next_page", "ŽŸ‚̃ƒjƒ…[‚̃y[ƒW‚Ö", 4, SET_IN_FILE }, +/*JP { "menu_previous_page", "goto the previous menu page", 4, SET_IN_FILE }, +*/ + { "menu_previous_page", "‘O‚̃ƒjƒ…[‚̃y[ƒW‚Ö", 4, SET_IN_FILE }, +/*JP { "menu_search", "search for a menu item", 4, SET_IN_FILE }, +*/ + { "menu_search", "ƒƒjƒ…[‚ÌŒŸõ", 4, SET_IN_FILE }, +/*JP { "menu_select_all", "select all items in a menu", 4, SET_IN_FILE }, +*/ + { "menu_select_all", "‘S‚ẴAƒCƒeƒ€‚ð‘I‘ð", 4, SET_IN_FILE }, +/*JP { "menu_select_page", "select all items on this page of a menu", 4, +*/ + { "menu_select_page", "Œ»Ý•\Ž¦‚³‚ê‚Ä‚¢‚é‘S‚ẴAƒCƒeƒ€‚ð‘I‘ð", 4, SET_IN_FILE }, +/*JP { "monsters", "the symbols to use for monsters", MAXMCLASSES, +*/ + { "monsters", "ƒ‚ƒ“ƒXƒ^[‚ÉŽg—p‚³‚ê‚éƒVƒ“ƒ{ƒ‹•¶Žš", MAXMCLASSES, SET_IN_FILE }, +/*JP { "msghistory", "number of top line messages to save", 5, DISP_IN_GAME }, +*/ + { "msghistory", "æ“ªs‚É•\Ž¦‚³‚ꂽƒƒbƒZ[ƒW—š—ð‚Ì•Û‘¶”", 5, DISP_IN_GAME }, #ifdef TTY_GRAPHICS +/*JP { "msg_window", "the type of message window required", 1, SET_IN_GAME }, +*/ + {"msg_window", "ƒƒbƒZ[ƒWƒEƒBƒ“ƒhƒE‚̃^ƒCƒv‚ðÝ’è",1, SET_IN_GAME }, #else +/*JP { "msg_window", "the type of message window required", 1, SET_IN_FILE }, +*/ + {"msg_window", "ƒƒbƒZ[ƒWƒEƒBƒ“ƒhƒE‚̃^ƒCƒv‚ðÝ’è", 1, SET_IN_FILE }, #endif +/*JP { "name", "your character's name (e.g., name:Merlin-W)", PL_NSIZ, +*/ + { "name", "‚ ‚È‚½‚Ì–¼‘O (—á name:ƒ}[ƒŠƒ“-W)", PL_NSIZ, DISP_IN_GAME }, +/*JP { "number_pad", "use the number pad for movement", 1, SET_IN_GAME }, +*/ + { "number_pad", "ƒiƒ“ƒo[ƒpƒbƒh‚ðŽg—p‚·‚é", 1, SET_IN_GAME }, +/*JP { "objects", "the symbols to use for objects", MAXOCLASSES, SET_IN_FILE }, +*/ + { "objects", "ƒAƒCƒeƒ€‚ÉŽg—p‚³‚ê‚éƒVƒ“ƒ{ƒ‹•¶Žš", MAXOCLASSES, SET_IN_FILE }, +/*JP { "packorder", "the inventory order of the items in your pack", +*/ + { "packorder", "”w•‰‚¢‘Ü“à‚Ì•¨‚̏‡”Ô", MAXOCLASSES, SET_IN_GAME }, #ifdef CHANGE_COLOR { "palette", #ifndef WIN32 +/*JP "palette (00c/880/-fff is blue/yellow/reverse white)", 15, +*/ + "ƒpƒŒƒbƒg (00c/880/-fff‚Í‚»‚ꂼ‚êÂ/‰©/”½“]”’‚ðŽ¦‚·)", 15, SET_IN_GAME }, #else +/*JP "palette (adjust an RGB color in palette (color-R-G-B)", 15, +*/ + "ƒpƒŒƒbƒg (ƒpƒŒƒbƒg‚ÌRGBF‚𒲐®‚·‚é (F-R-G-B)", 15, SET_IN_FILE }, #endif #if defined(MAC) +/*JP { "hicolor", "same as palette, only order is reversed", 15, SET_IN_FILE }, +*/ + { "hicolor", "ƒpƒŒƒbƒg‚ª“¯‚¶‚Æ‚«AŽwŽ¦‚µ‚½‚à‚Ì‚¾‚¯”½“]‚³‚¹‚é", 15, SET_IN_FILE }, #endif #endif { "paranoid_confirmation", "extra prompting in certain situations", 28, SET_IN_GAME }, +/*JP { "pettype", "your preferred initial pet type", 4, DISP_IN_GAME }, +*/ + { "pettype", "‚ ‚È‚½‚Ì‘I‘ð‚µ‚½‰Šúƒyƒbƒg‚ÌŽí—Þ", 4, DISP_IN_GAME }, +/*JP { "pickup_burden", "maximum burden picked up before prompt", 20, +*/ + { "pickup_burden", "E‚¤‚Æ‚«‚ɍőå‰×d‚É‚È‚éŽè‘O‚ÅŠm”F‚·‚é", 20, SET_IN_GAME }, +/*JP { "pickup_types", "types of objects to pick up automatically", +*/ + { "pickup_types", "Ž©“®‚ŏE‚¢‚ ‚°‚镨‚̃Vƒ“ƒ{ƒ‹", MAXOCLASSES, SET_IN_GAME }, { "pile_limit", "threshold for \"there are many objects here\"", 24, SET_IN_GAME }, { "playmode", "normal play, non-scoring explore mode, or debug mode", 8, DISP_IN_GAME }, +/*JP { "player_selection", "choose character via dialog or prompts", 12, +*/ + { "player_selection", "ƒLƒƒƒ‰ƒNƒ^[‘I‘ð‚Ƀ_ƒCƒAƒƒO‚âŠm”F‰æ–Ê‚ðŽg‚¤", 12, DISP_IN_GAME }, +/*JP { "race", "your starting race (e.g., Human, Elf)", PL_CSIZ, +*/ + { "race", "ƒQ[ƒ€ŠJŽnŽž‚ÌŽí‘° (—á Human, Elf)", PL_CSIZ, DISP_IN_GAME }, +/*JP { "role", "your starting role (e.g., Barbarian, Valkyrie)", PL_CSIZ, +*/ + { "role", "ƒQ[ƒ€ŠJŽnŽž‚̐E‹Æ (—á Barbarian, Valkyrie)", PL_CSIZ, DISP_IN_GAME }, +/*JP { "runmode", "display frequency when `running' or `travelling'", +*/ + { "runmode", "ƒgƒ‰ƒxƒ‹ƒRƒ}ƒ“ƒh“™‚ł̘A‘±ˆÚ“®Žž‚Ì•`‰æ•p“x", sizeof "teleport", SET_IN_GAME }, +/*JP { "scores", "the parts of the score list you wish to see", 32, +*/ + { "scores", "ƒQ[ƒ€I—¹Žž‚ÉŒ©‚éƒXƒRƒA‚ÌŽí—Þ", 32, SET_IN_GAME }, +/*JP { "scroll_amount", "amount to scroll map when scroll_margin is reached", +*/ + { "scroll_amount", "scroll_margin‚É“Í‚¢‚½‚Æ‚«‚̃}ƒbƒvƒXƒNƒ[ƒ‹—Ê", 20, DISP_IN_GAME }, /*WC*/ +/*JP { "scroll_margin", "scroll map when this far from the edge", 20, +*/ + { "scroll_margin", "ƒ}ƒbƒv’[‚©‚ç‚̃}ƒbƒvƒXƒNƒ[ƒ‹ŠJŽn‹——£", 20, DISP_IN_GAME }, /*WC*/ { "sortloot", "sort object selection lists by description", 4, SET_IN_GAME }, #ifdef MSDOS +/*JP { "soundcard", "type of sound card to use", 20, SET_IN_FILE }, +*/ + { "soundcard", "Žg—p‚µ‚Ä‚¢‚éƒTƒEƒ“ƒhƒJ[ƒh‚ÌŽí—Þ", 20, SET_IN_FILE }, #endif { "symset", "load a set of display symbols from the symbols file", 70, SET_IN_GAME }, { "roguesymset", "load a set of rogue display symbols from the symbols file", 70, SET_IN_GAME }, +/*JP { "suppress_alert", "suppress alerts about version-specific features", 8, +*/ + { "suppress_alert", "ƒo[ƒWƒ‡ƒ“ŠÔ‚̈Ⴂ‚ÉŠÖ‚·‚éŒxƒƒbƒZ[ƒW‚Ì–³Œø‰»", 8, SET_IN_GAME }, +#if 0 /*JP*/ { "tile_width", "width of tiles", 20, DISP_IN_GAME }, /*WC*/ +#else + { "tile_width", "ƒ^ƒCƒ‹‚Ì•", 20, DISP_IN_GAME }, /*WC*/ +#endif +#if 0 /*JP*/ { "tile_height", "height of tiles", 20, DISP_IN_GAME }, /*WC*/ +#else + { "tile_height", "ƒ^ƒCƒ‹‚̍‚‚³", 20, DISP_IN_GAME }, /*WC*/ +#endif +#if 0 /*JP*/ { "tile_file", "name of tile file", 70, DISP_IN_GAME }, /*WC*/ +#else + { "tile_file", "ƒ^ƒCƒ‹ƒtƒ@ƒCƒ‹‚Ì–¼‘O", 70, DISP_IN_GAME }, /*WC*/ +#endif +/*JP { "traps", "the symbols to use in drawing traps", MAXTCHARS + 1, +*/ + { "traps", "㩂ð•`‰æ‚·‚éƒVƒ“ƒ{ƒ‹•¶Žš", MAXTCHARS + 1, SET_IN_FILE }, +/*JP { "vary_msgcount", "show more old messages at a time", 20, +*/ + { "vary_msgcount", "ˆê“x‚É•\Ž¦‚·‚郁ƒbƒZ[ƒW‚̐”", 20, DISP_IN_GAME }, /*WC*/ #ifdef MSDOS +/*JP { "video", "method of video updating", 20, SET_IN_FILE }, +*/ + { "video", "Žg—p‚·‚éƒrƒfƒIƒ‚[ƒh‚ðÝ’è‚·‚é", 20, SET_IN_FILE }, #endif #ifdef VIDEOSHADES +/*JP { "videocolors", "color mappings for internal screen routines", 40, +*/ + { "videocolors", "“à‘ ƒXƒNƒŠ[ƒ“ƒ‹[ƒ`ƒ“—p‚̃Jƒ‰[ƒ}ƒbƒv‚ð—p‚¢‚é", 40, DISP_IN_GAME }, +/*JP { "videoshades", "gray shades to map to black/gray/white", 32, +*/ + { "videoshades", "•\Ž¦‚ɃOƒŒƒCƒXƒP[ƒ‹‚ð—p‚¢‚é", 32, DISP_IN_GAME }, #endif #ifdef WIN32 +/*JP { "subkeyvalue", "override keystroke value", 7, SET_IN_FILE }, +*/ + {"subkeyvalue", "ƒL[ƒ}ƒbƒsƒ“ƒO‚ð•ÏX‚·‚é", 7, SET_IN_FILE }, #endif +#if 0 /*JP*/ { "windowcolors", "the foreground/background colors of windows", /*WC*/ +#else + { "windowcolors", "ƒEƒBƒ“ƒhƒE‚ðŽw’肵‚½‘OŒiF/”wŒiF‚Å•\Ž¦‚·‚é", /*WC*/ +#endif 80, DISP_IN_GAME }, +/*JP { "windowtype", "windowing system to use", WINTYPELEN, DISP_IN_GAME }, +*/ + { "windowtype", "Žg—p‚·‚éƒEƒCƒ“ƒhƒEƒVƒXƒeƒ€", WINTYPELEN, DISP_IN_GAME }, #ifdef WINCHAIN { "windowchain", "window processor to use", WINTYPELEN, SET_IN_SYS }, #endif @@ -398,6 +620,9 @@ static struct Comp_Opt { { "Macgraphics", "load MACGraphics display symbols", 70, SET_IN_FILE }, #endif #endif +#if 1 /*JP*/ + { "kcode", "’[––‚ÌŠ¿ŽšƒR[ƒh,", 4, SET_IN_FILE }, +#endif { (char *) 0, (char *) 0, 0, 0 } }; @@ -1887,7 +2112,11 @@ boolean tinitial, tfrom_file; preferred_pet = '\0'; break; default: +#if 0 /*JP*/ pline("Unrecognized pet type '%s'.", op); +#else + pline("'%s'‚̓yƒbƒg‚ÌŽí—Þ‚Æ‚µ‚Ď󂯕t‚¯‚ç‚ê‚Ü‚¹‚ñD", op); +#endif break; } } else if (negated) @@ -2290,7 +2519,10 @@ boolean tinitial, tfrom_file; } } if (!forig && num >= 100) { +/*JP pline("Doing that so many times isn't very fruitful."); +*/ + pline("‚»‚ñ‚Ȃɉ½‰ñ‚à‚â‚Á‚Ä‚à‚Ù‚Æ‚ñ‚LjӖ¡‚Í‚È‚¢D"); return; } } @@ -2579,8 +2811,13 @@ boolean tinitial, tfrom_file; if (flags.menu_style == MENU_TRADITIONAL || flags.menu_style == MENU_COMBINATION) { use_menu = FALSE; +#if 0 /*JP*/ Sprintf(qbuf, "New pickup_types: [%s am] (%s)", ocl, *tbuf ? tbuf : "all"); +#else + Sprintf(qbuf, "V‚µ‚¢pickup_type‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢F[%s am] (%s)", ocl, + *tbuf ? tbuf : "all"); +#endif getlin(qbuf, abuf); op = mungspaces(abuf); if (abuf[0] == '\0' || abuf[0] == '\033') @@ -2589,8 +2826,13 @@ boolean tinitial, tfrom_file; use_menu = TRUE; } if (use_menu) { +#if 0 /*JP*/ (void) choose_classes_menu("Auto-Pickup what?", 1, TRUE, ocl, tbuf); +#else + (void) choose_classes_menu("‚Ç‚ê‚ðŽ©“®E‚¢‚ɐݒ肷‚éH", 1, TRUE, ocl, + tbuf); +#endif op = tbuf; } } @@ -2763,6 +3005,14 @@ boolean tinitial, tfrom_file; badoption(opts); return; } +#if 1 /*JP*/ + if (!strncmpi(opts, "kcode", 3)){ + if ((op = string_for_env_opt("kcode", opts, FALSE)) != 0){ + setkcode(*op); + } + return; + } +#endif /* scores:5t[op] 5a[round] o[wn] */ if (match_optname(opts, "scores", 4, TRUE)) { @@ -3516,7 +3766,10 @@ doset() any = zeroany; add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings, +/*JP "Booleans (selecting will toggle value):", MENU_UNSELECTED); +*/ + "^‹UƒIƒvƒVƒ‡ƒ“ (‘I‘ð‚·‚é‚Æ’l‚ªØ‚è‘Ö‚í‚è‚Ü‚·)F", MENU_UNSELECTED); any.a_int = 0; /* first list any other non-modifiable booleans, then modifiable ones */ for (pass = 0; pass <= 1; pass++) @@ -3551,9 +3804,15 @@ doset() indexoffset = boolcount; any = zeroany; add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED); +#if 0 /*JP*/ add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings, "Compounds (selecting will prompt for new value):", MENU_UNSELECTED); +#else + add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings, + "•¶Žš—ñƒIƒvƒVƒ‡ƒ“ (‘I‘ð‚·‚é‚ƐV‚µ‚¢’l‚Ì“ü—Í‚ð‹‚ß‚Ü‚·)F", + MENU_UNSELECTED); +#endif #ifdef notyet /* SYSCF */ /* XXX I think this is still fragile. Fixing initial/from_file and/or @@ -3642,7 +3901,10 @@ doset() for (i = 0; i < PREFIX_COUNT; i++) doset_add_menu(tmpwin, fqn_prefix_names[i], 0); #endif +/*JP end_menu(tmpwin, "Set what options?"); +*/ + end_menu(tmpwin, "‚ǂ̃IƒvƒVƒ‡ƒ“‚ðÝ’肵‚Ü‚·‚©H"); need_redraw = FALSE; if ((pick_cnt = select_menu(tmpwin, PICK_ANY, &pick_list)) > 0) { /* @@ -3688,7 +3950,10 @@ doset() if (!special_handling(compopt[opt_indx].name, setinitial, fromfile)) { +/*JP Sprintf(buf, "Set %s to what?", compopt[opt_indx].name); +*/ + Sprintf(buf, "%s‚ɉ½‚ðÝ’è‚·‚éH", compopt[opt_indx].name); getlin(buf, buf2); if (buf2[0] == '\033') continue; @@ -3726,10 +3991,26 @@ int numtotal; char letr; const char *desc; } action_titles[] = { +#if 0 /*JP*/ { 'a', "add new %s" }, /* [0] */ +#else + { 'a', "V‚µ‚¢%s‚ð’ljÁ" }, /* [0] */ +#endif +#if 0 /*JP*/ { 'l', "list %s" }, /* [1] */ +#else + { 'l', "%s‚ðˆê——•\Ž¦" }, /* [1] */ +#endif +#if 0 /*JP*/ { 'r', "remove existing %s" }, /* [2] */ +#else + { 'r', "Šù‚É‚ ‚é%s‚ðíœ" }, /* [2] */ +#endif +#if 0 /*JP*/ { 'x', "exit this menu" }, /* [3] */ +#else + { 'x', "‚±‚̃ƒjƒ…[‚ð•Â‚¶‚é" }, /* [3] */ +#endif }; opt_idx = 0; @@ -3751,7 +4032,10 @@ int numtotal; #endif MENU_UNSELECTED); } +/*JP end_menu(tmpwin, "Do what?"); +*/ + end_menu(tmpwin, "‚Ç‚¤‚·‚éH"); if ((pick_cnt = select_menu(tmpwin, PICK_ONE, &pick_list)) > 0) { for (pick_idx = 0; pick_idx < pick_cnt; ++pick_idx) { opt_idx = pick_list[pick_idx].item.a_int - 1; @@ -3798,7 +4082,10 @@ boolean setinitial, setfromfile; add_menu(tmpwin, NO_GLYPH, &any, *style_name, 0, ATR_NONE, style_name, MENU_UNSELECTED); } +/*JP end_menu(tmpwin, "Select menustyle:"); +*/ + end_menu(tmpwin, "ƒƒjƒ…[ƒXƒ^ƒCƒ‹‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢F"); if (select_menu(tmpwin, PICK_ONE, &style_pick) > 0) { flags.menu_style = style_pick->item.a_int - 1; free((genericptr_t) style_pick); @@ -3848,7 +4135,10 @@ boolean setinitial, setfromfile; add_menu(tmpwin, NO_GLYPH, &any, burden_letters[i], 0, ATR_NONE, burden_name, MENU_UNSELECTED); } +/*JP end_menu(tmpwin, "Select encumbrance level:"); +*/ + end_menu(tmpwin, "Œx‚ðo‚·‰×dƒŒƒxƒ‹‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢F"); if (select_menu(tmpwin, PICK_ONE, &burden_pick) > 0) { flags.pickup_burden = burden_pick->item.a_int - 1; free((genericptr_t) burden_pick); @@ -3879,7 +4169,10 @@ boolean setinitial, setfromfile; ATR_NONE, buf, MENU_UNSELECTED); disc_cat[i] = 0; } +/*JP end_menu(tmpwin, "Change which disclosure options categories:"); +*/ + end_menu(tmpwin, "‚ǂ̃JƒeƒSƒŠ‚Ì•\Ž¦î•ñƒIƒvƒVƒ‡ƒ“‚ð•ÏX‚µ‚Ü‚·‚©F"); pick_cnt = select_menu(tmpwin, PICK_ANY, &disclosure_pick); if (pick_cnt > 0) { for (pick_idx = 0; pick_idx < pick_cnt; ++pick_idx) { @@ -3893,7 +4186,10 @@ boolean setinitial, setfromfile; for (i = 0; i < NUM_DISCLOSURE_OPTIONS; i++) { if (disc_cat[i]) { +/*JP Sprintf(buf, "Disclosure options for %s:", +*/ + Sprintf(buf, "%s‚̏o—ÍŒ`Ž®F", disclosure_names[i]); tmpwin = create_nhwindow(NHW_MENU); start_menu(tmpwin); @@ -3901,19 +4197,31 @@ boolean setinitial, setfromfile; /* 'y','n',and '+' work as alternate selectors; '-' doesn't */ any.a_char = DISCLOSE_NO_WITHOUT_PROMPT; add_menu(tmpwin, NO_GLYPH, &any, 'a', any.a_char, ATR_NONE, +/*JP "Never disclose, without prompting", +*/ + "Šm”F‚¹‚¸‚ɏo—Í‚à‚µ‚È‚¢", MENU_UNSELECTED); any.a_char = DISCLOSE_YES_WITHOUT_PROMPT; add_menu(tmpwin, NO_GLYPH, &any, 'b', any.a_char, ATR_NONE, +/*JP "Always disclose, without prompting", +*/ + "Šm”F‚¹‚¸‚ɏo—Í‚·‚é", MENU_UNSELECTED); any.a_char = DISCLOSE_PROMPT_DEFAULT_NO; add_menu(tmpwin, NO_GLYPH, &any, 'c', any.a_char, ATR_NONE, +/*JP "Prompt, with default answer of \"No\"", +*/ + "Šm”F‚·‚éCƒfƒtƒHƒ‹ƒg‚́uo—Í‚µ‚È‚¢v", MENU_UNSELECTED); any.a_char = DISCLOSE_PROMPT_DEFAULT_YES; add_menu(tmpwin, NO_GLYPH, &any, 'd', any.a_char, ATR_NONE, +/*JP "Prompt, with default answer of \"Yes\"", +*/ + "Šm”F‚·‚éCƒfƒtƒHƒ‹ƒg‚́uo—Í‚·‚év", MENU_UNSELECTED); end_menu(tmpwin, buf); if (select_menu(tmpwin, PICK_ONE, &disclosure_pick) > 0) { @@ -3936,7 +4244,10 @@ boolean setinitial, setfromfile; add_menu(tmpwin, NO_GLYPH, &any, *mode_name, 0, ATR_NONE, mode_name, MENU_UNSELECTED); } +/*JP end_menu(tmpwin, "Select run/travel display mode:"); +*/ + end_menu(tmpwin, "‘–s/ƒgƒ‰ƒxƒ‹‚Ì•\Ž¦ƒ‚[ƒh‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢F"); if (select_menu(tmpwin, PICK_ONE, &mode_pick) > 0) { flags.runmode = mode_pick->item.a_int - 1; free((genericptr_t) mode_pick); @@ -3962,7 +4273,10 @@ boolean setinitial, setfromfile; any.a_char = 'r'; add_menu(tmpwin, NO_GLYPH, &any, 'r', 0, ATR_NONE, "reversed", MENU_UNSELECTED); +/*JP end_menu(tmpwin, "Select message history display type:"); +*/ + end_menu(tmpwin, "ƒƒbƒZ[ƒW—š—ð‚Ì•\Ž¦•û–@‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢F"); if (select_menu(tmpwin, PICK_ONE, &window_pick) > 0) { iflags.prevmsg_window = window_pick->item.a_char; free((genericptr_t) window_pick); @@ -4009,8 +4323,13 @@ boolean setinitial, setfromfile; any.a_int = ALIGN_RIGHT; add_menu(tmpwin, NO_GLYPH, &any, 'r', 0, ATR_NONE, "right", MENU_UNSELECTED); +#if 0 /*JP*/ Sprintf(abuf, "Select %s window placement relative to the map:", msg ? "message" : "status"); +#else + Sprintf(abuf, "%sƒEƒBƒ“ƒhƒE‚̃}ƒbƒv‚ɑ΂·‚é•\Ž¦ˆÊ’u‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢F", + msg ? "ƒƒbƒZ[ƒW" : "ó‘Ô"); +#endif end_menu(tmpwin, abuf); if (select_menu(tmpwin, PICK_ONE, &window_pick) > 0) { if (msg) @@ -4022,10 +4341,22 @@ boolean setinitial, setfromfile; destroy_nhwindow(tmpwin); } else if (!strcmp("number_pad", optname)) { static const char *npchoices[] = { +/*JP " 0 (off)", " 1 (on)", " 2 (on, MSDOS compatible)", +*/ + "0 (–³Œø)", "1 (—LŒø)", "2 (—LŒøCMSDOSŒÝŠ·)", +/*JP " 3 (on, phone-style digit layout)", +*/ + " 3 (—LŒøC“d˜bŽ®‚̐”Žš”z’u)", +/*JP " 4 (on, phone-style layout, MSDOS compatible)", +*/ + " 4 (—LŒøC“d˜bŽ®‚Ì”z’uCMSDOS ŒÝŠ·)", +/*JP "-1 (off, 'z' to move upper-left, 'y' to zap wands)" +*/ + "-1 (–³ŒøC'z' ‚ō¶ã‚Ɉړ®C'y' ‚ŏñ‚ðU‚é)" }; menu_item *mode_pick = (menu_item *) 0; @@ -4037,7 +4368,10 @@ boolean setinitial, setfromfile; add_menu(tmpwin, NO_GLYPH, &any, 'a' + i, 0, ATR_NONE, npchoices[i], MENU_UNSELECTED); } +/*JP end_menu(tmpwin, "Select number_pad mode:"); +*/ + end_menu(tmpwin, "number_padƒ‚[ƒh‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢F"); if (select_menu(tmpwin, PICK_ONE, &mode_pick) > 0) { switch (mode_pick->item.a_int - 1) { case 0: @@ -4072,7 +4406,10 @@ boolean setinitial, setfromfile; } destroy_nhwindow(tmpwin); } else if (!strcmp("menu_headings", optname)) { +/*JP int mhattr = query_attr("How to highlight menu headings:"); +*/ + int mhattr = query_attr("ƒƒjƒ…[ƒwƒbƒ_‚Ì‹­’²•û–@‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢F"); if (mhattr != -1) iflags.menu_headings = mhattr; @@ -4205,7 +4542,10 @@ boolean setinitial, setfromfile; if (opt_idx == 3) { ; /* done--fall through to function exit */ } else if (opt_idx == 0) { /* add new */ +/*JP getlin("What new autopickup exception pattern?", &apebuf[1]); +*/ + getlin("V‚µ‚¢Ž©“®E‚¢—áŠO‚̃pƒ^[ƒ“‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢F", &apebuf[1]); mungspaces(&apebuf[1]); /* regularize whitespace */ if (apebuf[1] == '\033') { ; /* fall through to function exit */ @@ -4233,7 +4573,10 @@ boolean setinitial, setfromfile; ape = iflags.autopickup_exceptions[pass]; any = zeroany; add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings, +/*JP (pass == 0) ? "Never pickup" : "Always pickup", +*/ + (pass == 0) ? "í‚ɏE‚í‚È‚¢" : "í‚ɏE‚¤", MENU_UNSELECTED); for (i = 0; i < numapes[pass] && ape; i++) { any.a_void = (opt_idx == 1) ? 0 : ape; @@ -4243,8 +4586,14 @@ boolean setinitial, setfromfile; ape = ape->next; } } +#if 0 /*JP*/ Sprintf(apebuf, "%s autopickup exceptions", (opt_idx == 1) ? "List of" : "Remove which"); +#else + Sprintf(apebuf, "%sŽ©“®E‚¢—áŠO%s", + (opt_idx == 1) ? "" : "‚Ç‚Ì", + (opt_idx == 1) ? "‚̈ꗗ" : "‚ðíœ‚µ‚Ü‚·‚©H"); +#endif end_menu(tmpwin, apebuf); pick_cnt = select_menu(tmpwin, (opt_idx == 1) ? PICK_NONE : PICK_ANY, @@ -4449,13 +4798,20 @@ const char *optname; char *buf; { char ocl[MAXOCLASSES + 1]; +#if 0 /*JP*/ static const char none[] = "(none)", randomrole[] = "random", to_be_done[] = "(to be done)", defopt[] = "default", defbrief[] = "def"; +#else + static const char none[] = "(‚È‚µ)", randomrole[] = "ƒ‰ƒ“ƒ_ƒ€", + to_be_done[] = "(–¢Ý’è)", defopt[] = "ƒfƒtƒHƒ‹ƒg", + defbrief[] = "def"; +#endif int i; buf[0] = '\0'; if (!strcmp(optname, "align_message")) +#if 0 /*JP*/ Sprintf(buf, "%s", iflags.wc_align_message == ALIGN_TOP ? "top" @@ -4466,7 +4822,19 @@ char *buf; : iflags.wc_align_message == ALIGN_RIGHT ? "right" : defopt); +#else + Sprintf(buf, "%s", + iflags.wc_align_message == ALIGN_TOP + ? "ã‘¤" + : iflags.wc_align_message == ALIGN_LEFT + ? "¶‘¤" + : iflags.wc_align_message == ALIGN_BOTTOM + ? "‰º‘¤" + : iflags.wc_align_message == ALIGN_RIGHT + ? "‰E‘¤" : defopt); +#endif else if (!strcmp(optname, "align_status")) +#if 0 /*JP*/ Sprintf(buf, "%s", iflags.wc_align_status == ALIGN_TOP ? "top" @@ -4477,12 +4845,27 @@ char *buf; : iflags.wc_align_status == ALIGN_RIGHT ? "right" : defopt); +#else + Sprintf(buf, "%s", + iflags.wc_align_status == ALIGN_TOP + ? "ã‘¤" + : iflags.wc_align_status == ALIGN_LEFT + ? "¶‘¤" + : iflags.wc_align_status == ALIGN_BOTTOM + ? "‰º‘¤" + : iflags.wc_align_status == ALIGN_RIGHT + ? "‰E‘¤" + : defopt); +#endif else if (!strcmp(optname, "align")) Sprintf(buf, "%s", rolestring(flags.initalign, aligns, adj)); #ifdef WIN32 else if (!strcmp(optname, "altkeyhandler")) Sprintf(buf, "%s", +/*JP iflags.altkeyhandler[0] ? iflags.altkeyhandler : "default"); +*/ + iflags.altkeyhandler[0] ? iflags.altkeyhandler : defopt); #endif #ifdef BACKWARD_COMPAT else if (!strcmp(optname, "boulder")) @@ -4624,10 +5007,23 @@ char *buf; Sprintf(buf, "%s", plname); } else if (!strcmp(optname, "number_pad")) { static const char *numpadmodes[] = { +/*JP "0=off", "1=on", "2=on, MSDOS compatible", +*/ + "0=–³Œø", "1=—LŒø", "2=—LŒøCDOSŒÝŠ·", +/*JP "3=on, phone-style layout", +*/ + "3=—LŒøC“d˜bŽ®‚̐”Žš”z’u", +/*JP "4=on, phone layout, MSDOS compatible", +*/ + "4=—LŒøC“d˜bŽ®‚Ì”z’uCMSDOS ŒÝŠ·", +#if 0 /*JP*/ "-1=off, y & z swapped", /*[5]*/ +#else + "-1=–³ŒøCy‚Æz‚ð“ü‚ê‘Ö‚¦", /*[5]*/ +#endif }; int indx = Cmd.num_pad ? (Cmd.phone_layout ? (Cmd.pcHack_compat ? 4 : 3) @@ -4664,11 +5060,19 @@ char *buf; Strcat(tmpbuf, " Remove"); Strcpy(buf, tmpbuf[0] ? &tmpbuf[1] : "none"); } else if (!strcmp(optname, "pettype")) { +#if 0 /*JP*/ Sprintf(buf, "%s", (preferred_pet == 'c') ? "cat" : (preferred_pet == 'd') ? "dog" : (preferred_pet == 'h') ? "horse" : (preferred_pet == 'n') ? "none" : "random"); +#else + Sprintf(buf, "%s", (preferred_pet == 'c') ? "”L" + : (preferred_pet == 'd') ? "Œ¢" + : (preferred_pet == 'h') ? "”n" + : (preferred_pet == 'n') ? "‚È‚µ" + : "ƒ‰ƒ“ƒ_ƒ€"); +#endif } else if (!strcmp(optname, "pickup_burden")) { Sprintf(buf, "%s", burdentype[flags.pickup_burden]); } else if (!strcmp(optname, "pickup_types")) { @@ -4709,7 +5113,11 @@ char *buf; break; } } else if (!strcmp(optname, "player_selection")) { +#if 0 /*JP*/ Sprintf(buf, "%s", iflags.wc_player_selection ? "prompts" : "dialog"); +#else + Sprintf(buf, "%s“ü—Í", iflags.wc_player_selection ? "ƒvƒƒ“ƒvƒg" : "ƒ_ƒCƒAƒƒO"); +#endif #ifdef MSDOS } else if (!strcmp(optname, "soundcard")) { Sprintf(buf, "%s", to_be_done); @@ -4787,7 +5195,10 @@ char *buf; if (buf[0]) return buf; else +/*JP return "unknown"; +*/ + return "•s–¾"; } int @@ -4798,6 +5209,7 @@ dotogglepickup() flags.pickup = !flags.pickup; if (flags.pickup) { oc_to_str(flags.pickup_types, ocl); +#if 0 /*JP*/ Sprintf(buf, "ON, for %s objects%s", ocl[0] ? ocl : "all", (iflags.autopickup_exceptions[AP_LEAVE] || iflags.autopickup_exceptions[AP_GRAB]) @@ -4805,10 +5217,23 @@ dotogglepickup() ? ", with one exception" : ", with some exceptions") : ""); +#else + Sprintf(buf, "%sƒAƒCƒeƒ€‚ɂ‚¢‚ăIƒ“%s", ocl[0] ? ocl : "‘S‚Ä‚Ì", + (iflags.autopickup_exceptions[AP_LEAVE] + || iflags.autopickup_exceptions[AP_GRAB]) + ? "C—áŠO‚ ‚è" + : ""); +#endif } else { +/*JP Strcpy(buf, "OFF"); +*/ + Strcpy(buf, "ƒIƒt"); } +/*JP pline("Autopickup: %s.", buf); +*/ + pline("Ž©“®E‚¢F%sD", buf); return 0; } @@ -5022,25 +5447,49 @@ char *strval; /* data for option_help() */ static const char *opt_intro[] = { +/*JP "", " NetHack Options Help:", "", +*/ + "", " NetHackƒIƒvƒVƒ‡ƒ“ƒwƒ‹ƒvF", "", #define CONFIG_SLOT 3 /* fill in next value at run-time */ (char *) 0, #if !defined(MICRO) && !defined(MAC) +/*JP "or use `NETHACKOPTIONS=\"\"' in your environment", +*/ + "‚Ü‚½‚͊‹«•Ï”‚É`NETHACKOPTIONS=\"\"'‚Æ’è‹`‚Å‚«‚Ü‚·", #endif +/*JP "( is a list of options separated by commas)", +*/ + "(‚̓Jƒ“ƒ}‚Å‹æØ‚Á‚½ƒIƒvƒVƒ‡ƒ“‚Å‚·)", #ifdef VMS +/*JP "-- for example, $ DEFINE NETHACKOPTIONS \"noautopickup,fruit:kumquat\"", +*/ + "-- —Ⴆ‚ÎŽŸ‚̂悤‚É‚µ‚Ü‚·F$ DEFINE NETHACKOPTIONS \"noautopickup,fruit:kumquat\"", #endif +/*JP "or press \"O\" while playing and use the menu.", "", +*/ + "‚à‚µ‚­‚̓Q[ƒ€ƒvƒŒƒC’†‚É\"O\"ƒ{ƒ^ƒ“‚ð‰Ÿ‚·‚±‚ƂŐݒè‰Â”\‚Å‚·D", +/*JP "Boolean options (which can be negated by prefixing them with '!' or \"no\"):", +*/ + "^‹U’lƒIƒvƒVƒ‡ƒ“ (”Û’è‚Ì’l‚ðŽw’è‚·‚éê‡C'!'‚à‚µ‚­‚Í\"no\"‚ðæ“ª‚É•t‰Á‚µ‚Ü‚·):", (char *) 0 }; static const char *opt_epilog[] = { "", +/*JP "Some of the options can be set only before the game is started; those", +*/ + "ƒIƒvƒVƒ‡ƒ“‚ɂ̓Q[ƒ€ŠJŽn‘O‚Ì‚Ý‚É‚µ‚©Ý’è‚Å‚«‚È‚¢‚à‚Ì‚ª‚ ‚è‚Ü‚·D", +/*JP "items will not be selectable in the 'O' command's menu.", (char *) 0 +*/ + "‚»‚ê‚ç‚Í'O'ƒRƒ}ƒ“ƒh‚̃ƒjƒ…[‚Å‚Í‘I‘ð‚·‚é‚±‚Æ‚ª‚Å‚«‚Ü‚¹‚ñD", (char *) 0 }; void @@ -5051,7 +5500,10 @@ option_help() winid datawin; datawin = create_nhwindow(NHW_TEXT); +/*JP Sprintf(buf, "Set options as OPTIONS= in %s", lastconfigfile); +*/ + Sprintf(buf, "ƒIƒvƒVƒ‡ƒ“‚Í%s‚Ì’†‚ÅOPTIONS=‚Ɛݒ肵‚Ü‚·", lastconfigfile); opt_intro[CONFIG_SLOT] = (const char *) buf; for (i = 0; opt_intro[i]; i++) putstr(datawin, 0, opt_intro[i]); @@ -5069,7 +5521,10 @@ option_help() next_opt(datawin, ""); /* Compound options */ +/*JP putstr(datawin, 0, "Compound options:"); +*/ + putstr(datawin, 0, "•¶Žš—ñƒIƒvƒVƒ‡ƒ“:"); for (i = 0; compopt[i].name; i++) { Sprintf(buf2, "`%s'", compopt[i].name); Sprintf(buf, "%-20s - %s%c", buf2, compopt[i].descr, diff --git a/src/pager.c b/src/pager.c index 0a4fc87..20a2e98 100644 --- a/src/pager.c +++ b/src/pager.c @@ -52,8 +52,13 @@ const char *new_str; return 0; space_left = BUFSZ - strlen(buf) - 1; +#if 0 /*JP*/ (void) strncat(buf, " or ", space_left); (void) strncat(buf, new_str, space_left - 4); +#else + (void) strncat(buf, "‚Ü‚½‚Í", space_left); + (void) strncat(buf, new_str, space_left - 6); +#endif return 1; } @@ -67,13 +72,26 @@ char *outbuf; /* include race with role unless polymorphed */ race[0] = '\0'; if (!Upolyd) +/*JP Sprintf(race, "%s ", urace.adj); +*/ + Sprintf(race, "%s", urace.adj); +#if 0 /*JP*/ Sprintf(outbuf, "%s%s%s called %s", /* being blinded may hide invisibility from self */ (Invis && (senseself() || !Blind)) ? "invisible " : "", race, mons[u.umonnum].mname, plname); +#else + Sprintf(outbuf, "%s%s%s‚Æ‚¢‚¤–¼‚Ì%s", + (Invis && (senseself() || !Blind)) ? "Žp‚ÌŒ©‚¦‚È‚¢" : "", race, + plname, + mons[u.umonnum].mname); +#endif if (u.usteed) +/*JP Sprintf(eos(outbuf), ", mounted on %s", y_monnam(u.usteed)); +*/ + Sprintf(eos(outbuf), "C%s‚ɏæ‚Á‚Ä‚¢‚é", y_monnam(u.usteed)); return outbuf; } @@ -135,15 +153,32 @@ int x, y, glyph; Strcpy(buf, something); /* sanity precaution */ if (levl[x][y].typ == STONE || levl[x][y].typ == SCORR) +/*JP Strcat(buf, " embedded in stone"); +*/ + Strcat(buf, "CŠâ‚É–„‚ß‚±‚Ü‚ê‚Ä‚¢‚é"); else if (IS_WALL(levl[x][y].typ) || levl[x][y].typ == SDOOR) +/*JP Strcat(buf, " embedded in a wall"); +*/ + Strcat(buf, "C•Ç‚É–„‚ß‚±‚Ü‚ê‚Ä‚¢‚é"); else if (closed_door(x, y)) +/*JP Strcat(buf, " embedded in a door"); +*/ + Strcat(buf, "C”à‚É–„‚ß‚±‚Ü‚ê‚Ä‚¢‚é"); else if (is_pool(x, y)) + /*JP 3.4.3 ‚±‚Ì•”•ª‚Í•¨‘Ì‚É‚µ‚©Žg‚í‚ê‚È‚¢ */ +/*JP Strcat(buf, " in water"); +*/ + Strcat(buf, "C…’†‚É‚ ‚é"); else if (is_lava(x, y)) +#if 0 /*JP*/ Strcat(buf, " in molten lava"); /* [can this ever happen?] */ +#else + Strcat(buf, "C—nŠâ‚Ì’†‚É‚ ‚é"); /* [can this ever happen?] */ +#endif return; } @@ -161,6 +196,7 @@ int x, y; else name = distant_monnam(mtmp, ARTICLE_NONE, monnambuf); +#if 0 /*JP*/ Sprintf(buf, "%s%s%s", (mtmp->mx != x || mtmp->my != y) ? ((mtmp->isshk && accurate) ? "tail of " : "tail of a ") @@ -171,11 +207,26 @@ int x, y; ? "peaceful " : "", name); +#else + Sprintf(buf, "%s%s%s", + (mtmp->mtame && accurate) ? "Žè‚È‚¸‚¯‚ç‚ꂽ" : + (mtmp->mpeaceful && accurate) ? "—FD“I‚È" : "", + name, + (mtmp->mx != x || mtmp->my != y) ? + ((mtmp->isshk && accurate) + ? "‚̐K”ö" : "‚̐K”ö") : ""); +#endif if (u.ustuck == mtmp) Strcat(buf, (Upolyd && sticks(youmonst.data)) +/*JP ? ", being held" : ", holding you"); +*/ + ? "C‚ ‚È‚½‚ª’Í‚Ü‚¦‚Ä‚¢‚é" : "C‚ ‚È‚½‚ð’Í‚Ü‚¦‚Ä‚¢‚é"); if (mtmp->mleashed) +/*JP Strcat(buf, ", leashed to you"); +*/ + Strcat(buf, "C•R‚ÅŒ‹‚΂ê‚Ä‚¢‚é"); if (mtmp->mtrapped && cansee(mtmp->mx, mtmp->my)) { struct trap *t = t_at(mtmp->mx, mtmp->my); @@ -183,7 +234,10 @@ int x, y; /* newsym lets you know of the trap, so mention it here */ if (tt == BEAR_TRAP || tt == PIT || tt == SPIKED_PIT || tt == WEB) +/*JP Sprintf(eos(buf), ", trapped in %s", +*/ + Sprintf(eos(buf), ", %s‚É•ß‚Ü‚Á‚Ä‚¢‚é", an(defsyms[trap_to_defsym(tt)].explanation)); } @@ -193,48 +247,72 @@ int x, y; monbuf[0] = '\0'; if (how_seen != 0 && how_seen != MONSEEN_NORMAL) { if (how_seen & MONSEEN_NORMAL) { +/*JP Strcat(monbuf, "normal vision"); +*/ + Strcat(monbuf, "’ʏí‚ÌŽ‹Šo"); how_seen &= ~MONSEEN_NORMAL; /* how_seen can't be 0 yet... */ if (how_seen) Strcat(monbuf, ", "); } if (how_seen & MONSEEN_SEEINVIS) { +/*JP Strcat(monbuf, "see invisible"); +*/ + Strcat(monbuf, "Œ©‚¦‚È‚¢‚à‚Ì‚ðŒ©‚éŽ‹Šo"); how_seen &= ~MONSEEN_SEEINVIS; if (how_seen) Strcat(monbuf, ", "); } if (how_seen & MONSEEN_INFRAVIS) { +/*JP Strcat(monbuf, "infravision"); +*/ + Strcat(monbuf, "ÔŠOü‚ªŒ©‚¦‚鎋Šo"); how_seen &= ~MONSEEN_INFRAVIS; if (how_seen) Strcat(monbuf, ", "); } if (how_seen & MONSEEN_TELEPAT) { +/*JP Strcat(monbuf, "telepathy"); +*/ + Strcat(monbuf, "ƒeƒŒƒpƒV["); how_seen &= ~MONSEEN_TELEPAT; if (how_seen) Strcat(monbuf, ", "); } if (how_seen & MONSEEN_XRAYVIS) { /* Eyes of the Overworld */ +/*JP Strcat(monbuf, "astral vision"); +*/ + Strcat(monbuf, "¸_‚É‚æ‚鎋Šo"); how_seen &= ~MONSEEN_XRAYVIS; if (how_seen) Strcat(monbuf, ", "); } if (how_seen & MONSEEN_DETECT) { +/*JP Strcat(monbuf, "monster detection"); +*/ + Strcat(monbuf, "‰ö•¨‚ð”­Œ©‚·‚é”\—Í"); how_seen &= ~MONSEEN_DETECT; if (how_seen) Strcat(monbuf, ", "); } if (how_seen & MONSEEN_WARNMON) { if (Hallucination) +/*JP Strcat(monbuf, "paranoid delusion"); +*/ + Strcat(monbuf, "•ÎŽ·“I–Ï‘z"); else +/*JP Sprintf(eos(monbuf), "warned of %s", +*/ + Sprintf(eos(monbuf), "%s‚ðŒx‚µ‚Ä‚¢‚é", makeplural(mtmp->data->mname)); how_seen &= ~MONSEEN_WARNMON; if (how_seen) @@ -300,8 +378,13 @@ char *buf, *monbuf; } } else if (u.uswallow) { /* all locations when swallowed other than the hero are the monster */ +#if 0 /*JP*/ Sprintf(buf, "interior of %s", Blind ? "a monster" : a_monnam(u.ustuck)); +#else + Sprintf(buf, "%s‚Ì“à•”", + Blind ? "‰ö•¨" : a_monnam(u.ustuck)); +#endif pm = u.ustuck->data; } else if (glyph_is_monster(glyph)) { bhitpos.x = x; @@ -317,40 +400,70 @@ char *buf, *monbuf; Strcpy(buf, defsyms[trap_to_defsym(tnum)].explanation); } else if (!glyph_is_cmap(glyph)) { +/*JP Strcpy(buf, "unexplored area"); +*/ + Strcpy(buf, "–¢’Tõ‚̏ꏊ"); } else switch (glyph_to_cmap(glyph)) { case S_altar: +/*JP Sprintf(buf, "%s %saltar", +*/ + Sprintf(buf, "%s%sÕ’d", /* like endgame high priests, endgame high altars are only recognizable when immediately adjacent */ (Is_astralevel(&u.uz) && distu(x, y) > 2) +/*JP ? "aligned" +*/ + ? "‘®«‚Ì" : align_str( Amask2align(levl[x][y].altarmask & ~AM_SHRINE)), ((levl[x][y].altarmask & AM_SHRINE) && (Is_astralevel(&u.uz) || Is_sanctum(&u.uz))) +/*JP ? "high " +*/ + ? "‚ˆÊ‚Ì" : ""); break; case S_ndoor: if (is_drawbridge_wall(x, y) >= 0) +/*JP Strcpy(buf, "open drawbridge portcullis"); +*/ + Strcpy(buf,"ŠJ‚¢‚Ä‚¢‚é’µ‚Ë‹´"); else if ((levl[x][y].doormask & ~D_TRAPPED) == D_BROKEN) +/*JP Strcpy(buf, "broken door"); +*/ + Strcpy(buf,"‰ó‚ꂽ”à"); else +/*JP Strcpy(buf, "doorway"); +*/ + Strcpy(buf,"o“ü‚èŒû"); break; case S_cloud: Strcpy(buf, +/*JP Is_airlevel(&u.uz) ? "cloudy area" : "fog/vapor cloud"); +*/ + Is_airlevel(&u.uz) ? "“Ü‚Á‚Ä‚¢‚éêŠ" : "–¶/ö‹C‚̉_"); break; case S_stone: if (!levl[x][y].seenv) { +/*JP Strcpy(buf, "unexplored"); +*/ + Strcpy(buf, "–¢’Tõ"); break; } else if (levl[x][y].typ == STONE || levl[x][y].typ == SCORR) { +/*JP Strcpy(buf, "stone"); +*/ + Strcpy(buf, "Î"); break; } /*else FALLTHRU*/ @@ -388,7 +501,11 @@ boolean user_typed_name, without_asking; fp = dlb_fopen(DATAFILE, "r"); if (!fp) { +#if 0 /*JP*/ pline("Cannot open data file!"); +#else + pline("ƒf[ƒ^ƒtƒ@ƒCƒ‹‚ðŠJ‚¯‚È‚¢I"); +#endif return; } @@ -513,10 +630,16 @@ boolean user_typed_name, without_asking; return; } +/*JP if (user_typed_name || without_asking || yn("More info?") == 'y') { +*/ + if (user_typed_name || without_asking || yn("Ú×‚ðŒ©‚éH") == 'y') { if (dlb_fseek(fp, (long) txt_offset + entry_offset, SEEK_SET) < 0) { +/*JP pline("? Seek error on 'data' file!"); +*/ + pline("'data'ƒtƒ@ƒCƒ‹‚̃V[ƒNƒGƒ‰[I"); (void) dlb_fclose(fp); return; } @@ -534,7 +657,10 @@ boolean user_typed_name, without_asking; destroy_nhwindow(datawin); } } else if (user_typed_name) +/*JP pline("I don't have any information on those things."); +*/ + pline("‚»‚ñ‚È–¼‘O‚Í•·‚¢‚½‚±‚Æ‚ª‚È‚¢D"); (void) dlb_fclose(fp); } @@ -556,7 +682,10 @@ const char **firstmatch; int skipped_venom = 0; boolean hit_trap; const char *x_str; +/*JP static const char *mon_interior = "the interior of a monster"; +*/ + static const char *mon_interior = "‰ö•¨‚Ì“à•”"; if (looked) { int oc; @@ -613,7 +742,11 @@ const char **firstmatch; && cc.x == u.ux && cc.y == u.uy) : (sym == def_monsyms[S_HUMAN].sym && !flags.showrace)) && !(Race_if(PM_HUMAN) || Race_if(PM_ELF)) && !Upolyd) +#if 0 /*JP*/ found += append_str(out_str, "you"); /* tack on "or you" */ +#else + found += append_str(out_str, "‚ ‚È‚½"); /* tack on "or you" */ +#endif /* Now check for objects */ for (i = 1; i < MAXOCLASSES; i++) { @@ -662,6 +795,7 @@ const char **firstmatch; /* alt_i is now 3 or more and no longer of interest */ } if (sym == (looked ? showsyms[i] : defsyms[i].sym) && *x_str) { +#if 0 /*JP*//*“ú–{Œê‚É‚ÍŠÖŒW‚È‚¢*/ /* avoid "an unexplored", "an stone", "an air", "a water", "a floor of a room", "a dark part of a room"; article==2 => "the", 1 => "an", 0 => (none) */ @@ -670,14 +804,22 @@ const char **firstmatch; || strcmp(x_str, "air") == 0 || strcmp(x_str, "water") == 0); +#endif if (!found) { if (is_cmap_trap(i)) { +/*JP Sprintf(out_str, "%sa trap", prefix); +*/ + Sprintf(out_str, "%sã©", prefix); hit_trap = TRUE; } else { +#if 0 /*JP*/ Sprintf(out_str, "%s%s", prefix, article == 2 ? the(x_str) : article == 1 ? an(x_str) : x_str); +#else + Sprintf(out_str, "%s%s", prefix, x_str); +#endif } *firstmatch = x_str; found++; @@ -688,9 +830,13 @@ const char **firstmatch; && (i != S_vibrating_square || Inhell || (looked && glyph_is_trap(glyph) && glyph_to_trap(glyph) == VIBRATING_SQUARE))) { +#if 0 /*JP*/ found += append_str(out_str, (article == 2) ? the(x_str) : (article == 1) ? an(x_str) : x_str); +#else + found += append_str(out_str, x_str); +#endif if (is_cmap_trap(i)) hit_trap = TRUE; } @@ -734,11 +880,17 @@ const char **firstmatch; /* handle optional boulder symbol as a special case */ if (iflags.bouldersym && sym == iflags.bouldersym) { if (!found) { +/*JP *firstmatch = "boulder"; +*/ + *firstmatch = "Šâ"; Sprintf(out_str, "%s%s", prefix, an(*firstmatch)); found++; } else { +/*JP found += append_str(out_str, "boulder"); +*/ + found += append_str(out_str, "Šâ"); } } @@ -778,7 +930,10 @@ const char **firstmatch; #define LOOK_VERBOSE 3 /* ':' -- show more info w/o asking */ /* also used by getpos hack in do_name.c */ +/*JP const char what_is_an_unknown_object[] = "an unknown object"; +*/ +const char what_is_an_unknown_object[] = "“ä‚Ì•¨‘Ì"; int do_look(mode, click_cc) @@ -890,7 +1045,10 @@ coord *click_cc; } case '?': from_screen = FALSE; +/*JP getlin("Specify what? (type the word)", out_str); +*/ + getlin("‰½‚𒲂ׂéH(•¶Žš‚ð“ü‚ê‚Ä‚Ë)", out_str); if (out_str[0] == '\0' || out_str[0] == '\033') return 0; @@ -935,10 +1093,17 @@ coord *click_cc; if (from_screen || clicklook) { if (from_screen) { if (flags.verbose) +#if 0 /*JP*/ pline("Please move the cursor to %s.", what_is_an_unknown_object); +#else + pline("ƒJ[ƒ\ƒ‹‚𕨑̂Ɉړ®‚µ‚Ä‚­‚¾‚³‚¢D"); +#endif else +/*JP pline("Pick an object."); +*/ + pline("•¨‘Ì‚ðŽw’肵‚Ä‚­‚¾‚³‚¢D"); ans = getpos(&cc, quick, what_is_an_unknown_object); if (ans < 0 || cc.x < 0) { @@ -969,7 +1134,10 @@ coord *click_cc; (boolean) (ans == LOOK_VERBOSE)); } } else { +/*JP pline("I've never heard of such things."); +*/ + pline("‚»‚ñ‚È–¼‘O‚Í•·‚¢‚½‚±‚Æ‚ª‚È‚¢D"); } } while (from_screen && !quick && ans != LOOK_ONCE && !clicklook); @@ -1100,6 +1268,7 @@ doidtrap() break; } tt = what_trap(tt); +#if 0 /*JP*/ pline("That is %s%s%s.", an(defsyms[trap_to_defsym(tt)].explanation), !trap->madeby_u @@ -1113,9 +1282,23 @@ doidtrap() ? " dug" : " set", !trap->madeby_u ? "" : " by you"); +#else + pline("‚»‚ê‚Í%s%s‚¾D", + !trap->madeby_u + ? "" + : (tt == WEB) + ? "‚ ‚È‚½‚ª’£‚Á‚½" + : (tt == HOLE || tt == PIT) + ? "‚ ‚È‚½‚ªŒ@‚Á‚½" + : "‚ ‚È‚½‚ªŽdŠ|‚¯‚½", + defsyms[trap_to_defsym(tt)].explanation); +#endif return 0; } +/*JP pline("I can't see a trap there."); +*/ + pline("‚»‚±‚É‚Í㩂݂͂ ‚½‚ç‚È‚¢D"); return 0; } @@ -1130,7 +1313,11 @@ char *cbuf; fp = dlb_fopen(CMDHELPFILE, "r"); if (!fp) { +#if 0 /*JP*/ pline("Cannot open data file!"); +#else + pline("ƒf[ƒ^ƒtƒ@ƒCƒ‹‚ðŠJ‚¯‚È‚¢I"); +#endif return 0; } @@ -1174,7 +1361,10 @@ dowhatdoes() #if defined(UNIX) || defined(VMS) introff(); #endif +/*JP q = yn_function("What command?", (char *) 0, '\0'); +*/ + q = yn_function("‚Ç‚¤‚¢‚¤ƒRƒ}ƒ“ƒhH", (char *) 0, '\0'); #if defined(UNIX) || defined(VMS) intron(); #endif @@ -1182,7 +1372,10 @@ dowhatdoes() if (reslt) pline1(reslt); else +/*JP pline("I've never heard of such commands."); +*/ + pline("‚»‚ñ‚ȃRƒ}ƒ“ƒh‚Í•·‚¢‚½‚±‚Æ‚ª‚È‚¢D"); return 0; } @@ -1218,6 +1411,7 @@ docontact() /* data for help_menu() */ static const char *help_menu_items[] = { +#if 0 /*JP*/ /* 0*/ "About NetHack (version information).", /* 1*/ "Long description of the game and commands.", /* 2*/ "List of game commands.", @@ -1237,6 +1431,27 @@ static const char *help_menu_items[] = { #define WIZHLP_SLOT 11 #endif "List of wizard-mode commands.", "", (char *) 0 +#else /*JP*/ + /* 0*/ "NetHack‚ɂ‚¢‚Ä(ƒo[ƒWƒ‡ƒ“î•ñ)", + /* 1*/ "ƒQ[ƒ€‚¨‚æ‚уRƒ}ƒ“ƒh‚̉ðà(’·•¶)", + /* 2*/ "ƒRƒ}ƒ“ƒhˆê——", + /* 3*/ "NetHack‚ÌŠÈ’P‚È—ðŽj", + /* 4*/ "‰æ–Ê‚É•\Ž¦‚³‚ê‚镶Žš‚Ìà–¾", + /* 5*/ "‚±‚̃L[‚ª‰½‚ðˆÓ–¡‚·‚é‚©‚Ìà–¾", + /* 6*/ "ƒQ[ƒ€‚̃IƒvƒVƒ‡ƒ“ˆê——", + /* 7*/ "ƒQ[ƒ€‚̃IƒvƒVƒ‡ƒ“ˆê——(’·•¶)", + /* 8*/ "Šg’£ƒRƒ}ƒ“ƒhˆê——", + /* 9*/ "NetHack‚̃‰ƒCƒZƒ“ƒX", + /* 10*/ "ƒTƒ|[ƒgî•ñ", +#ifdef PORT_HELP + "%s‚É“Á—L‚̃wƒ‹ƒv‚¨‚æ‚уRƒ}ƒ“ƒh", +#define PORT_HELP_ID 100 +#define WIZHLP_SLOT 12 +#else +#define WIZHLP_SLOT 11 +#endif + "ƒEƒBƒU[ƒhƒ‚[ƒh‚̃Rƒ}ƒ“ƒhˆê——", "", (char *) 0 +#endif /*JP*/ }; STATIC_OVL boolean @@ -1271,7 +1486,10 @@ int *sel; add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, help_menu_items[i], MENU_UNSELECTED); } +/*JP end_menu(tmpwin, "Select one item:"); +*/ + end_menu(tmpwin, "‘I‚ñ‚Å‚­‚¾‚³‚¢F"); n = select_menu(tmpwin, PICK_ONE, &selected); destroy_nhwindow(tmpwin); if (n > 0) { diff --git a/src/pickup.c b/src/pickup.c index 0fa4e65..2a193c3 100644 --- a/src/pickup.c +++ b/src/pickup.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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. */ + /* * Contains code for picking objects up, and container use. */ @@ -67,9 +72,18 @@ STATIC_DCL void FDECL(tipcontainer, (struct obj *)); static NEARDATA struct obj *current_container; #define Icebox (current_container->otyp == ICE_BOX) +/*JP static const char moderateloadmsg[] = "You have a little trouble lifting"; +*/ +static const char moderateloadmsg[] = "‚ðŽ‚Á‚½‚班‚µ‚Ó‚ç‚‚¢‚½D"; +/*JP static const char nearloadmsg[] = "You have much trouble lifting"; +*/ +static const char nearloadmsg[] = "‚Í‚¸‚Á‚µ‚è‚ÆŒ¨‚É‚Ì‚µ‚©‚©‚Á‚½D"; +/*JP static const char overloadmsg[] = "You have extreme difficulty lifting"; +*/ +static const char overloadmsg[] = "‚ðŽ‚¿‚ ‚°‚é‚Ì‚Í‚Æ‚Ä‚à‚‚炢D"; /* BUG: this lets you look at cockatrice corpses while blind without touching them */ @@ -135,6 +149,11 @@ int *itemcount; * "?/a" or "a?/" or "/a?",&c picks all '?' even though no '/' * (ie, treated as if it had just been "?a"). */ +/*JP CHECK: 3.4.3 ‚ł̌Ăяo‚µŒ³ +pickup.c:572:("E‚¤") if (!query_classes(oclasses, &selective, &all_of_a_type, +pickup.c:2604:("Žæ‚èo‚·") if (query_classes(select, &one_by_one, &allflag, +pickup.c:2704:("“ü‚ê‚é") if (query_classes(select, &one_by_one, &allflag, "“ü‚ê‚é", +*/ STATIC_OVL boolean query_classes(oclasses, one_at_a_time, everything, action, objs, here, menu_on_demand) @@ -183,8 +202,13 @@ int *menu_on_demand; oclasses[oclassct = 0] = '\0'; *one_at_a_time = *everything = FALSE; not_everything = FALSE; +#if 0 /*JP*/ Sprintf(qbuf, "What kinds of thing do you want to %s? [%s]", action, ilets); +#else + Sprintf(qbuf,"‚Ç‚ÌŽí—Þ‚Ì‚à‚Ì‚ð%s‚©H[%s]", jpolite(action), + ilets); +#endif getlin(qbuf, inbuf); if (*inbuf == '\033') return FALSE; @@ -218,13 +242,28 @@ int *menu_on_demand; } else { if (!where) where = +/*JP !strcmp(action, "pick up") +*/ + !strcmp(action, "E‚¤") +/*JP ? "here" +*/ + ? "‚±‚±" +/*JP : !strcmp(action, "take out") ? "inside" : ""; +*/ + : !strcmp(action, "Žæ‚èo‚·") ? "‚Ì’†" : ""; if (*where) +/*JP There("are no %c's %s.", sym, where); +*/ + pline("%c‚Í%s‚É‚È‚¢D", sym, where); else +/*JP You("have no %c's.", sym); +*/ + You("%c‚ÍŽ‚Á‚Ä‚¢‚È‚¢D", sym); not_everything = TRUE; } } @@ -258,7 +297,10 @@ boolean remotely; return FALSE; } +/*JP pline("Touching %s is a fatal mistake.", +*/ + pline("%s‚ɐG‚ê‚é‚Ì‚Í’v–½“I‚ȊԈႢ‚¾D", corpse_xname(obj, (const char *) 0, CXN_SINGULAR | CXN_ARTICLE)); instapetrify(killer_xname(obj)); return TRUE; @@ -273,8 +315,14 @@ boolean remotely; if (!obj || obj->otyp != CORPSE || !is_rider(&mons[obj->corpsenm])) return FALSE; +/*JP pline("At your %s, the corpse suddenly moves...", +*/ + pline("‚ ‚È‚½‚ª%s‚é‚Æ“Ë‘RŽ€‘Ì‚ª“®‚«o‚µ‚½DDD", +/*JP remotely ? "attempted acquisition" : "touch"); +*/ + remotely ? "Šl“¾‚µ‚悤‚Æ‚·" : "G"); (void) revive_corpse(obj); exercise(A_WIS, FALSE); return TRUE; @@ -504,7 +552,10 @@ int what; /* should be a long */ } if (notake(youmonst.data)) { if (!autopickup) +/*JP You("are physically incapable of picking anything up."); +*/ + You("•¨—“I‚ɏE‚¢‚ ‚°‚邱‚Æ‚ª‚Å‚«‚È‚¢D"); else check_here(FALSE); return 0; @@ -539,7 +590,10 @@ int what; /* should be a long */ /* use menus exclusively */ if (count) { /* looking for N of something */ char buf[QBUFSZ]; +/*JP Sprintf(buf, "Pick %d of what?", count); +*/ + Sprintf(buf, "‰½‚ð%dŒÂE‚¢‚Ü‚·‚©H", count); val_for_n_or_more = count; /* set up callback selector */ n = query_objlist(buf, objchain, traverse_how | AUTOSELECT_SINGLE | INVORDER_SORT, @@ -548,7 +602,10 @@ int what; /* should be a long */ for (i = 0; i < n; i++) pick_list[i].count = count; } else { +/*JP n = query_objlist("Pick up what?", objchain, +*/ + n = query_objlist("‰½‚ðE‚¢‚Ü‚·‚©H", objchain, traverse_how | AUTOSELECT_SINGLE | INVORDER_SORT | FEEL_COCKATRICE, &pick_list, PICK_ANY, all_but_uchain); @@ -594,14 +651,23 @@ int what; /* should be a long */ } else if (ct >= 2) { int via_menu = 0; +/*JP There("are %s objects here.", (ct <= 10) ? "several" : "many"); +*/ + pline("‚±‚±‚É‚Í%s‚à‚Ì‚ª‚ ‚éD", (ct <= 10) ? "‚¢‚­‚‚©" : "‘òŽR‚Ì"); if (!query_classes(oclasses, &selective, &all_of_a_type, +/*JP "pick up", objchain, +*/ + "E‚¤", objchain, traverse_how == BY_NEXTHERE, &via_menu)) { if (!via_menu) return 0; n = query_objlist( +/*JP "Pick up what?", objchain, +*/ + "‰½‚ðE‚¢‚Ü‚·‚©H", objchain, traverse_how | (selective ? 0 : INVORDER_SORT), &pick_list, PICK_ANY, via_menu == -2 ? allow_all : allow_category); @@ -622,8 +688,13 @@ int what; /* should be a long */ if (!all_of_a_type) { char qbuf[BUFSZ]; +#if 0 /*JP*/ (void) safe_qbuf(qbuf, "Pick up ", "?", obj, doname, ansimpleoname, something); +#else + (void) safe_qbuf(qbuf, "", "‚ðE‚¢‚Ü‚·‚©H", obj, doname, + ansimpleoname, "‚±‚ê"); +#endif switch ((obj->quan < 2L) ? ynaq(qbuf) : ynNaq(qbuf)) { case 'q': goto end_query; /* out 2 levels */ @@ -1001,7 +1072,10 @@ int how; /* type of query */ any = zeroany; any.a_int = ALL_TYPES_SELECTED; add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE, +/*JP (qflags & WORN_TYPES) ? "All worn types" : "All types", +*/ + (qflags & WORN_TYPES) ? "g‚ɂ‚¯‚é‚à‚Ì‘S‚Ä" : "‘S‚Ä", MENU_UNSELECTED); invlet = 'b'; } else @@ -1038,7 +1112,10 @@ int how; /* type of query */ invlet = 'u'; any = zeroany; any.a_int = 'u'; +/*JP add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE, "Unpaid items", +*/ + add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE, "–¢•¥‚Ì‚à‚Ì", MENU_UNSELECTED); } /* billed items: checked by caller, so always include if BILLED_TYPES */ @@ -1047,15 +1124,24 @@ int how; /* type of query */ any = zeroany; any.a_int = 'x'; add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE, +/*JP "Unpaid items already used up", MENU_UNSELECTED); +*/ + "–¢•¥‚ÅŽg‚Á‚Ä‚µ‚Ü‚Á‚½‚à‚Ì", MENU_UNSELECTED); } if (qflags & CHOOSE_ALL) { invlet = 'A'; any = zeroany; any.a_int = 'A'; add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE, +/*JP (qflags & WORN_TYPES) ? "Auto-select every item being worn" +*/ + (qflags & WORN_TYPES) ? "g‚ɂ‚¯‚ç‚ê‚镨‘S‚Ä" +/*JP : "Auto-select every item", +*/ + : "‘S‚Ä", MENU_UNSELECTED); } /* items with b/u/c/unknown if there are any */ @@ -1064,28 +1150,40 @@ int how; /* type of query */ any = zeroany; any.a_int = 'B'; add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE, +/*JP "Items known to be Blessed", MENU_UNSELECTED); +*/ + "j•Ÿ‚³‚ê‚Ä‚¢‚é‚Æ‚í‚©‚Á‚Ä‚¢‚é‚à‚Ì", MENU_UNSELECTED); } if (do_cursed) { invlet = 'C'; any = zeroany; any.a_int = 'C'; add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE, +/*JP "Items known to be Cursed", MENU_UNSELECTED); +*/ + "Žô‚í‚ê‚Ä‚¢‚é‚Æ‚í‚©‚Á‚Ä‚¢‚é‚à‚Ì", MENU_UNSELECTED); } if (do_uncursed) { invlet = 'U'; any = zeroany; any.a_int = 'U'; add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE, +/*JP "Items known to be Uncursed", MENU_UNSELECTED); +*/ + "Žô‚í‚ê‚Ä‚¢‚È‚¢‚Æ‚í‚©‚Á‚Ä‚¢‚é‚à‚Ì", MENU_UNSELECTED); } if (do_buc_unknown) { invlet = 'X'; any = zeroany; any.a_int = 'X'; add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE, +/*JP "Items of unknown B/C/U status", MENU_UNSELECTED); +*/ + "j•Ÿ^Žô‚¢‚ª‚í‚©‚ç‚È‚¢‚à‚Ì", MENU_UNSELECTED); } end_menu(win, qstr); n = select_menu(win, how, pick_list); @@ -1137,7 +1235,11 @@ int *wt_before, *wt_after; int wt, iw, ow, oow; long qq, savequan, umoney; unsigned saveowt; +#if 0 /*JP*/ const char *verb, *prefx1, *prefx2, *suffx; +#else + const char *verb, *prefx1; +#endif char obj_nambuf[BUFSZ], where[BUFSZ]; savequan = obj->quan; @@ -1227,11 +1329,23 @@ int *wt_before, *wt_after; /* some message will be given */ Strcpy(obj_nambuf, doname(obj)); if (container) { +/*JP Sprintf(where, "in %s", the(xname(container))); +*/ + Sprintf(where, "%s‚Ì’†‚É“ü‚Á‚Ä‚¢‚é", the(xname(container))); +/*JP verb = "carry"; +*/ + verb = "‰^‚ׂȂ¢"; } else { +/*JP Strcpy(where, "lying here"); +*/ + Strcpy(where, "‚±‚±‚É’u‚¢‚Ä‚ ‚é"); +/*JP verb = telekinesis ? "acquire" : "lift"; +*/ + verb = telekinesis ? "Šl“¾‚Å‚«‚È‚¢" : "Ž‚¿‚ ‚°‚ç‚ê‚È‚¢"; } } else { /* lint suppression */ @@ -1241,25 +1355,47 @@ int *wt_before, *wt_after; /* we can carry qq of them */ if (qq > 0) { if (qq < count) +#if 0 /*JP*/ You("can only %s %s of the %s %s.", verb, (qq == 1L) ? "one" : "some", obj_nambuf, where); +#else + You("%s%s‚Ì‚¤‚¿‚Ì%s‚µ‚©%sD", + where, obj_nambuf, (qq == 1L) ? "‚P‚Â" : "‚¢‚­‚‚©", verb); +#endif *wt_after = wt; return qq; } if (!container) +#if 0 /*JP*/ Strcpy(where, "here"); /* slightly shorter form */ +#else + Strcpy(where, "‚±‚±‚É‚Í"); /* slightly shorter form */ +#endif if (invent || umoney) { +#if 0 /*JP*/ prefx1 = "you cannot "; prefx2 = ""; suffx = " any more"; +#else + prefx1 = "‚±‚êˆÈã"; +#endif } else { +#if 0 /*JP*/ prefx1 = (obj->quan == 1L) ? "it " : "even one "; prefx2 = "is too heavy for you to "; suffx = ""; +#else + prefx1 = "d‚·‚¬‚Ä"; +#endif } +#if 0 /*JP:C*/ There("%s %s %s, but %s%s%s%s.", otense(obj, "are"), obj_nambuf, where, prefx1, prefx2, verb, suffx); +#else + pline("%s%s‚ª‚ ‚éC‚µ‚©‚µ%s%sD", + where, obj_nambuf, prefx1, verb); +#endif /* *wt_after = iw; */ return 0L; @@ -1276,8 +1412,13 @@ boolean telekinesis; int result, old_wt, new_wt, prev_encumbr, next_encumbr; if (obj->otyp == BOULDER && Sokoban) { +#if 0 /*JP*/ You("cannot get your %s around this %s.", body_part(HAND), xname(obj)); +#else + You("%s‚ð%s‚ÅŽ‚¿‚ ‚°‚邱‚Æ‚ª‚Å‚«‚È‚¢D", + xname(obj), body_part(HAND)); +#endif return -1; } /* override weight consideration for loadstone picked up by anybody @@ -1290,8 +1431,13 @@ boolean telekinesis; return 1; /* lift regardless of current situation */ /* if we reach here, we're out of slots and already have at least one of these, so treat this one more like a normal item */ +#if 0 /*JP*/ You("are carrying too much stuff to pick up %s %s.", (obj->quan == 1L) ? "another" : "more", simpleonames(obj)); +#else + You("%s‚ð%sE‚¤‚É‚Í•¨‚ðŽ‚¿‚·‚¬‚Ä‚¢‚éD", + simpleonames(obj), (obj->quan == 1L) ? "‚à‚¤ˆê‚Â" : "‚à‚Á‚Æ"); +#endif return -1; } @@ -1303,7 +1449,10 @@ boolean telekinesis; /* [exception for gold coins will have to change if silver/copper ones ever get implemented] */ && inv_cnt(FALSE) >= 52 && !merge_choice(invent, obj)) { +/*JP Your("knapsack cannot accommodate any more items."); +*/ + Your("ƒiƒbƒvƒUƒbƒN‚Í‚±‚êˆÈãƒAƒCƒeƒ€‚ð‹l‚ߍž‚ß‚È‚¢D"); result = -1; /* nothing lifted */ } else { result = 1; @@ -1387,9 +1536,14 @@ boolean telekinesis; /* not picking it up directly by hand */ else if (!obj->spe && !obj->cursed) obj->spe = 1; else { +#if 0 /*JP*/ pline_The("scroll%s %s to dust as you %s %s up.", plur(obj->quan), otense(obj, "turn"), telekinesis ? "raise" : "pick", (obj->quan == 1L) ? "it" : "them"); +#else + pline("Šª•¨‚Í‚ ‚È‚½‚ª%sã‚°‚é‚Ɛo‚Æ‚È‚Á‚Ä‚µ‚Ü‚Á‚½D", + telekinesis ? "Ž‚¿" : "E‚¢"); +#endif if (!(objects[SCR_SCARE_MONSTER].oc_name_known) && !(objects[SCR_SCARE_MONSTER].oc_uname)) docall(obj); @@ -1464,35 +1618,62 @@ encumber_msg() if (oldcap < newcap) { switch (newcap) { case 1: +/*JP Your("movements are slowed slightly because of your load."); +*/ + Your("“®‚«‚͉ו¨‚Ì‚½‚߂ɏ­‚µ’x‚­‚È‚Á‚½D"); break; case 2: +/*JP You("rebalance your load. Movement is difficult."); +*/ + You("‰×•¨‚̒ލ‡‚ð‚Æ‚è’¼‚µ‚½‚ªC“®‚«‚É‚­‚¢D"); break; case 3: +#if 0 /*JP*/ You("%s under your heavy load. Movement is very hard.", stagger(youmonst.data, "stagger")); +#else + You("‰×•¨‚̏d‚Ý‚Å‚Ì‚½‚¤‚¿‚Ü‚í‚Á‚½D“®‚­‚Ì‚ª”ñí‚É‚«‚‚¢D"); +#endif break; default: +#if 0 /*JP*/ You("%s move a handspan with this load!", newcap == 4 ? "can barely" : "can't even"); +#else + You("‚±‚̏d‚³‚ł͏­‚µ‚à“®‚¯‚È‚¢I"); +#endif break; } context.botl = 1; } else if (oldcap > newcap) { switch (newcap) { case 0: +/*JP Your("movements are now unencumbered."); +*/ + Your("“®‚«‚ÍŠy‚É‚È‚Á‚½D"); break; case 1: +/*JP Your("movements are only slowed slightly by your load."); +*/ + You("‚¿‚å‚Á‚Æ“®‚«‚â‚·‚­‚È‚Á‚½D"); break; case 2: +/*JP You("rebalance your load. Movement is still difficult."); +*/ + You("‰×•¨‚̒ލ‡‚ð‚Æ‚è’¼‚µ‚½D‚¾‚ª‚Ü‚¾“®‚­‚Ì‚Í‚«‚‚¢D"); break; case 3: +#if 0 /*JP*/ You("%s under your load. Movement is still very hard.", stagger(youmonst.data, "stagger")); +#else + You("‰×•¨‚̏d‚Ý‚ª‚¸‚Á‚µ‚è‚ÆŒ¨‚É‚­‚éD‚Ü‚¾“®‚­‚Ì‚ª”ñí‚É‚«‚‚¢D"); +#endif break; } context.botl = 1; @@ -1527,7 +1708,10 @@ able_to_loot(x, y, looting) int x, y; boolean looting; /* loot vs tip */ { +/*JP const char *verb = looting ? "loot" : "tip"; +*/ + const char *verb = looting ? "ŠJ‚¯‚é" : "‚ЂÁ‚­‚è•Ô‚·"; if (!can_reach_floor(TRUE)) { if (u.usteed && P_SKILL(P_RIDING) < P_BASIC) @@ -1538,14 +1722,25 @@ boolean looting; /* loot vs tip */ } else if ((is_pool(x, y) && (looting || !Underwater)) || is_lava(x, y)) { /* at present, can't loot in water even when Underwater; can tip underwater, but not when over--or stuck in--lava */ +#if 0 /*JP*/ You("cannot %s things that are deep in the %s.", verb, is_lava(x, y) ? "lava" : "water"); +#else + You("%s‚ɐ[‚­‚É’¾‚ñ‚¾‚à‚Ì‚ð%s‚±‚Æ‚Í‚Å‚«‚È‚¢D", + is_lava(u.ux, u.uy) ? "—nŠâ" : "…", verb); +#endif return FALSE; } else if (nolimbs(youmonst.data)) { +/*JP pline("Without limbs, you cannot %s anything.", verb); +*/ + pline("Žè‘«‚ª‚È‚¢‚̂ŁC%s‚±‚Æ‚Í‚Å‚«‚È‚¢D", verb); return FALSE; } else if (looting && !freehand()) { +/*JP pline("Without a free %s, you cannot loot anything.", +*/ + pline("Ž©—R‚É‚È‚é%s‚ª‚È‚¢‚̂ŁCŠJ‚¯‚邱‚Æ‚Í‚Å‚«‚È‚¢D", body_part(HAND)); return FALSE; } @@ -1575,8 +1770,12 @@ struct obj **cobjp; if (!cobj) return 0; if (cobj->olocked) { +#if 0 /*JP*/ pline("%s locked.", cobj->lknown ? "It is" : "Hmmm, it turns out to be"); +#else + pline("%sŒ®‚ª‚©‚©‚Á‚Ä‚¢‚éD", cobj->lknown ? "" : "‚ށ[‚ñC"); +#endif cobj->lknown = 1; return 0; } @@ -1584,15 +1783,27 @@ struct obj **cobjp; if (cobj->otyp == BAG_OF_TRICKS) { int tmp; +/*JP You("carefully open the bag..."); +*/ + You("Td‚ÉŠ“‚ðŠJ‚¯‚½DDD"); +/*JP pline("It develops a huge set of teeth and bites you!"); +*/ + pline("Š“‚©‚ç‘å‚«‚ÈŽ•‚ª¶‚¦‚Ä‚«‚āC‚ ‚È‚½‚ðŠš‚ñ‚¾I"); tmp = rnd(10); +/*JP losehp(Maybe_Half_Phys(tmp), "carnivorous bag", KILLED_BY_AN); +*/ + losehp(Maybe_Half_Phys(tmp), "H“÷Š“‚ÉŠš‚Ü‚ê‚Ä", KILLED_BY_AN); makeknown(BAG_OF_TRICKS); return 1; } +/*JP You("%sopen %s...", (!cobj->cknown || !cobj->lknown) ? "carefully " : "", +*/ + You("%s%s‚ðŠJ‚¯‚½DDD", (!cobj->cknown || !cobj->lknown) ? "Td‚É" : "", the(xname(cobj))); return use_container(cobjp, 0); } @@ -1606,7 +1817,9 @@ doloot() int timepassed = 0; coord cc; boolean underfoot = TRUE; +#if 0 /*JP*/ const char *dont_find_anything = "don't find anything"; +#endif struct monst *mtmp; char qbuf[BUFSZ]; int prev_inquiry = 0; @@ -1618,7 +1831,11 @@ doloot() return 0; } if (nohands(youmonst.data)) { +#if 0 /*JP*/ You("have no hands!"); /* not `body_part(HAND)' */ +#else + pline("‚ ‚È‚½‚ɂ͎肪‚È‚¢I"); +#endif return 0; } if (Confusion) { @@ -1658,7 +1875,10 @@ lootcont: add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, doname(cobj), MENU_UNSELECTED); } +/*JP end_menu(win, "Loot which containers?"); +*/ + end_menu(win, "‚Ç‚ê‚ðŠJ‚¯‚Ü‚·‚©H"); n = select_menu(win, PICK_ANY, &pick_list); destroy_nhwindow(win); @@ -1680,9 +1900,15 @@ lootcont: nobj = cobj->nexthere; if (Is_container(cobj)) { +#if 0 /*JP*/ c = ynq(safe_qbuf(qbuf, "There is ", " here, loot it?", cobj, doname, ansimpleoname, "a container")); +#else + c = ynq(safe_qbuf(qbuf, "‚±‚±‚É‚Í", "‚ª‚ ‚éCŠJ‚¯‚Ü‚·‚©H", + cobj, doname, ansimpleoname, + "“ü‚ꕨ")); +#endif if (c == 'q') return timepassed; if (c == 'n') @@ -1700,14 +1926,23 @@ lootcont: c = 'y'; } } else if (IS_GRAVE(levl[cc.x][cc.y].typ)) { +/*JP You("need to dig up the grave to effectively loot it..."); +*/ + You("•ær‚炵‚ð‚·‚é‚É‚ÍŒ@‚ç‚È‚­‚ẮDDD"); } /* * 3.3.1 introduced directional looting for some things. */ if (c != 'y' && mon_beside(u.ux, u.uy)) { +/*JP if (!get_adjacent_loc("Loot in what direction?", +*/ + if (!get_adjacent_loc("‚Ç‚Ì•ûŒü‚𒲂ׂéH", +/*JP "Invalid loot location", u.ux, u.uy, &cc)) +*/ + "–³Œø‚È•ûŒü", u.ux, u.uy, &cc)) return 0; if (cc.x == u.ux && cc.y == u.uy) { underfoot = TRUE; @@ -1716,8 +1951,13 @@ lootcont: } else underfoot = FALSE; if (u.dz < 0) { +#if 0 /*JP*/ You("%s to loot on the %s.", dont_find_anything, ceiling(cc.x, cc.y)); +#else + You("%s‚𒲂ׂ½‚ª‰½‚à‚݂‚©‚ç‚È‚©‚Á‚½D", + ceiling(cc.x, cc.y)); +#endif timepassed = 1; return timepassed; } @@ -1737,21 +1977,40 @@ lootcont: if (!underfoot) { if (container_at(cc.x, cc.y, FALSE)) { if (mtmp) { +#if 0 /*JP*/ You_cant("loot anything %sthere with %s in the way.", prev_inquiry ? "else " : "", mon_nam(mtmp)); +#else + pline("%s‚ª‚¢‚é‚Ì‚Å%s” ‚ðŠJ‚¯‚ç‚ê‚È‚¢D", + mon_nam(mtmp), prev_inquiry ? "‚Ù‚©‚Ì" : ""); +#endif return timepassed; } else { +#if 0 /*JP*/ You("have to be at a container to loot it."); +#else + You("‚Í” ‚ðŠJ‚¯‚邽‚ß‚É‚Í“¯‚¶ˆÊ’u‚É‚¢‚È‚¯‚ê‚΂Ȃç‚È‚¢D"); +#endif } } else { +#if 0 /*JP*/ You("%s %sthere to loot.", dont_find_anything, (prev_inquiry || prev_loot) ? "else " : ""); +#else + pline("‚±‚±‚É‚Í%sŠJ‚¯‚ç‚ê‚é‚à‚Ì‚Í‚È‚¢D", + (prev_inquiry || prev_loot) ? "‚Ù‚©‚É" : ""); +#endif return timepassed; } } } else if (c != 'y' && c != 'n') { +#if 0 /*JP*/ You("%s %s to loot.", dont_find_anything, underfoot ? "here" : "there"); +#else + pline("%s‚É‚ÍŠJ‚¯‚ç‚ê‚é‚à‚Ì‚Í‚È‚¢D", + underfoot ? "‚±‚±" : "‚»‚±"); +#endif } return timepassed; } @@ -1791,7 +2050,10 @@ reverse_loot() dropx(goldob); /* the dropped gold might have fallen to lower level */ if (g_at(x, y)) +/*JP pline("Ok, now there is loot here."); +*/ + pline("ƒI[ƒP[C‚±‚±‚ɘd˜G‚ð’u‚¢‚Ä‚¨‚±‚¤D"); } else { /* find original coffers chest if present, otherwise use nearest one */ @@ -1809,7 +2071,10 @@ reverse_loot() coffers = otmp; if (coffers) { +/*JP verbalize("Thank you for your contribution to reduce the debt."); +*/ + verbalize("ÔŽš‘Â•ÔÏ‚Ì‚½‚ß‚ÌŠñ•t‚ÉŠ´ŽÓ‚µ‚Ü‚·D"); freeinv(goldob); (void) add_to_container(coffers, goldob); coffers->owt = weight(coffers); @@ -1822,7 +2087,10 @@ reverse_loot() (mon = makemon(courtmon(), x, y, NO_MM_FLAGS)) != 0) { freeinv(goldob); add_to_minv(mon, goldob); +/*JP pline("The exchequer accepts your contribution."); +*/ + pline("à–±È‚Í‚ ‚È‚½‚ÌŠñ•t‚ðŽó‚¯‚Æ‚Á‚½D"); if (!rn2(10)) levl[x][y].looted = T_LOOTED; } else { @@ -1855,15 +2123,25 @@ boolean *prev_loot; if (passed_info) *passed_info = 1; Sprintf( +/*JP qbuf, "Do you want to remove the saddle from %s?", +*/ + qbuf, "%s‚©‚çˆÆ‚ð‚Í‚¸‚µ‚Ü‚·‚©H", x_monnam(mtmp, ARTICLE_THE, (char *) 0, SUPPRESS_SADDLE, FALSE)); if ((c = yn_function(qbuf, ynqchars, 'n')) == 'y') { if (nolimbs(youmonst.data)) { +#if 0 /*JP*/ You_cant("do that without limbs."); /* not body_part(HAND) */ +#else + You_cant("Žè‚ª‚È‚¢‚Æ‚Å‚«‚È‚¢D"); +#endif return 0; } if (otmp->cursed) { +/*JP You("can't. The saddle seems to be stuck to %s.", +*/ + pline("ˆÆ‚Í%s‚É‚­‚Á‚‚¢‚Ä‚¢‚é‚悤‚¾D", x_monnam(mtmp, ARTICLE_THE, (char *) 0, SUPPRESS_SADDLE, FALSE)); /* the attempt costs you time */ @@ -1875,7 +2153,10 @@ boolean *prev_loot; otmp->owornmask = 0L; update_mon_intrinsics(mtmp, otmp, FALSE, FALSE); } +/*JP otmp = hold_another_object(otmp, "You drop %s!", doname(otmp), +*/ + otmp = hold_another_object(otmp, "%s‚ð—Ž‚Æ‚µ‚½I", doname(otmp), (const char *) 0); timepassed = rnd(3); if (prev_loot) @@ -1934,18 +2215,32 @@ register struct obj *obj; impossible(" no current_container?"); return 0; } else if (obj == uball || obj == uchain) { +/*JP You("must be kidding."); +*/ + pline("‚²ç’k‚ðD"); return 0; } else if (obj == current_container) { +/*JP pline("That would be an interesting topological exercise."); +*/ + pline("‚»‚ê‚Í‹»–¡‚ð‚»‚»‚ç‚ê‚éƒgƒ|ƒƒW[‚Ì–â‘肾D"); return 0; } else if (obj->owornmask & (W_ARMOR | W_ACCESSORY)) { +#if 0 /*JP*/ Norep("You cannot %s %s you are wearing.", Icebox ? "refrigerate" : "stash", something); +#else + Norep("g‚ɂ‚¯‚Ä‚¢‚é‚à‚Ì‚ð%s‚±‚Æ‚Í‚Å‚«‚È‚¢D", + Icebox ? "—â“€‚·‚é" : "‚µ‚Ü‚¤"); +#endif return 0; } else if ((obj->otyp == LOADSTONE) && obj->cursed) { obj->bknown = 1; +/*JP pline_The("stone%s won't leave your person.", plur(obj->quan)); +*/ + pline("‚Ç‚¤‚¢‚¤‚킯‚©‚»‚ÌÎ‚ð‚µ‚Ü‚¤‚±‚Æ‚Í‚Å‚«‚È‚¢D"); return 0; } else if (obj->otyp == AMULET_OF_YENDOR || obj->otyp == CANDELABRUM_OF_INVOCATION @@ -1955,10 +2250,16 @@ register struct obj *obj; * steal them. It also becomes a pain to check to see if someone * has the Amulet. Ditto for the Candelabrum, the Bell and the Book. */ +/*JP pline("%s cannot be confined in such trappings.", The(xname(obj))); +*/ + pline("%s‚Í‹l‚߂邱‚Æ‚Í‚Å‚«‚È‚¢D", The(xname(obj))); return 0; } else if (obj->otyp == LEASH && obj->leashmon != 0) { +/*JP pline("%s attached to your pet.", Tobjnam(obj, "are")); +*/ + pline("%s‚̓yƒbƒg‚É•t‚¯‚ç‚ê‚Ä‚¢‚éD", xname(obj)); return 0; } else if (obj == uwep) { if (welded(obj)) { @@ -1991,7 +2292,10 @@ register struct obj *obj; * of evaluation of the parameters is undefined. */ Strcpy(buf, the(xname(obj))); +/*JP You("cannot fit %s into %s.", buf, the(xname(current_container))); +*/ + pline("%s‚ð%s‚É‹l‚ߍž‚Þ‚±‚Æ‚Í‚Å‚«‚È‚¢D", buf, the(xname(current_container))); return 0; } @@ -2025,7 +2329,10 @@ register struct obj *obj; } } else if (Is_mbag(current_container) && mbag_explodes(obj, 0)) { /* explicitly mention what item is triggering the explosion */ +/*JP pline("As you put %s inside, you are blasted by a magical explosion!", +*/ + pline("%s‚𒆂ɓü‚ê‚é‚ƁC‚ ‚È‚½‚Í–‚–@‚Ì”š”­‚𗁂т½I", doname(obj)); /* did not actually insert obj yet */ if (was_unpaid) @@ -2039,13 +2346,19 @@ register struct obj *obj; else panic("in_container: bag not found."); +/*JP losehp(d(6, 6), "magical explosion", KILLED_BY_AN); +*/ + losehp(d(6, 6), "–‚–@‚Ì”š”­‚Å", KILLED_BY_AN); current_container = 0; /* baggone = TRUE; */ } if (current_container) { Strcpy(buf, the(xname(current_container))); +/*JP You("put %s into %s.", doname(obj), buf); +*/ + You("%s‚ð%s‚Ì’†‚É‚µ‚Ü‚Á‚½D", doname(obj), buf); /* gold in container always needs to be added to credit */ if (floor_container && obj->oclass == COIN_CLASS) @@ -2122,8 +2435,14 @@ register struct obj *obj; otmp = addinv(obj); loadlev = near_capacity(); prinv(loadlev +/*JP ? (loadlev < MOD_ENCUMBER ? "You have a little trouble removing" +*/ + ? (loadlev < MOD_ENCUMBER ? "‚ð‰^‚Ԃ̂͏­X¢“D" +/*JP : "You have much trouble removing") +*/ + : "‚ð‰^‚Ô‚Ì‚Í‚©‚Ȃ荢“D") : (char *) 0, otmp, count); @@ -2143,9 +2462,16 @@ struct obj *item; long loss = 0L; if (item->dknown) +/*JP pline("%s %s vanished!", Doname2(item), otense(item, "have")); +*/ + pline("%s‚͏Á‚¦‹Ž‚Á‚½I", Doname2(item)); else +#if 0 /*JP*/ You("%s %s disappear!", Blind ? "notice" : "see", doname(item)); +#else + You("%s‚ªŒ©‚¦‚È‚­‚È‚é‚Ì%sD", doname(item), Blind ? "‚É‹C‚¢‚½" : "‚ðŒ©‚½"); +#endif if (*u.ushops && (shkp = shop_keeper(*u.ushops)) != 0) { if (held ? (boolean) item->unpaid : costly_spot(u.ux, u.uy)) @@ -2160,7 +2486,10 @@ STATIC_OVL void observe_quantum_cat(box) struct obj *box; { +/*JP static NEARDATA const char sc[] = "Schroedinger's Cat"; +*/ + static NEARDATA const char sc[] = "ƒVƒ…ƒŒƒfƒBƒ“ƒK[‚Ì”L"; struct obj *deadcat; struct monst *livecat; xchar ox, oy; @@ -2180,9 +2509,15 @@ struct obj *box; livecat->mpeaceful = 1; set_malign(livecat); if (!canspotmon(livecat)) +/*JP You("think %s brushed your %s.", something, body_part(FOOT)); +*/ + You("%s‚ª‚ ‚È‚½‚Ì%s‚ð‚­‚·‚®‚Á‚½D", something, body_part(FOOT)); else +/*JP pline("%s inside the box is still alive!", Monnam(livecat)); +*/ + pline("” ‚Ì‚È‚©‚Ì%s‚Í‚Ü‚¾¶‚«‚Ä‚¢‚éI", Monnam(livecat)); (void) christen_monst(livecat, sc); } else { deadcat = @@ -2191,8 +2526,13 @@ struct obj *box; obj_extract_self(deadcat); (void) add_to_container(box, deadcat); } +#if 0 /*JP*/ pline_The("%s inside the box is dead!", Hallucination ? rndmonnam(NULL) : "housecat"); +#else + pline_The("” ‚Ì’†‚Ì%s‚ÍŽ€‚ñ‚Å‚¢‚éI", + Hallucination ? rndmonnam(NULL) : "”L"); +#endif } box->owt = weight(box); return; @@ -2214,12 +2554,21 @@ STATIC_OVL void explain_container_prompt() { static const char *const explaintext[] = { +#if 0 /*JP*/ "Container actions:", "", " : -- Look: examine contents", " o -- Out: take things out", " i -- In: put things in", " b -- Both: first take things out, then put things in", " r -- Reversed: put things in, then take things out", " s -- Stash: put one item in", " q -- Quit: do nothing", " ? -- Help: display this text.", "", 0 +#else + "“ü‚ꕨ‚ւ̍s“®F", "", " : -- Look: ’†g‚𒲂ׂé", + " o -- Out: •¨‚ðo‚·", " i -- In: •¨‚ð“ü‚ê‚é", + " b -- Both: ‚Ü‚¸•¨‚ðo‚µA‚»‚ê‚©‚畨‚ð“ü‚ê‚é", + " r -- Reversed: •¨‚ð“ü‚êA‚»‚ê‚©‚畨‚ðo‚·", + " s -- Stash: •¨‚ðˆê‚“ü‚ê‚é", " q -- Quit: ‰½‚à‚µ‚È‚¢", + " ? -- Help: ‚±‚ê‚ð•\Ž¦‚·‚é", "", 0 +#endif }; const char *const *txtpp; winid win; @@ -2237,10 +2586,17 @@ boolean u_handsy() { if (nohands(youmonst.data)) { +#if 0 /*JP*/ You("have no hands!"); /* not `body_part(HAND)' */ +#else + pline("‚ ‚È‚½‚ɂ͎肪‚È‚¢I"); /* not `body_part(HAND)' */ +#endif return FALSE; } else if (!freehand()) { +/*JP You("have no free %s.", body_part(HAND)); +*/ + You("%s‚ÌŽ©—R‚ªŒø‚©‚È‚¢D", body_part(HAND)); return FALSE; } return TRUE; @@ -2265,14 +2621,23 @@ int held; return 0; if (obj->olocked) { +/*JP pline("%s locked.", Tobjnam(obj, "are")); +*/ + pline("%s‚ÍŒ®‚ª‚©‚©‚Á‚Ä‚¢‚éD", xname(obj)); if (held) +/*JP You("must put it down to unlock."); +*/ + if (held) pline("‰º‚É’u‚©‚È‚¢‚±‚Æ‚É‚ÍŒ®‚ð‚Í‚¸‚¹‚È‚¢D"); obj->lknown = 1; return 0; } else if (obj->otrapped) { if (held) +/*JP You("open %s...", the(xname(obj))); +*/ + You("%s‚ðŠJ‚¯‚½DDD", the(xname(obj))); obj->lknown = 1; (void) chest_trap(obj, HAND, FALSE); /* even if the trap fails, you've used up this turn */ @@ -2309,15 +2674,23 @@ int held; } } if (loss) +/*JP You("owe %ld %s for lost merchandise.", loss, currency(loss)); +*/ + You("Ž¸‚Á‚½¤•i‚Ì‚½‚ß‚É%ld%s‚Ì•‰Â‚𕉂Á‚½D", loss, currency(loss)); current_container->owt = weight(current_container); } inokay = (invent != 0 && !(invent == current_container && !current_container->nobj)); outokay = Has_contents(current_container); if (!outokay) /* preformat the empty-container message */ +#if 0 /*JP:T*/ Sprintf(emptymsg, "%s is %sempty.", Ysimple_name2(current_container), (quantum_cat || cursed_mbag) ? "now " : ""); +#else + Sprintf(emptymsg, "%s‚Í%s‹ó‚Á‚Û‚¾D", Ysimple_name2(current_container), + (quantum_cat || cursed_mbag) ? "¡‚Í" : ""); +#endif /* * What-to-do prompt's list of possible actions: @@ -2814,7 +3187,10 @@ dotip() if (cobj->oclass == POTION_CLASS) /* can't pour potions... */ pline_The("%s %s securely sealed.", xname(cobj), otense(cobj, "are")); else if (cobj->otyp == STATUE) +/*JP pline("Nothing interesting happens."); +*/ + pline("–Ê”’‚¢‚±‚Ƃ͉½‚à‹N‚«‚È‚©‚Á‚½D"); else pline1(nothing_happens); return 0; diff --git a/src/pline.c b/src/pline.c index ce4b607..9ae7b8e 100644 --- a/src/pline.c +++ b/src/pline.c @@ -159,7 +159,10 @@ VA_DECL(const char *, line) char *tmp; VA_START(line); VA_INIT(line, const char *); +/*JP vpline(YouMessage(tmp, "You ", line), VA_ARGS); +*/ + vpline(YouMessage(tmp, "‚ ‚È‚½‚Í", line), VA_ARGS); VA_END(); } @@ -170,7 +173,10 @@ VA_DECL(const char *, line) char *tmp; VA_START(line); VA_INIT(line, const char *); +/*JP vpline(YouMessage(tmp, "Your ", line), VA_ARGS); +*/ + vpline(YouMessage(tmp, "‚ ‚È‚½‚Ì", line), VA_ARGS); VA_END(); } @@ -182,9 +188,15 @@ VA_DECL(const char *, line) VA_START(line); VA_INIT(line, const char *); if (Unaware) +/*JP YouPrefix(tmp, "You dream that you feel ", line); +*/ + YouPrefix(tmp, "‚ ‚È‚½‚Í–²‚Ì’†‚Å", line); else +/*JP YouPrefix(tmp, "You feel ", line); +*/ + YouPrefix(tmp, "‚ ‚È‚½‚Í", line); vpline(strcat(tmp, line), VA_ARGS); VA_END(); } @@ -196,7 +208,10 @@ VA_DECL(const char *, line) char *tmp; VA_START(line); VA_INIT(line, const char *); +/*JP vpline(YouMessage(tmp, "You can't ", line), VA_ARGS); +*/ + vpline(YouMessage(tmp, "‚ ‚È‚½‚Í", line), VA_ARGS); VA_END(); } @@ -207,7 +222,10 @@ VA_DECL(const char *, line) char *tmp; VA_START(line); VA_INIT(line, const char *); +/*JP vpline(YouMessage(tmp, "The ", line), VA_ARGS); +*/ + vpline(YouMessage(tmp, "", line), VA_ARGS); VA_END(); } @@ -218,7 +236,10 @@ VA_DECL(const char *, line) char *tmp; VA_START(line); VA_INIT(line, const char *); +/*JP vpline(YouMessage(tmp, "There ", line), VA_ARGS); +*/ + vpline(YouMessage(tmp, "", line), VA_ARGS); VA_END(); } @@ -227,11 +248,16 @@ void You_hear VA_DECL(const char *, line) { char *tmp; +#if 1 /*JP*/ + char *adj; + char *p; +#endif if (Deaf || !flags.acoustics) return; VA_START(line); VA_INIT(line, const char *); +#if 0 /*JP*/ if (Underwater) YouPrefix(tmp, "You barely hear ", line); else if (Unaware) @@ -239,6 +265,29 @@ VA_DECL(const char *, line) else YouPrefix(tmp, "You hear ", line); vpline(strcat(tmp, line), VA_ARGS); +#else + if (Underwater) + adj = "‚©‚·‚©‚É"; + else if (Unaware) + adj = "–²‚Ì’†‚Å"; + else + adj = ""; + tmp = You_buf(strlen(adj) + strlen(line) + sizeof("‚ ‚È‚½‚Í ")); + + p = (char *)strstr(line, "•·‚±") ; + if (p == NULL) + Strcpy(tmp, "‚ ‚È‚½‚Í"); + else + Strcpy(tmp, ""); + if (p != NULL || (p = (char *)strstr(line, "•·‚¢")) != NULL){ + strncat(tmp, line, (p - line)); + strcat(tmp, adj); + strcat(tmp, p); + } else { + Strcat(tmp, line); + } + vpline(tmp, VA_ARGS); +#endif VA_END(); } @@ -251,11 +300,19 @@ VA_DECL(const char *, line) VA_START(line); VA_INIT(line, const char *); if (Unaware) +/*JP YouPrefix(tmp, "You dream that you see ", line); +*/ + YouPrefix(tmp, "‚ ‚È‚½‚Í–²‚Ì’†‚Å", line); +#if 0 /*JP*//*‚±‚±‚͌Ăяo‚µŒ³‚ŏˆ—‚·‚é?*/ else if (Blind) /* caller should have caught this... */ YouPrefix(tmp, "You sense ", line); +#endif else +/*JP YouPrefix(tmp, "You see ", line); +*/ + YouPrefix(tmp, "‚ ‚È‚½‚Í", line); vpline(strcat(tmp, line), VA_ARGS); VA_END(); } @@ -272,10 +329,17 @@ VA_DECL(const char *, line) VA_START(line); VA_INIT(line, const char *); +#if 0 /*JP*/ tmp = You_buf((int) strlen(line) + sizeof "\"\""); Strcpy(tmp, "\""); Strcat(tmp, line); Strcat(tmp, "\""); +#else + tmp = You_buf((int) strlen(line) + sizeof "uv"); + Strcpy(tmp, "u"); + Strcat(tmp, line); + Strcat(tmp, "v"); +#endif vpline(tmp, VA_ARGS); VA_END(); } @@ -348,7 +412,10 @@ VA_DECL(const char *, s) pbuf[BUFSZ - 1] = '\0'; /* sanity */ paniclog("impossible", pbuf); pline("%s", pbuf); +/*JP pline("Program in disorder - perhaps you'd better #quit."); +*/ + pline("ƒvƒƒOƒ‰ƒ€‚ɏáŠQ”­¶ - #quit‚µ‚½‚Ù‚¤‚ª‚悳‚»‚¤‚¾D"); program_state.in_impossible = 0; VA_END(); } @@ -359,15 +426,30 @@ aligntyp alignment; { switch ((int) alignment) { case A_CHAOTIC: +/*JP return "chaotic"; +*/ + return "¬“×"; case A_NEUTRAL: +/*JP return "neutral"; +*/ + return "’†—§"; case A_LAWFUL: +/*JP return "lawful"; +*/ + return "’˜"; case A_NONE: +/*JP return "unaligned"; +*/ + return "–³S"; } +/*JP return "unknown"; +*/ + return "•s–¾"; } void @@ -379,7 +461,10 @@ register struct monst *mtmp; info[0] = 0; if (mtmp->mtame) { +/*JP Strcat(info, ", tame"); +*/ + Strcat(info, ", Ž”‚¢‚Ȃ炳‚ê‚Ä‚¢‚é"); if (wizard) { Sprintf(eos(info), " (%d", mtmp->mtame); if (!mtmp->isminion) @@ -388,14 +473,23 @@ register struct monst *mtmp; Strcat(info, ")"); } } else if (mtmp->mpeaceful) +/*JP Strcat(info, ", peaceful"); +*/ + Strcat(info, ", —FD“I"); if (mtmp->cham >= LOW_PM && mtmp->data != &mons[mtmp->cham]) /* don't reveal the innate form (chameleon, vampire, &c), just expose the fact that this current form isn't it */ +/*JP Strcat(info, ", shapechanger"); +*/ + /* pets eating mimic corpses mimic while eating, so this comes first */ if (mtmp->meating) +/*JP Strcat(info, ", eating"); +*/ + Strcat(info, ", HŽ–’†"); /* a stethoscope exposes mimic before getting here so this won't be relevant for it, but wand of probing doesn't */ if (mtmp->m_ap_type) @@ -410,38 +504,78 @@ register struct monst *mtmp; ? an(mons[mtmp->mappearance].mname) : something); /* impossible... */ if (mtmp->mcan) +/*JP Strcat(info, ", cancelled"); +*/ + Strcat(info, ", –³—Í"); if (mtmp->mconf) +/*JP Strcat(info, ", confused"); +*/ + Strcat(info, ", ¬—ó‘Ô"); if (mtmp->mblinded || !mtmp->mcansee) +/*JP Strcat(info, ", blind"); +*/ + Strcat(info, ", –Ó–Ú"); if (mtmp->mstun) +/*JP Strcat(info, ", stunned"); +*/ + Strcat(info, ", ‚­‚ç‚­‚çó‘Ô"); if (mtmp->msleeping) +/*JP Strcat(info, ", asleep"); +*/ + Strcat(info, ", ‡–°ó‘Ô"); #if 0 /* unfortunately mfrozen covers temporary sleep and being busy \ (donning armor, for instance) as well as paralysis */ - else if (mtmp->mfrozen) Strcat(info, ", paralyzed"); + else if (mtmp->mfrozen) Strcat(info, ", paralyzed"); #else else if (mtmp->mfrozen || !mtmp->mcanmove) +/*JP Strcat(info, ", can't move"); +*/ + Strcat(info, ", “®‚¯‚È‚¢"); #endif /* [arbitrary reason why it isn't moving] */ else if (mtmp->mstrategy & STRAT_WAITMASK) +/*JP Strcat(info, ", meditating"); +*/ + Strcat(info, ", –»‘z’†"); if (mtmp->mflee) +/*JP Strcat(info, ", scared"); +*/ + Strcat(info, ", ‹¯‚¦‚Ä‚¢‚é"); if (mtmp->mtrapped) +/*JP Strcat(info, ", trapped"); +*/ + Strcat(info, ", 㩂ɂ©‚©‚Á‚Ä‚¢‚é"); if (mtmp->mspeed) +#if 0 /*JP:T*/ Strcat(info, mtmp->mspeed == MFAST ? ", fast" : mtmp->mspeed == MSLOW ? ", slow" : ", ???? speed"); +#else + Strcat(info, mtmp->mspeed == MFAST ? ", ‘f‘‚¢" : mtmp->mspeed == MSLOW + ? ", ’x‚¢" + : ", ‘¬“x•s–¾"); +#endif if (mtmp->mundetected) +/*JP Strcat(info, ", concealed"); +*/ + Strcat(info, ", ‰B‚ê‚Ä‚¢‚é"); if (mtmp->minvis) +/*JP Strcat(info, ", invisible"); +*/ + Strcat(info, ", •s‰ÂŽ‹"); if (mtmp == u.ustuck) +#if 0 /*JP:T*/ Strcat(info, sticks(youmonst.data) ? ", held by you" : !u.uswallow ? ", holding you" @@ -451,15 +585,32 @@ register struct monst *mtmp; : is_animal(u.ustuck->data) ? ", swallowing you" : ", engulfing you"); +#else + Strcat(info, sticks(youmonst.data) + ? ", ‚ ‚È‚½‚ª’Í‚Ü‚¦‚Ä‚¢‚é" + : !u.uswallow ? ", ’Í‚Ü‚¦‚Ä‚¢‚é" + : attacktype_fordmg(u.ustuck->data, + AT_ENGL, AD_DGST) + ? ", Á‰»‚µ‚Ä‚¢‚é" + : is_animal(u.ustuck->data) + ? ", ˆù‚ݍž‚ñ‚Å‚¢‚é" + : ", Šª‚«ž‚ñ‚Å‚¢‚é"); +#endif if (mtmp == u.usteed) +/*JP Strcat(info, ", carrying you"); +*/ + Strcat(info, ", ‚ ‚È‚½‚ðæ‚¹‚Ä‚¢‚é"); /* avoid "Status of the invisible newt ..., invisible" */ /* and unlike a normal mon_nam, use "saddled" even if it has a name */ Strcpy(monnambuf, x_monnam(mtmp, ARTICLE_THE, (char *) 0, (SUPPRESS_IT | SUPPRESS_INVISIBLE), FALSE)); +/*JP pline("Status of %s (%s): Level %d HP %d(%d) AC %d%s.", monnambuf, +*/ + pline("%s‚̏ó‘Ô (%s)F Level %d HP %d(%d) AC %d%s", monnambuf, align_str(alignment), mtmp->m_lev, mtmp->mhp, mtmp->mhpmax, find_mac(mtmp), info); } @@ -471,6 +622,7 @@ ustatusline() info[0] = '\0'; if (Sick) { +#if 0 /*JP*/ Strcat(info, ", dying from"); if (u.usick_type & SICK_VOMITABLE) Strcat(info, " food poisoning"); @@ -479,18 +631,46 @@ ustatusline() Strcat(info, " and"); Strcat(info, " illness"); } +#else + Strcat(info, ", "); + if (u.usick_type & SICK_VOMITABLE) + Strcat(info, "H’†“Å"); + if (u.usick_type & SICK_NONVOMITABLE) { + if (u.usick_type & SICK_VOMITABLE) + Strcat(info, "‚Æ"); + Strcat(info, "•a‹C"); + } + Strcat(info, "‚ÅŽ€‚ɂ‚‚ ‚é"); +#endif } if (Stoned) +/*JP Strcat(info, ", solidifying"); +*/ + Strcat(info, ", Î‰»‚µ‚‚‚ ‚é"); if (Slimed) +/*JP Strcat(info, ", becoming slimy"); +*/ + Strcat(info, ", ƒXƒ‰ƒCƒ€‚É‚È‚è‚‚‚ ‚é"); if (Strangled) +/*JP Strcat(info, ", being strangled"); +*/ + Strcat(info, ", Žñ‚ði‚ß‚ç‚ê‚Ä‚¢‚é"); if (Vomiting) +#if 0 /*JP*/ Strcat(info, ", nauseated"); /* !"nauseous" */ +#else + Strcat(info, ", “f‚«‹C‚ª‚·‚é"); +#endif if (Confusion) +/*JP Strcat(info, ", confused"); +*/ + Strcat(info, ", ¬—ó‘Ô"); if (Blind) { +#if 0 /*JP*/ Strcat(info, ", blind"); if (u.ucreamed) { if ((long) u.ucreamed < Blinded || Blindfolded @@ -498,49 +678,113 @@ ustatusline() Strcat(info, ", cover"); Strcat(info, "ed by sticky goop"); } /* note: "goop" == "glop"; variation is intentional */ +#else + Strcat(info, ", "); + if (u.ucreamed) { + Strcat(info, "‚˂΂˂΂ׂƂ‚­‚à‚Ì‚Å"); + if ((long)u.ucreamed < Blinded || Blindfolded + || !haseyes(youmonst.data)) + Strcat(info, "•¢‚í‚ê‚Ä"); + } + Strcat(info, "–Ӗڏó‘Ô"); +#endif } if (Stunned) +/*JP Strcat(info, ", stunned"); +*/ + Strcat(info, ", ‚­‚ç‚­‚çó‘Ô"); if (!u.usteed && Wounded_legs) { const char *what = body_part(LEG); if ((Wounded_legs & BOTH_SIDES) == BOTH_SIDES) what = makeplural(what); +/*JP Sprintf(eos(info), ", injured %s", what); +*/ + Sprintf(eos(info), ", %s‚É‚¯‚ª‚ð‚µ‚Ä‚¢‚é", what); } if (Glib) +/*JP Sprintf(eos(info), ", slippery %s", makeplural(body_part(HAND))); +*/ + Sprintf(eos(info), ", %s‚ª‚Ê‚é‚Ê‚é", makeplural(body_part(HAND))); if (u.utrap) +/*JP Strcat(info, ", trapped"); +*/ + Strcat(info, ", 㩂ɂ©‚©‚Á‚Ä‚¢‚é"); if (Fast) +/*JP Strcat(info, Very_fast ? ", very fast" : ", fast"); +*/ + Strcat(info, Very_fast ? ", ‚Æ‚Ä‚à‘f‘‚¢" : ", ‘f‘‚¢"); if (u.uundetected) +/*JP Strcat(info, ", concealed"); +*/ + Strcat(info, ", ‰B‚ê‚Ä‚¢‚é"); if (Invis) +/*JP Strcat(info, ", invisible"); +*/ + Strcat(info, ", •s‰ÂŽ‹"); if (u.ustuck) { +#if 0 /*JP*/ if (sticks(youmonst.data)) Strcat(info, ", holding "); else Strcat(info, ", held by "); Strcat(info, mon_nam(u.ustuck)); +#else + Strcat(info, ", "); + Strcat(info, mon_nam(u.ustuck)); + if (sticks(youmonst.data)) + Strcat(info, "‚ð’Í‚Ü‚¦‚Ä‚¢‚é"); + else + Strcat(info, "‚É’Í‚Ü‚¦‚ç‚ê‚Ä‚¢‚é"); +#endif } +/*JP pline("Status of %s (%s%s): Level %d HP %d(%d) AC %d%s.", plname, +*/ + pline("%s‚̏ó‘Ô (%s %s)F Level %d HP %d(%d) AC %d%s", plname, (u.ualign.record >= 20) +/*JP ? "piously " +*/ + ? "Œhåi" : (u.ualign.record > 13) +/*JP ? "devoutly " +*/ + ? "MS[‚¢" : (u.ualign.record > 8) +/*JP ? "fervently " +*/ + ? "”M—ó" : (u.ualign.record > 3) +/*JP ? "stridently " +*/ + ? "º‚Ì‚©‚ñ‚‚¢" : (u.ualign.record == 3) ? "" : (u.ualign.record >= 1) +/*JP ? "haltingly " +*/ + ? "—L–¼–³ŽÀ" : (u.ualign.record == 0) +/*JP ? "nominally " +*/ + ? "–À˜f" +/*JP : "insufficiently ", +*/ + : "•s“K“–", align_str(u.ualign.type), Upolyd ? mons[u.umonnum].mlevel : u.ulevel, Upolyd ? u.mh : u.uhp, Upolyd ? u.mhmax : u.uhpmax, u.uac, info); @@ -549,10 +793,17 @@ ustatusline() void self_invis_message() { +#if 0 /*JP:T*/ pline("%s %s.", Hallucination ? "Far out, man! You" : "Gee! All of a sudden, you", See_invisible ? "can see right through yourself" : "can't see yourself"); +#else + pline("%s‚ ‚È‚½‚Í%sD", + Hallucination ? "ƒ[ƒII" : "‚°I“Ë‘R", + See_invisible ? "Ž©•ªŽ©g‚ª‚¿‚á‚ñ‚ÆŒ©‚¦‚È‚­‚È‚Á‚½" + : "Ž©•ªŽ©g‚ªŒ©‚¦‚È‚­‚È‚Á‚½"); +#endif } void diff --git a/src/polyself.c b/src/polyself.c index 4cd01d0..5fb3b9a 100644 --- a/src/polyself.c +++ b/src/polyself.c @@ -2,6 +2,11 @@ /* 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 */ +/* JNetHack may be freely redistributed. See license for details. */ + /* * Polymorph self routine. * @@ -31,7 +36,10 @@ STATIC_DCL void NDECL(newman); STATIC_DCL boolean FDECL(polysense, (struct permonst *)); STATIC_VAR const char no_longer_petrify_resistant[] = +/*JP "No longer petrify-resistant, you"; +*/ + "Î‰»‚Ö‚Ì’ïR—Í‚ª‚È‚­‚È‚Á‚āC‚ ‚È‚½‚Í"; /* controls whether taking on new form or becoming new man can also change sex (ought to be an arg to polymon() and newman() instead) */ @@ -190,7 +198,10 @@ const char *fmt, *arg; Strcpy(killer.name, kptr->name); } else { killer.format = KILLED_BY; +/*JP Strcpy(killer.name, "self-genocide"); +*/ + Strcpy(killer.name, "Ž©‹s“I‹sŽE‚Å"); } dealloc_killer(kptr); done(GENOCIDED); @@ -342,9 +353,15 @@ newman() } else { dead: /* we come directly here if their experience level went to 0 or less */ +/*JP Your("new form doesn't seem healthy enough to survive."); +*/ + Your("V‚µ‚¢Žp‚͐¶‚«‚Ä‚¢‚­‚¾‚¯‚Ì—Í‚ª‚È‚¢‚悤‚¾D"); killer.format = KILLED_BY_AN; +/*JP Strcpy(killer.name, "unsuccessful polymorph"); +*/ + Strcpy(killer.name, "•Ï‰»‚ÌŽ¸”s‚Å"); done(DIED); newuhs(FALSE); (void) polysense(youmonst.data); @@ -352,13 +369,19 @@ newman() } } newuhs(FALSE); +/*JP polyman("feel like a new %s!", +*/ + polyman("%s‚Æ‚µ‚ж‚Ü‚ê‚©‚í‚Á‚½‚悤‚È‹C‚ª‚µ‚½I", /* use saved gender we're about to revert to, not current */ (u.mfemale && urace.individual.f) ? urace.individual.f : (urace.individual.m) ? urace.individual.m : urace.noun); if (Slimed) { +/*JP Your("body transforms, but there is still slime on you."); +*/ + Your("‘͕̂ω»‚µ‚½‚ªCƒXƒ‰ƒCƒ€‚ª‚‚¢‚½‚Ü‚Ü‚¾D"); make_slimed(10L, (const char *) 0); } @@ -392,7 +415,10 @@ int psflags; && !isvamp) { if (rn2(20) > ACURR(A_CON)) { You1(shudder_for_moment); +/*JP losehp(rnd(30), "system shock", KILLED_BY_AN); +*/ + losehp(rnd(30), "ƒVƒXƒeƒ€ƒVƒ‡ƒbƒN‚Å", KILLED_BY_AN); exercise(A_CON, FALSE); return; } @@ -407,7 +433,10 @@ int psflags; tryct = 5; do { mntmp = NON_PM; +/*JP getlin("Become what kind of monster? [type the name]", buf); +*/ + getlin("‚Ç‚ÌŽí‚̉ö•¨‚É‚È‚éH[–¼‘O‚ð“ü‚ê‚Ä‚Ë]", buf); (void) mungspaces(buf); if (*buf == '\033') { /* user is cancelling controlled poly */ @@ -432,9 +461,15 @@ int psflags; } if (mntmp < LOW_PM) { if (!class) +/*JP pline("I've never heard of such monsters."); +*/ + pline("‚»‚ñ‚ȉö•¨‚Í•·‚¢‚½‚±‚Æ‚ª‚È‚¢D"); else +/*JP You_cant("polymorph into any of those."); +*/ + pline("‚»‚ê‚ɂȂ邱‚Æ‚Í‚Å‚«‚È‚¢D"); } else if (iswere && (were_beastie(mntmp) == u.ulycn || mntmp == counter_were(u.ulycn) || (Upolyd && mntmp == PM_HUMAN))) { @@ -484,7 +519,10 @@ int psflags; /* allow G_EXTINCT */ if (Is_dragon_scales(uarm)) { /* dragon scales remain intact as uskin */ +/*JP You("merge with your scaly armor."); +*/ + You("—Ø‚ÌŠZ‚ƈê‘̉»‚µ‚½D"); } else { /* dragon scale mail */ /* d.scale mail first reverts to scales */ char *p, *dsmail; @@ -586,7 +624,10 @@ int mntmp; int mlvl; if (mvitals[mntmp].mvflags & G_GENOD) { /* allow G_EXTINCT */ +/*JP You_feel("rather %s-ish.", mons[mntmp].mname); +*/ + You("%s‚Á‚Û‚­‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½D", mons[mntmp].mname); exercise(A_WIS, TRUE); return 0; } @@ -634,22 +675,40 @@ int mntmp; } if (dochange) { flags.female = !flags.female; +#if 0 /*JP*/ You("%s %s%s!", (u.umonnum != mntmp) ? "turn into a" : "feel like a new", (is_male(&mons[mntmp]) || is_female(&mons[mntmp])) ? "" : flags.female ? "female " : "male ", mons[mntmp].mname); +#else + You("%s%s‚É‚È‚Á‚½%sI", + (is_male(&mons[mntmp]) || is_female(&mons[mntmp])) + ? "" + : flags.female ? "—‚Ì" : "’j‚Ì", + mons[mntmp].mname, + (u.umonnum != mntmp) ? "" : "‚悤‚È‹C‚ª‚µ‚½"); +#endif } else { if (u.umonnum != mntmp) +/*JP You("turn into %s!", an(mons[mntmp].mname)); +*/ + You("%s‚É‚È‚Á‚½I", mons[mntmp].mname); else +/*JP You_feel("like a new %s!", mons[mntmp].mname); +*/ + You("•Ê‚Ì%s‚É‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½I", mons[mntmp].mname); } if (Stoned && poly_when_stoned(&mons[mntmp])) { /* poly_when_stoned already checked stone golem genocide */ mntmp = PM_STONE_GOLEM; +/*JP make_stoned(0L, "You turn to stone!", 0, (char *) 0); +*/ + make_stoned(0L, "Î‚É‚È‚Á‚½I", 0, (char *) 0); } u.mtimedone = rn1(500, 500); @@ -663,16 +722,25 @@ int mntmp; ABASE(A_STR) = AMAX(A_STR) = STR18(100); if (Stone_resistance && Stoned) { /* parnes@eniac.seas.upenn.edu */ +/*JP make_stoned(0L, "You no longer seem to be petrifying.", 0, +*/ + make_stoned(0L, "Î‰»‚©‚ç‰ð•ú‚³‚ꂽ‚悤‚¾D", 0, (char *) 0); } if (Sick_resistance && Sick) { make_sick(0L, (char *) 0, FALSE, SICK_ALL); +/*JP You("no longer feel sick."); +*/ + You("•a‹C‚©‚ç‰ð•ú‚³‚ꂽ‚悤‚¾D"); } if (Slimed) { if (flaming(youmonst.data)) { +/*JP make_slimed(0L, "The slime burns away!"); +*/ + make_slimed(0L, "ƒXƒ‰ƒCƒ€‚Í”R‚¦‚½I"); } else if (mntmp == PM_GREEN_SLIME) { /* do it silently */ make_slimed(0L, (char *) 0); @@ -747,36 +815,78 @@ int mntmp; } if (flags.verbose) { +/*JP static const char use_thec[] = "Use the command #%s to %s."; +*/ + static const char use_thec[] = "#%sƒRƒ}ƒ“ƒh‚Å%s‚±‚Æ‚ª‚Å‚«‚éD"; static const char monsterc[] = "monster"; if (can_breathe(youmonst.data)) +/*JP pline(use_thec, monsterc, "use your breath weapon"); +*/ + pline(use_thec,monsterc, "‘§‚ð“f‚«‚©‚¯‚é"); if (attacktype(youmonst.data, AT_SPIT)) +/*JP pline(use_thec, monsterc, "spit venom"); +*/ + pline(use_thec,monsterc, "“Å‚ð“f‚­"); if (youmonst.data->mlet == S_NYMPH) +/*JP pline(use_thec, monsterc, "remove an iron ball"); +*/ + pline(use_thec,monsterc, "“S‹…‚ð‚Í‚¸‚·"); if (attacktype(youmonst.data, AT_GAZE)) +/*JP pline(use_thec, monsterc, "gaze at monsters"); +*/ + pline(use_thec,monsterc, "‰ö•¨‚ðáɂÞ"); if (is_hider(youmonst.data)) +/*JP pline(use_thec, monsterc, "hide"); +*/ + pline(use_thec,monsterc, "‰B‚ê‚é"); if (is_were(youmonst.data)) +/*JP pline(use_thec, monsterc, "summon help"); +*/ + pline(use_thec,monsterc, "’‡ŠÔ‚ð¢Š«‚·‚é"); if (webmaker(youmonst.data)) +/*JP pline(use_thec, monsterc, "spin a web"); +*/ + pline(use_thec,monsterc, "‚­‚à‚Ì‘ƒ‚𒣂é"); if (u.umonnum == PM_GREMLIN) +/*JP pline(use_thec, monsterc, "multiply in a fountain"); +*/ + pline(use_thec,monsterc, "ò‚Ì’†‚Å•ª—ô‚·‚é"); if (is_unicorn(youmonst.data)) +/*JP pline(use_thec, monsterc, "use your horn"); +*/ + pline(use_thec,monsterc, "Šp‚ðŽg‚¤"); if (is_mind_flayer(youmonst.data)) +/*JP pline(use_thec, monsterc, "emit a mental blast"); +*/ + pline(use_thec,monsterc, "¸_”g‚𔭐¶‚³‚¹‚é"); if (youmonst.data->msound == MS_SHRIEK) /* worthless, actually */ +/*JP pline(use_thec, monsterc, "shriek"); +*/ + pline(use_thec,monsterc, "‹àØ‚萺‚ð‚ ‚°‚é"); if (is_vampire(youmonst.data)) +/*JP pline(use_thec, monsterc, "change shape"); +*/ + pline(use_thec, monsterc, "Žp‚ð•Ï‚¦‚é"); if (lays_eggs(youmonst.data) && flags.female) +/*JP pline(use_thec, "sit", "lay an egg"); +*/ + pline(use_thec, "sit", "—‘‚ðŽY‚Þ"); } /* you now know what an egg of your type looks like */ @@ -793,23 +903,38 @@ int mntmp; && (u.utraptype == TT_INFLOOR || u.utraptype == TT_BURIEDBALL)) { u.utrap = 0; if (u.utraptype == TT_INFLOOR) +/*JP pline_The("rock seems to no longer trap you."); +*/ + pline("Šâ‚ɕ‚¶ž‚ß‚ç‚ê‚邱‚Æ‚Í‚È‚¢‚¾‚낤D"); else { +/*JP pline_The("buried ball is no longer bound to you."); +*/ + pline_The("–„‚Ü‚Á‚½‹…‚ªŽ×–‚‚ɂȂ邱‚Æ‚Í‚È‚¢‚¾‚낤D"); buried_ball_to_freedom(); } } else if (likes_lava(youmonst.data) && u.utrap && u.utraptype == TT_LAVA) { u.utrap = 0; +/*JP pline_The("lava now feels soothing."); +*/ + pline("—nŠâ‚ª¸_‚ð—Ž‚¿‚‚©‚¹‚Ä‚­‚ê‚éD"); } if (amorphous(youmonst.data) || is_whirly(youmonst.data) || unsolid(youmonst.data)) { if (Punished) { +/*JP You("slip out of the iron chain."); +*/ + You("“S‚̍½‚©‚ç‚·‚é‚è‚Æ”²‚¯‚½D"); unpunish(); } else if (u.utrap && u.utraptype == TT_BURIEDBALL) { +/*JP You("slip free of the buried ball and chain."); +*/ + You("–„‚Ü‚Á‚Ä‚¢‚é‹…‚ƍ½‚©‚ç‚·‚é‚è‚Æ”²‚¯‚½D"); buried_ball_to_freedom(); } } @@ -817,13 +942,21 @@ int mntmp; && (amorphous(youmonst.data) || is_whirly(youmonst.data) || unsolid(youmonst.data) || (youmonst.data->msize <= MZ_SMALL && u.utraptype == TT_BEARTRAP))) { +#if 0 /*JP*/ You("are no longer stuck in the %s.", u.utraptype == TT_WEB ? "web" : "bear trap"); +#else + You("%s‚©‚ç’Eo‚µ‚½D", + u.utraptype == TT_WEB ? "‚­‚à‚Ì‘ƒ" : "ŒF‚Ìã©"); +#endif /* probably should burn webs too if PM_FIRE_ELEMENTAL */ u.utrap = 0; } if (webmaker(youmonst.data) && u.utrap && u.utraptype == TT_WEB) { +/*JP You("orient yourself on the web."); +*/ + You("‚­‚à‚Ì‘ƒ‚É“K‰ž‚µ‚½D"); u.utrap = 0; } check_strangling(TRUE); /* maybe start strangling */ @@ -852,47 +985,74 @@ break_armor() if ((otmp = uarm) != 0) { if (donning(otmp)) cancel_don(); +/*JP You("break out of your armor!"); +*/ + You("ŠZ‚ð‰ó‚µ‚½I"); exercise(A_STR, FALSE); (void) Armor_gone(); useup(otmp); } if ((otmp = uarmc) != 0) { if (otmp->oartifact) { +/*JP Your("%s falls off!", cloak_simple_name(otmp)); +*/ + Your("%s‚Í’E‚°—Ž‚¿‚½I", cloak_simple_name(otmp)); (void) Cloak_off(); dropx(otmp); } else { +/*JP Your("%s tears apart!", cloak_simple_name(otmp)); +*/ + Your("%s‚Í‚¸‚½‚¸‚½‚Ɉø‚«—ô‚©‚ꂽI", cloak_simple_name(otmp)); (void) Cloak_off(); useup(otmp); } } if (uarmu) { +/*JP Your("shirt rips to shreds!"); +*/ + Your("ƒVƒƒƒc‚͈ø‚«—ô‚©‚ꂽI"); useup(uarmu); } } else if (sliparm(youmonst.data)) { if (((otmp = uarm) != 0) && (racial_exception(&youmonst, otmp) < 1)) { if (donning(otmp)) cancel_don(); +/*JP Your("armor falls around you!"); +*/ + Your("ŠZ‚Í‚ ‚È‚½‚Ì‚Ü‚í‚è‚É—Ž‚¿‚½I"); (void) Armor_gone(); dropx(otmp); } if ((otmp = uarmc) != 0) { if (is_whirly(youmonst.data)) +/*JP Your("%s falls, unsupported!", cloak_simple_name(otmp)); +*/ + Your("%s‚Í‚·‚Æ‚ñ‚Æ—Ž‚¿‚½I", cloak_simple_name(otmp)); else +/*JP You("shrink out of your %s!", cloak_simple_name(otmp)); +*/ + You("%s‚©‚çk‚ݏo‚½I", cloak_simple_name(otmp)); (void) Cloak_off(); dropx(otmp); } if ((otmp = uarmu) != 0) { if (is_whirly(youmonst.data)) +/*JP You("seep right through your shirt!"); +*/ + You("ƒVƒƒƒc‚©‚炵‚ݏo‚½I"); else +/*JP You("become much too small for your shirt!"); +*/ + You("ƒVƒƒƒc‚æ‚肸‚Á‚Ə¬‚³‚­‚È‚Á‚½I"); setworn((struct obj *) 0, otmp->owornmask & W_ARMU); dropx(otmp); } @@ -900,17 +1060,26 @@ break_armor() if (has_horns(youmonst.data)) { if ((otmp = uarmh) != 0) { if (is_flimsy(otmp) && !donning(otmp)) { +#if 0 /*JP*/ char hornbuf[BUFSZ]; /* Future possibilities: This could damage/destroy helmet */ Sprintf(hornbuf, "horn%s", plur(num_horns(youmonst.data))); Your("%s %s through %s.", hornbuf, vtense(hornbuf, "pierce"), yname(otmp)); +#else + Your("Šp‚ª%s‚ð‚‚ç‚Ê‚¢‚½D", yname(otmp)); +#endif } else { if (donning(otmp)) cancel_don(); +#if 0 /*JP*/ Your("%s falls to the %s!", helm_simple_name(otmp), surface(u.ux, u.uy)); +#else + Your("%s‚Í%s‚É—Ž‚¿‚½I", helm_simple_name(otmp), + surface(u.ux, u.uy)); +#endif (void) Helmet_off(); dropx(otmp); } @@ -921,21 +1090,32 @@ break_armor() if (donning(otmp)) cancel_don(); /* Drop weapon along with gloves */ +/*JP You("drop your gloves%s!", uwep ? " and weapon" : ""); +*/ + You("¬Žè%s‚ð—Ž‚µ‚½I", uwep ? "‚═Ší" : ""); drop_weapon(0); (void) Gloves_off(); dropx(otmp); } if ((otmp = uarms) != 0) { +/*JP You("can no longer hold your shield!"); +*/ + You("‚à‚¤‚‚ðŽ‚Á‚Ä‚ç‚ê‚È‚¢I"); (void) Shield_off(); dropx(otmp); } if ((otmp = uarmh) != 0) { if (donning(otmp)) cancel_don(); +#if 0 /*JP*/ Your("%s falls to the %s!", helm_simple_name(otmp), surface(u.ux, u.uy)); +#else + Your("%s‚Í%s‚É—Ž‚¿‚½I", helm_simple_name(otmp), + surface(u.ux, u.uy)); +#endif (void) Helmet_off(); dropx(otmp); } @@ -946,10 +1126,18 @@ break_armor() if (donning(otmp)) cancel_don(); if (is_whirly(youmonst.data)) +/*JP Your("boots fall away!"); +*/ + Your("ŒC‚Í’E‚°—Ž‚¿‚½I"); else +#if 0 /*JP*/ Your("boots %s off your feet!", verysmall(youmonst.data) ? "slide" : "are pushed"); +#else + Your("ŒC‚Í‚ ‚È‚½‚Ì‘«‚©‚ç%sI", + verysmall(youmonst.data) ? "ŠŠ‚è—Ž‚¿‚½" : "’E‚°—Ž‚¿‚½"); +#endif (void) Boots_off(); dropx(otmp); } @@ -984,8 +1172,12 @@ int alone; if (uwep->quan != 1L || u.twoweap) which = makeplural(which); +#if 0 /*JP*/ You("find you must %s %s %s!", what, the_your[!!strncmp(which, "corpse", 6)], which); +#else + You("%s‚ð—Ž‚Æ‚µ‚½‚±‚Æ‚É‹C‚¢‚½I", what); +#endif } if (u.twoweap) { otmp = uswapwep; @@ -1010,19 +1202,31 @@ rehumanize() /* You can't revert back while unchanging */ if (Unchanging && (u.mh < 1)) { killer.format = NO_KILLER_PREFIX; +/*JP Strcpy(killer.name, "killed while stuck in creature form"); +*/ + Strcpy(killer.name, "Œ³‚ÌŽp‚֖߂ꂸ‚É"); done(DIED); } if (emits_light(youmonst.data)) del_light_source(LS_MONSTER, monst_to_any(&youmonst)); +/*JP polyman("return to %s form!", urace.adj); +*/ + polyman("%s‚É–ß‚Á‚½I", urace.adj); if (u.uhp < 1) { /* can only happen if some bit of code reduces u.uhp instead of u.mh while poly'd */ +/*JP Your("old form was not healthy enough to survive."); +*/ + Your("Œ³‚ÌŽp‚͐¶‚«‚Ä‚¢‚­‚¾‚¯‚Ì—Í‚ª‚È‚¢D"); +/*JP Sprintf(killer.name, "reverting to unhealthy %s form", urace.adj); +*/ + Sprintf(killer.name, "•sŒ’N‚È%s‚ÌŽp‚É–ß‚Á‚Ä", urace.adj); killer.format = KILLED_BY; done(DIED); } @@ -1043,11 +1247,17 @@ dobreathe() struct attack *mattk; if (Strangled) { +/*JP You_cant("breathe. Sorry."); +*/ + You_cant("‘§‚ð“f‚­‚±‚Æ‚ª‚Å‚«‚È‚¢DŽc”OD"); return 0; } if (u.uen < 15) { +/*JP You("don't have enough energy to breathe!"); +*/ + You("‘§‚ð“f‚­‚̂ɏ\•ª‚ȃGƒlƒ‹ƒM[‚ª‚È‚©‚Á‚½D"); return 0; } u.uen -= 15; @@ -1102,11 +1312,19 @@ doremove() { if (!Punished) { if (u.utrap && u.utraptype == TT_BURIEDBALL) { +#if 0 /*JP*/ pline_The("ball and chain are buried firmly in the %s.", surface(u.ux, u.uy)); +#else + pline_The("‹…‚ƍ½‚Í%s‚É‚µ‚Á‚©‚è‚Æ–„‚Ü‚Á‚Ä‚¢‚éD.", + surface(u.ux, u.uy)); +#endif return 0; } +/*JP You("are not chained to anything!"); +*/ + You("‰½‚à‚‚Ȃª‚ê‚Ä‚¢‚È‚¢I"); return 0; } unpunish(); @@ -1120,11 +1338,17 @@ dospinweb() if (Levitation || Is_airlevel(&u.uz) || Underwater || Is_waterlevel(&u.uz)) { +/*JP You("must be on the ground to spin a web."); +*/ + You("‚­‚à‚Ì‘ƒ‚𒣂é‚É‚Í’n–ʂ̏ã‚É‚¢‚È‚­‚Ä‚Í‚È‚ç‚È‚¢D"); return 0; } if (u.uswallow) { +/*JP You("release web fluid inside %s.", mon_nam(u.ustuck)); +*/ + You("%s‚Ì“à‚Å‚­‚à‚Ì‘ƒ‚ð“f‚«o‚µ‚½D", mon_nam(u.ustuck)); if (is_animal(u.ustuck->data)) { expels(u.ustuck, u.ustuck->data, TRUE); return 0; @@ -1143,24 +1367,42 @@ dospinweb() sweep[0] = '\0'; switch (u.ustuck->data->mattk[i].adtyp) { case AD_FIRE: +/*JP Strcpy(sweep, "ignites and "); +*/ + Strcpy(sweep, "”­‰Î‚µ"); break; case AD_ELEC: +/*JP Strcpy(sweep, "fries and "); +*/ + Strcpy(sweep, "Å‚°"); break; case AD_COLD: +/*JP Strcpy(sweep, "freezes, shatters and "); +*/ + Strcpy(sweep, "“€‚è‚‚«C‚±‚È‚²‚È‚É‚È‚è"); break; } +/*JP pline_The("web %sis swept away!", sweep); +*/ + pline("‚­‚à‚Ì‘ƒ‚Í%s‚È‚­‚È‚Á‚½I", sweep); } return 0; } /* default: a nasty jelly-like creature */ +/*JP pline_The("web dissolves into %s.", mon_nam(u.ustuck)); +*/ + pline("‚­‚à‚Ì‘ƒ‚Í•ª‰ð‚µ‚Ä%s‚É‚È‚Á‚½D", mon_nam(u.ustuck)); return 0; } if (u.utrap) { +/*JP You("cannot spin webs while stuck in a trap."); +*/ + You("㩂ɂ͂܂Á‚Ä‚¢‚éŠÔ‚Í‚­‚à‚Ì‘ƒ‚𒣂ê‚È‚¢D"); return 0; } exercise(A_DEX, TRUE); @@ -1168,13 +1410,19 @@ dospinweb() switch (ttmp->ttyp) { case PIT: case SPIKED_PIT: +/*JP You("spin a web, covering up the pit."); +*/ + You("‚­‚à‚Ì‘ƒ‚𒣂èC—Ž‚µŒŠ‚𕢂Á‚½D"); deltrap(ttmp); bury_objs(u.ux, u.uy); newsym(u.ux, u.uy); return 1; case SQKY_BOARD: +/*JP pline_The("squeaky board is muffled."); +*/ + pline("‚«‚µ‚ޔ‚͕¢‚í‚ꂽD"); deltrap(ttmp); newsym(u.ux, u.uy); return 1; @@ -1182,20 +1430,34 @@ dospinweb() case LEVEL_TELEP: case MAGIC_PORTAL: case VIBRATING_SQUARE: +/*JP Your("webbing vanishes!"); +*/ + Your("‚­‚à‚Ì‘ƒ‚͏Á‚¦‚½I"); return 0; case WEB: +/*JP You("make the web thicker."); +*/ + You("‚­‚à‚Ì‘ƒ‚ð‚æ‚èŒú‚­‚µ‚½D"); return 1; case HOLE: case TRAPDOOR: +#if 0 /*JP*/ You("web over the %s.", (ttmp->ttyp == TRAPDOOR) ? "trap door" : "hole"); +#else + You("%s‚ð‚­‚à‚Ì‘ƒ‚Å•¢‚Á‚½D", + (ttmp->ttyp == TRAPDOOR) ? "—Ž‚µ”à" : "ŒŠ"); +#endif deltrap(ttmp); newsym(u.ux, u.uy); return 1; case ROLLING_BOULDER_TRAP: +/*JP You("spin a web, jamming the trigger."); +*/ + You("‚­‚à‚Ì‘ƒ‚𒣂Á‚āCƒXƒCƒbƒ`‚ð“®‚©‚È‚­‚µ‚½D"); deltrap(ttmp); newsym(u.ux, u.uy); return 1; @@ -1210,7 +1472,10 @@ dospinweb() case MAGIC_TRAP: case ANTI_MAGIC: case POLY_TRAP: +/*JP You("have triggered a trap!"); +*/ + You("㩂ðŽn“®‚³‚¹‚Ä‚µ‚Ü‚Á‚½I"); dotrap(ttmp, 0); return 1; default: @@ -1219,8 +1484,13 @@ dospinweb() } } else if (On_stairs(u.ux, u.uy)) { /* cop out: don't let them hide the stairs */ +#if 0 /*JP:T*/ Your("web fails to impede access to the %s.", (levl[u.ux][u.uy].typ == STAIRS) ? "stairs" : "ladder"); +#else + Your("‚­‚à‚Ì‘ƒ‚Í%s‚ւ̈ړ®‚ðŽ×–‚‚Å‚«‚È‚¢D", + (levl[u.ux][u.uy].typ == STAIRS) ? "ŠK’i" : "‚Í‚µ‚²"); +#endif return 1; } ttmp = maketrap(u.ux, u.uy, WEB); @@ -1236,16 +1506,25 @@ dosummon() { int placeholder; if (u.uen < 10) { +/*JP You("lack the energy to send forth a call for help!"); +*/ + You("•‚¯‚ðŒÄ‚Ô‚¾‚¯‚Ì‘Ì—Í‚ª‚È‚¢I"); return 0; } u.uen -= 10; context.botl = 1; +/*JP You("call upon your brethren for help!"); +*/ + You("’‡ŠÔ‚ðŒÄ‚ñ‚¾I"); exercise(A_WIS, TRUE); if (!were_summon(youmonst.data, TRUE, &placeholder, (char *) 0)) +/*JP pline("But none arrive."); +*/ + pline("‚µ‚©‚µC‰½‚à—ˆ‚È‚¢D"); return 1; } @@ -1270,14 +1549,23 @@ dogaze() } if (Blind) { +/*JP You_cant("see anything to gaze at."); +*/ + You("–Ú‚ªŒ©‚¦‚È‚¢‚̂ŁC‚É‚ç‚ß‚È‚¢D"); return 0; } else if (Hallucination) { +/*JP You_cant("gaze at anything you can see."); +*/ + You_cant("Œ©‚¦‚é‚à‚Ì‚ð‰½‚à‚É‚ç‚ß‚È‚¢D"); return 0; } if (u.uen < 15) { +/*JP You("lack the energy to use your special gaze!"); +*/ + You("‚É‚ç‚Þ‚¾‚¯‚Ì‘Ì—Í‚ª‚È‚¢I"); return 0; } u.uen -= 15; @@ -1289,20 +1577,35 @@ dogaze() if (canseemon(mtmp) && couldsee(mtmp->mx, mtmp->my)) { looked++; if (Invis && !perceives(mtmp->data)) { +/*JP pline("%s seems not to notice your gaze.", Monnam(mtmp)); +*/ + pline("%s‚Í‚ ‚È‚½‚Ì‚É‚ç‚Ý‚É‹C‚ª‚‚¢‚Ä‚È‚¢‚悤‚¾D", Monnam(mtmp)); } else if (mtmp->minvis && !See_invisible) { +/*JP You_cant("see where to gaze at %s.", Monnam(mtmp)); +*/ + You("%s‚ÍŒ©‚¦‚È‚¢‚̂ŁC‚É‚ç‚ß‚È‚¢", Monnam(mtmp)); } else if (mtmp->m_ap_type == M_AP_FURNITURE || mtmp->m_ap_type == M_AP_OBJECT) { looked--; continue; } else if (flags.safe_dog && mtmp->mtame && !Confusion) { +/*JP You("avoid gazing at %s.", y_monnam(mtmp)); +*/ + You("%s‚©‚ç–Ú‚ð‚»‚ç‚µ‚Ä‚µ‚Ü‚Á‚½D", y_monnam(mtmp)); } else { if (flags.confirm && mtmp->mpeaceful && !Confusion) { +#if 0 /*JP*/ Sprintf(qbuf, "Really %s %s?", (adtyp == AD_CONF) ? "confuse" : "attack", mon_nam(mtmp)); +#else + Sprintf(qbuf, "–{“–‚É%s‚ð%sH", + mon_nam(mtmp), + (adtyp == AD_CONF) ? "¬—‚³‚¹‚é" : "UŒ‚‚·‚é"); +#endif if (yn(qbuf) != 'y') continue; setmangry(mtmp); @@ -1317,17 +1620,29 @@ dogaze() */ if (adtyp == AD_CONF) { if (!mtmp->mconf) +/*JP Your("gaze confuses %s!", mon_nam(mtmp)); +*/ + Your("‚É‚ç‚Ý‚Í%s‚ð¬—‚³‚¹‚½I", mon_nam(mtmp)); else +/*JP pline("%s is getting more and more confused.", +*/ + pline("%s‚Í‚Ü‚·‚Ü‚·¬—‚µ‚½I", Monnam(mtmp)); mtmp->mconf = 1; } else if (adtyp == AD_FIRE) { int dmg = d(2, 6), lev = (int) u.ulevel; +/*JP You("attack %s with a fiery gaze!", mon_nam(mtmp)); +*/ + You("‰Š‚Ì‚É‚ç‚Ý‚Å%s‚ðUŒ‚‚µ‚½I", mon_nam(mtmp)); if (resists_fire(mtmp)) { +/*JP pline_The("fire doesn't burn %s!", mon_nam(mtmp)); +*/ + pline("%s‚͉Š‚Å”R‚¦‚È‚©‚Á‚½I", mon_nam(mtmp)); dmg = 0; } if (lev > rn2(20)) @@ -1349,7 +1664,10 @@ dogaze() if (mtmp->data == &mons[PM_FLOATING_EYE] && !mtmp->mcan) { if (!Free_action) { +/*JP You("are frozen by %s gaze!", +*/ + You("%s‚Ì‚É‚ç‚Ý‚Å“®‚¯‚È‚­‚È‚Á‚½I", s_suffix(mon_nam(mtmp))); nomul((u.ulevel > 6 || rn2(4)) ? -d((int) mtmp->m_lev + 1, @@ -1359,7 +1677,10 @@ dogaze() nomovemsg = 0; return 1; } else +/*JP You("stiffen momentarily under %s gaze.", +*/ + You("%s‚Ì‚É‚ç‚݂ňêud’¼‚µ‚½D", s_suffix(mon_nam(mtmp))); } /* Technically this one shouldn't affect you at all because @@ -1368,19 +1689,31 @@ dogaze() * effect would be too weird. */ if (mtmp->data == &mons[PM_MEDUSA] && !mtmp->mcan) { +/*JP pline("Gazing at the awake %s is not a very good idea.", +*/ + pline("–Ú‚ðŠo‚Ü‚µ‚Ä‚¢‚é%s‚ð‚É‚ç‚Þ‚Ì‚ÍŒ«‚¢‚±‚Æ‚¶‚á‚È‚¢D", l_monnam(mtmp)); /* as if gazing at a sleeping anything is fruitful... */ +/*JP You("turn to stone..."); +*/ + You("Î‚É‚È‚Á‚½DDD"); killer.format = KILLED_BY; +/*JP Strcpy(killer.name, "deliberately meeting Medusa's gaze"); +*/ + Strcpy(killer.name, "‚í‚´‚í‚´ƒƒfƒ…[ƒT‚Ì‚É‚ç‚Ý‚ð‚Ü‚Æ‚à‚ÉŒ©‚Ä"); done(STONING); } } } } if (!looked) +/*JP You("gaze at no place in particular."); +*/ + You("ŽÀÛ‚ɂ͉½‚à‚É‚ç‚ß‚È‚©‚Á‚½D"); return 1; } @@ -1475,14 +1808,23 @@ domindblast() struct monst *mtmp, *nmon; if (u.uen < 10) { +/*JP You("concentrate but lack the energy to maintain doing so."); +*/ + You("W’†‚µ‚½D‚µ‚©‚µƒGƒlƒ‹ƒM[‚ª‘«‚è‚È‚¢D"); return 0; } u.uen -= 10; context.botl = 1; +/*JP You("concentrate."); +*/ + You("W’†‚µ‚½D"); +/*JP pline("A wave of psychic energy pours out."); +*/ + pline("¸_ƒGƒlƒ‹ƒM[”g‚ª•úŽU‚µ‚½D"); for (mtmp = fmon; mtmp; mtmp = nmon) { int u_sen; @@ -1495,9 +1837,15 @@ domindblast() continue; u_sen = telepathic(mtmp->data) && !mtmp->mcansee; if (u_sen || (telepathic(mtmp->data) && rn2(2)) || !rn2(10)) { +#if 0 /*JP*/ You("lock in on %s %s.", s_suffix(mon_nam(mtmp)), u_sen ? "telepathy" : telepathic(mtmp->data) ? "latent telepathy" : "mind"); +#else + pline("%s‚Ì%s‚荞‚ñ‚¾D", mon_nam(mtmp), + u_sen ? "¸_‚É“ü" + : telepathic(mtmp->data) ? "öÝ“I¸_‚É“ü" : "[‘wˆÓŽ¯‚ɐö"); +#endif mtmp->mhp -= rnd(15); if (mtmp->mhp <= 0) killed(mtmp); @@ -1509,7 +1857,10 @@ domindblast() STATIC_OVL void uunstick() { +/*JP pline("%s is no longer in your clutches.", Monnam(u.ustuck)); +*/ + pline("%s‚Í‚ ‚È‚½‚ÌŽè‚©‚瓦‚ꂽD", Monnam(u.ustuck)); u.ustuck = 0; } @@ -1519,7 +1870,10 @@ boolean silently; { if (uskin) { if (!silently) +/*JP Your("skin returns to its original form."); +*/ + Your("”畆‚Í–{—ˆ‚ÌŽp‚É–ß‚Á‚½D"); uarm = uskin; uskin = (struct obj *) 0; /* undo save/restore hack */ @@ -1533,11 +1887,20 @@ struct monst *mon; int part; { static NEARDATA const char +#if 0 /*JP*/ *humanoid_parts[] = { "arm", "eye", "face", "finger", "fingertip", "foot", "hand", "handed", "head", "leg", "light headed", "neck", "spine", "toe", "hair", "blood", "lung", "nose", "stomach" }, +#else + *humanoid_parts[] = { "˜r", "–Ú", "Šç", "Žw", + "Žwæ", "‘«", "Žè", "Žè‚É‚·‚é", + "“ª", "‘«", "‚ß‚Ü‚¢‚ª‚µ‚½", "Žñ", + "”wœ", "’ܐæ", "”¯", "ŒŒ", + "”x", "•@", "ˆÝ"}, +#endif +#if 0 /*JP*/ *jelly_parts[] = { "pseudopod", "dark spot", "front", "pseudopod extension", "pseudopod extremity", "pseudopod root", "grasp", "grasped", @@ -1545,6 +1908,16 @@ int part; "middle", "surface", "pseudopod extremity", "ripples", "juices", "surface", "sensor", "stomach" }, +#else + *jelly_parts[] = { "‹[Ž—GŽè", "•‚¢”Á“_", "‘O–Ê", + "‹[Ž—GŽè‚̐æ", "‹[Ž—GŽè", + "‹[Ž—GŽè‚ÌŠ²", "GŽè", "ˆ¬‚é", + "”]‚̗̈æ", "‰º•û‚Ì‹[Ž—GŽè", "‚˂΂˂΂µ‚Ä‚«‚½", + "’†ŠÔ—̈æ", "•\–Ê", "‹[Ž—GŽè", + "”g–ä", "‘̉t", "•\–Ê", "Š´ŠoŠí", + "ˆÝ"}, +#endif +#if 0 /*JP*/ *animal_parts[] = { "forelimb", "eye", "face", "foreclaw", "claw tip", "rear claw", "foreclaw", "clawed", "head", @@ -1552,11 +1925,29 @@ int part; "spine", "rear claw tip", "fur", "blood", "lung", "nose", "stomach" }, +#else + *animal_parts[] = { "‘O‘«", "–Ú", "Šç", + "‘O’Ü", "’ܐæ", "Œã’Ü", + "‘O’Ü", "‚ЂÁ‚©‚¯‚é", "“ª", + "Œã‘«", "‚ß‚Ü‚¢‚ª‚µ‚½", "Žñ", + "”wœ", "Œã’ܐæ", "–Ñ”ç", + "ŒŒ", "”x", "•@", + "ˆÝ"}, +#endif +#if 0 /*JP*/ *bird_parts[] = { "wing", "eye", "face", "wing", "wing tip", "foot", "wing", "winged", "head", "leg", "light headed", "neck", "spine", "toe", "feathers", "blood", "lung", "bill", "stomach" }, +#else + *bird_parts[] = { "—ƒ", "–Ú", "Šç", "—ƒ", + "—ƒ‚̐æ", "‘«", "—ƒ", "—ƒ‚É‚Æ‚é", + "“ª", "‘«", "‚ß‚Ü‚¢‚ª‚µ‚½", "Žñ", + "”wœ", "’ܐæ", "‰H–Ñ", "ŒŒ", + "”x", "‚­‚¿‚΂µ", "ˆÝ" }, +#endif +#if 0 /*JP*/ *horse_parts[] = { "foreleg", "eye", "face", "forehoof", "hoof tip", "rear hoof", "forehoof", "hooved", "head", @@ -1564,12 +1955,31 @@ int part; "backbone", "rear hoof tip", "mane", "blood", "lung", "nose", "stomach" }, +#else + *horse_parts[] = { "‘O‘«", "–Ú", "Šç", + "‘O’û", "’û", "Œã’û", + "‘O’Ü", "’û‚É‚Í‚³‚Þ", "“ª", + "Œã‘«", "‚ß‚Ü‚¢‚ª‚µ‚½", "Žñ", + "”wœ", "Œã’ܐæ", "‚½‚Ä‚ª‚Ý", + "ŒŒ", "”x", "•@", + "ˆÝ" }, +#endif +#if 0 /*JP*/ *sphere_parts[] = { "appendage", "optic nerve", "body", "tentacle", "tentacle tip", "lower appendage", "tentacle", "tentacled", "body", "lower tentacle", "rotational", "equator", "body", "lower tentacle tip", "cilia", "life force", "retina", "olfactory nerve", "interior" }, +#else + *sphere_parts[] = { "“Ë‹N", "Ž‹Šo_Œo", "‘Ì", "GŽè", + "GŽè‚̐æ", "‰º‚Ì“Ë‹N", "GŽè", + "GŽè‚ÉŽ‚Â", "‘Ì", "‰º‚̐GŽè", + "‰ñ“]‚µ‚½", "’†Sü", "‘Ì", + "‰º‚̐GŽè‚̐æ", "‘@–Ñ", "¶–½—Í", + "–Ô–Œ", "škŠo’†•", "“à•”" }, +#endif +#if 0 /*JP*/ *fungus_parts[] = { "mycelium", "visual area", "front", "hypha", "hypha", "root", "strand", "stranded", "cap area", @@ -1577,6 +1987,16 @@ int part; "root", "rhizome tip", "spores", "juices", "gill", "gill", "interior" }, +#else + *fungus_parts[] = { "‹ÛŽ…‘Ì", "Ž‹Šo—̈æ", "‘O", + "‹ÛŽ…", "‹ÛŽ…", "ª", + "GŽè", "GŽè‚É‚©‚ç‚݂‚¯‚é", "ŽP", + "ªŒs", "¬—‚·‚é", "Ž²", + "ª", "ªŒs‚̐æ", "‰è–E", + "‘̉t", "‚¦‚ç", "‚¦‚ç", + "“à•”"}, +#endif +#if 0 /*JP*/ *vortex_parts[] = { "region", "eye", "front", "minor current", "minor current", "lower current", "swirl", "swirled", "central core", @@ -1584,23 +2004,59 @@ int part; "currents", "edge", "currents", "life force", "center", "leading edge", "interior" }, +#else + *vortex_parts[] = { "—̈æ", "–Ú", "‘O", + "¬‚³‚¢—¬‚ê", "¬‚³‚¢—¬‚ê", "‰º•”‚Ì—¬‚ê", + "‰QŠª", "‰Q‚ÉŠª‚­", "‰Q‚Ì’†S", + "‰º•”‚Ì—¬‚ê", "¬—‚µ‚½", "’†S•”", + "—¬‚ê", "ŠOŽü", "‹C—¬", + "¶–½—Í", "’†S", "‘O‰", + "“à•”" }, +#endif +#if 0 /*JP*/ *snake_parts[] = { "vestigial limb", "eye", "face", "large scale", "large scale tip", "rear region", "scale gap", "scale gapped", "head", "rear region", "light headed", "neck", "length", "rear scale", "scales", "blood", "lung", "forked tongue", "stomach" }, +#else + *snake_parts[] = { "‘Þ‰»‚µ‚½‘«", "–Ú", "Šç", "‘å‚«‚È—Ø", + "‘å‚«‚ȗ؂̐æ", "Œã•”•ª", "—Ø‚ÌŒ„ŠÔ", + "—Ø‚ÌŒ„ŠÔ‚ɂ‚¯‚é", "“ª", "Œã•”•ª", + "‚ß‚Ü‚¢‚ª‚µ‚½", "Žñ", "‘Ì", "Œã•”•ª‚ÌŠZ", + "—Ø", "ŒŒ", "”x", "ã", + "ˆÝ" }, +#endif +#if 0 /*JP*/ *worm_parts[] = { "anterior segment", "light sensitive cell", "clitellum", "setae", "setae", "posterior segment", "segment", "segmented", "anterior segment", "posterior", "over stretched", "clitellum", "length", "posterior setae", "setae", "blood", "skin", "prostomium", "stomach" }, +#else + *worm_parts[] = { "‘O‹æ", "Š´Œõ«×–E", + "ŠÂ‘Ñ", "Šp", "Šp", "Œã‹æ", + "ß", "ß‚ɂ‚¯‚é", "‘O‹æ", + "Œã•”", "L‚Ñ‚·‚¬‚½", "ŠÂ‘Ñ", + "‘Ì", "Œã•”‚ÌŠp", "Šp", "ŒŒ", + "”畆", "Œû‘O—t", "ˆÝ" }, +#endif +#if 0 /*JP*/ *fish_parts[] = { "fin", "eye", "premaxillary", "pelvic axillary", "pelvic fin", "anal fin", "pectoral fin", "finned", "head", "peduncle", "played out", "gills", "dorsal fin", "caudal fin", "scales", "blood", "gill", "nostril", "stomach" }; +#else + *fish_parts[] = { "‚Ђê", "–Ú", "Šç", "‚Ђê‚̐æ", + "‚Ђê‚̐æ", "”ö‚Ñ‚ê", "‹¹‚Ђê", "‚Ђê‚ÅŽ‚Â", + "“ª", "”ö•¿", "‚ß‚Ü‚¢‚ª‚µ‚½", "‚¦‚ç", + "”w‚Ñ‚ê", "”ö‚Ñ‚ê", "—Ø", "ŒŒ", + "‚¦‚ç", "•@", "ˆÝ" }; +#endif +#if 0 /*JP*//*Žg‚í‚È‚¢*/ /* claw attacks are overloaded in mons[]; most humanoids with such attacks should still reference hands rather than claws */ static const char not_claws[] = { @@ -1608,8 +2064,13 @@ int part; S_QUANTMECH, S_VAMPIRE, S_ORC, S_GIANT, /* quest nemeses */ '\0' /* string terminator; assert( S_xxx != 0 ); */ }; +#endif struct permonst *mptr = mon->data; +#if 0 /*JP*/ +/* paw‚ÍŒ¢‚Æ‚©”L‚ÌŽèCclaw‚̓^ƒJ‚Ì‘«‚̂悤‚È‚©‚¬‚‚߁C + ‚Ç‚¿‚ç‚à“ú–{Œê‚¶‚áuŽèv‚Å‚¢‚¢‚Å‚µ‚傤D +*/ /* some special cases */ if (mptr->mlet == S_DOG || mptr->mlet == S_FELINE || mptr->mlet == S_RODENT || mptr == &mons[PM_OWLBEAR]) { @@ -1635,17 +2096,30 @@ int part; && !index(not_claws, mptr->mlet) && mptr != &mons[PM_STONE_GOLEM] && mptr != &mons[PM_INCUBUS] && mptr != &mons[PM_SUCCUBUS])) return (part == HAND) ? "claw" : "clawed"; +#endif +#if 0 /*JP*//*trunk‚͏ۂ̕@‚ðˆÓ–¡‚·‚é‚»‚¤‚Å‚·B“ú–{Œê‚Å‚Í’P‚É•@‚Å‚¢‚¢‚©‚ƁB*/ if ((mptr == &mons[PM_MUMAK] || mptr == &mons[PM_MASTODON]) && part == NOSE) return "trunk"; +#endif if (mptr == &mons[PM_SHARK] && part == HAIR) +#if 0 /*JP*/ return "skin"; /* sharks don't have scales */ +#else + return "“ª"; /* sharks don't have scales */ +#endif if ((mptr == &mons[PM_JELLYFISH] || mptr == &mons[PM_KRAKEN]) && (part == ARM || part == FINGER || part == HAND || part == FOOT || part == TOE)) +/*JP return "tentacle"; +*/ + return "GŽè"; if (mptr == &mons[PM_FLOATING_EYE] && part == EYE) +/*JP return "cornea"; +*/ + return "Šp–Œ"; if (humanoid(mptr) && (part == ARM || part == FINGER || part == FINGERTIP || part == HAND || part == HANDED)) return humanoid_parts[part]; @@ -1655,6 +2129,7 @@ int part; || (mptr == &mons[PM_ROTHE] && part != HAIR)) return horse_parts[part]; if (mptr->mlet == S_LIGHT) { +#if 0 /*JP*/ if (part == HANDED) return "rayed"; else if (part == ARM || part == FINGER || part == FINGERTIP @@ -1662,6 +2137,12 @@ int part; return "ray"; else return "beam"; +#else + if (part == HANDED || part == ARM || part == FINGER + || part == FINGERTIP || part == HAND) { + return "Œõ"; + } +#endif } if (mptr == &mons[PM_STALKER] && part == HEAD) return "head"; @@ -1730,7 +2211,10 @@ int damtype, dam; if (u.mh > u.mhmax) u.mh = u.mhmax; context.botl = 1; +/*JP pline("Strangely, you feel better than before."); +*/ + pline("Šï–­‚È‚±‚ƂɁC‘O‚æ‚è‹C•ª‚ª‚æ‚­‚È‚Á‚½D"); exercise(A_STR, TRUE); } } diff --git a/src/potion.c b/src/potion.c index 7484d29..de6f11b 100644 --- a/src/potion.c +++ b/src/potion.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" boolean notonhead = FALSE; @@ -68,7 +73,10 @@ boolean talk; if (!xtime && old) { if (talk) +/*JP You_feel("less %s now.", Hallucination ? "trippy" : "confused"); +*/ + You("%s‚ª‚¨‚³‚Ü‚Á‚½D", Hallucination ? "ƒwƒƒwƒ" : "¬—"); } if ((xtime && !old) || (!xtime && old)) context.botl = TRUE; @@ -88,15 +96,26 @@ boolean talk; if (!xtime && old) { if (talk) +#if 0 /*JP*/ You_feel("%s now.", Hallucination ? "less wobbly" : "a bit steadier"); +#else + You_feel("%sD", + Hallucination ? "‚Ö‚ë‚è‚炪‚¨‚³‚Ü‚Á‚½" : "‚¾‚ñ‚¾‚ñ‚µ‚Á‚©‚肵‚Ä‚«‚½"); +#endif } if (xtime && !old) { if (talk) { if (u.usteed) +/*JP You("wobble in the saddle."); +*/ + You("ˆÆ‚̏ã‚Å‚®‚ç‚®‚炵‚½D"); else +/*JP You("%s...", stagger(youmonst.data, "stagger")); +*/ + You("%sDDD", stagger(youmonst.data, "‚­‚ç‚­‚炵‚½")); } } if ((!xtime && old) || (xtime && !old)) @@ -123,11 +142,17 @@ int type; return; if (!old) { /* newly sick */ +/*JP You_feel("deathly sick."); +*/ + You("•a‹C‚ÅŽ€‚É‚»‚¤‚¾D"); } else { /* already sick */ if (talk) +/*JP You_feel("%s worse.", xtime <= Sick / 2L ? "much" : "even"); +*/ + You("%sˆ«‰»‚µ‚½‚悤‚È‹C‚ª‚·‚éD", xtime <= Sick/2L ? "‚³‚ç‚É" : "‚à‚Á‚Æ"); } set_itimeout(&Sick, xtime); u.usick_type |= type; @@ -137,11 +162,17 @@ int type; u.usick_type &= ~type; if (u.usick_type) { /* only partly cured */ if (talk) +/*JP You_feel("somewhat better."); +*/ + You("‚¿‚å‚Á‚Æ‚æ‚­‚È‚Á‚½D"); set_itimeout(&Sick, Sick * 2); /* approximation */ } else { if (talk) +/*JP You_feel("cured. What a relief!"); +*/ + pline("‰ñ•œ‚µ‚½D‚ ‚ •‚©‚Á‚½I"); Sick = 0L; /* set_itimeout(&Sick, 0L) */ } context.botl = TRUE; @@ -213,13 +244,22 @@ boolean talk; if (!xtime && old) if (talk) +/*JP You_feel("much less nauseated now."); +*/ + You("“f‚«‹C‚ª‚¨‚³‚Ü‚Á‚½D"); set_itimeout(&Vomiting, xtime); } +/*JP static const char vismsg[] = "vision seems to %s for a moment but is %s now."; +*/ +static const char vismsg[] = "Ž‹ŠE‚͈êu%s‚È‚Á‚½‚ª‚Ü‚½%s‚È‚Á‚½D"; +/*JP static const char eyemsg[] = "%s momentarily %s."; +*/ +static const char eyemsg[] = "%s‚͈êu%sD"; void make_blinded(xtime, talk) @@ -243,9 +283,15 @@ boolean talk; if (can_see_now && !u_could_see) { /* regaining sight */ if (talk) { if (Hallucination) +/*JP pline("Far out! Everything is all cosmic again!"); +*/ + pline("‚°I‚È‚É‚à‚©‚à‚ª‚Ü‚½“øF‚ÉŒ©‚¦‚éI"); else +/*JP You("can see again."); +*/ + You("‚Ü‚½Œ©‚¦‚é‚悤‚É‚È‚Á‚½D"); } } else if (old && !xtime) { /* clearing temporary blindness without toggling blindness */ @@ -253,12 +299,19 @@ boolean talk; if (!haseyes(youmonst.data)) { strange_feeling((struct obj *) 0, (char *) 0); } else if (Blindfolded) { +#if 0 /*JP*/ eyes = body_part(EYE); if (eyecount(youmonst.data) != 1) eyes = makeplural(eyes); Your(eyemsg, eyes, vtense(eyes, "itch")); +#else + Your(eyemsg, body_part(EYE), "‚©‚ä‚­‚È‚Á‚½"); +#endif } else { /* Eyes of the Overworld */ +/*JP Your(vismsg, "brighten", Hallucination ? "sadder" : "normal"); +*/ + Your(vismsg, "–¾‚é‚­", Hallucination ? "ªˆÃ‚É" : "•’Ê‚É"); } } } @@ -266,9 +319,15 @@ boolean talk; if (u_could_see && !can_see_now) { /* losing sight */ if (talk) { if (Hallucination) +/*JP pline("Oh, bummer! Everything is dark! Help!"); +*/ + pline("ˆÃ‚¢‚æ[C‹·‚¢‚æ[C‹°‚¢‚æ[I"); else +/*JP pline("A cloud of darkness falls upon you."); +*/ + pline("ˆÃ•‚̉_‚ª‚ ‚È‚½‚𕢂Á‚½D"); } /* Before the hero goes blind, set the ball&chain variables. */ if (Punished) @@ -279,12 +338,19 @@ boolean talk; if (!haseyes(youmonst.data)) { strange_feeling((struct obj *) 0, (char *) 0); } else if (Blindfolded) { +#if 0 /*JP*/ eyes = body_part(EYE); if (eyecount(youmonst.data) != 1) eyes = makeplural(eyes); Your(eyemsg, eyes, vtense(eyes, "twitch")); +#else + Your(eyemsg, body_part(EYE), "ƒsƒNƒsƒN‚µ‚½"); +#endif } else { /* Eyes of the Overworld */ +/*JP Your(vismsg, "dim", Hallucination ? "happier" : "normal"); +*/ + Your(vismsg, "”–ˆÃ‚­", Hallucination ? "ƒnƒbƒs[‚É" : "•’Ê‚É"); } } } @@ -331,9 +397,17 @@ long mask; /* nonzero if resistance status should change by mask */ if (Unaware) talk = FALSE; +#if 0 /*JP*/ message = (!xtime) ? "Everything %s SO boring now." : "Oh wow! Everything %s so cosmic!"; +#else + message = (!xtime) ? "‰½‚à‚©‚à‚ª–‘Þ‹ü–‚É%s‚éD" + : "ƒ[ƒII‰½‚à‚©‚à“øF‚É%s‚éI"; +#endif +/*JP verb = (!Blind) ? "looks" : "feels"; +*/ + verb = (!Blind) ? "Œ©‚¦" : "Š´‚¶"; if (mask) { if (HHallucination) @@ -353,13 +427,20 @@ long mask; /* nonzero if resistance status should change by mask */ if (!haseyes(youmonst.data)) { strange_feeling((struct obj *) 0, (char *) 0); } else if (Blind) { +#if 0 /*JP*/ const char *eyes = body_part(EYE); if (eyecount(youmonst.data) != 1) eyes = makeplural(eyes); Your(eyemsg, eyes, vtense(eyes, "itch")); +#else + Your(eyemsg, body_part(EYE), "‚©‚ä‚­‚È‚Á‚½"); +#endif } else { /* Grayswandir */ +/*JP Your(vismsg, "flatten", "normal"); +*/ + Your(vismsg, "‚¨‚©‚µ‚­", "•’Ê‚É"); } } } @@ -424,20 +505,37 @@ ghost_from_bottle() struct monst *mtmp = makemon(&mons[PM_GHOST], u.ux, u.uy, NO_MM_FLAGS); if (!mtmp) { +/*JP pline("This bottle turns out to be empty."); +*/ + pline("•r‚Í‹ó‚Á‚Û‚¾‚Á‚½D"); return; } if (Blind) { +/*JP pline("As you open the bottle, %s emerges.", something); +*/ + pline("•r‚ðŠJ‚¯‚é‚ƁC‰½‚©‚ªo‚Ä‚«‚½D"); return; } +#if 0 /*JP*/ pline("As you open the bottle, an enormous %s emerges!", Hallucination ? rndmonnam(NULL) : (const char *) "ghost"); +#else + pline("•r‚ðŠJ‚¯‚é‚ƁC‹‘å‚È%s‚ªo‚Ä‚«‚½I", + Hallucination ? rndmonnam(NULL) : (const char *) "—H—ì"); +#endif if (flags.verbose) +/*JP You("are frightened to death, and unable to move."); +*/ + You("‚Ü‚Á‚³‚¨‚É‚È‚Á‚Ä‹Á‚«C“®‚¯‚È‚­‚È‚Á‚½D"); nomul(-3); multi_reason = "being frightened to death"; +/*JP nomovemsg = "You regain your composure."; +*/ + nomovemsg = "‚ ‚È‚½‚Í•½Ã‚ðŽæ‚è–ß‚µ‚½D"; } /* "Quaffing is like drinking, except you spill more." - Terry Pratchett */ @@ -448,14 +546,20 @@ dodrink() const char *potion_descr; if (Strangled) { +/*JP pline("If you can't breathe air, how can you drink liquid?"); +*/ + pline("‘§‚à‚Å‚«‚È‚¢‚̂ɁC‚Ç‚¤‚â‚Á‚ĉt‘Ì‚ðˆù‚Þ‚ñ‚¾‚¢H"); return 0; } /* Is there a fountain to drink from here? */ if (IS_FOUNTAIN(levl[u.ux][u.uy].typ) /* not as low as floor level but similar restrictions apply */ && can_reach_floor(FALSE)) { +/*JP if (yn("Drink from the fountain?") == 'y') { +*/ + if (yn("ò‚̐…‚ðˆù‚Ý‚Ü‚·‚©H") == 'y') { drinkfountain(); return 1; } @@ -464,15 +568,24 @@ dodrink() if (IS_SINK(levl[u.ux][u.uy].typ) /* not as low as floor level but similar restrictions apply */ && can_reach_floor(FALSE)) { +/*JP if (yn("Drink from the sink?") == 'y') { +*/ + if (yn("—¬‚µ‘ä‚̐…‚ðˆù‚Ý‚Ü‚·‚©H") == 'y') { drinksink(); return 1; } } /* Or are you surrounded by water? */ if (Underwater && !u.uswallow) { +/*JP if (yn("Drink the water around you?") == 'y') { +*/ + if (yn("‚Ü‚í‚è‚̐…‚ðˆù‚Ý‚Ü‚·‚©H") == 'y') { +/*JP pline("Do you know what lives in this water?"); +*/ + pline("‚±‚̐…’†‚ʼn½‚ª¶‚«‚Ä‚¢‚é‚Ì‚©’m‚Á‚Ä‚é‚©‚¢H"); return 1; } } @@ -499,13 +612,19 @@ dodrink() potion_descr = OBJ_DESCR(objects[otmp->otyp]); if (potion_descr) { +/*JP if (!strcmp(potion_descr, "milky") +*/ + if (!strcmp(potion_descr, "ƒ~ƒ‹ƒNF‚Ì") && !(mvitals[PM_GHOST].mvflags & G_GONE) && !rn2(POTION_OCCUPANT_CHANCE(mvitals[PM_GHOST].born))) { ghost_from_bottle(); useup(otmp); return 1; +/*JP } else if (!strcmp(potion_descr, "smoky") +*/ + } else if (!strcmp(potion_descr, "‰Œ‚ª‚Å‚Ä‚¢‚é") && !(mvitals[PM_DJINNI].mvflags & G_GONE) && !rn2(POTION_OCCUPANT_CHANCE(mvitals[PM_DJINNI].born))) { djinni_from_bottle(otmp); @@ -529,8 +648,13 @@ register struct obj *otmp; if (nothing) { unkn++; +#if 0 /*JP*/ You("have a %s feeling for a moment, then it passes.", Hallucination ? "normal" : "peculiar"); +#else + You("%s‹C•ª‚É‚¨‚»‚í‚ꂽ‚ªC‚·‚®‚ɏÁ‚¦‚³‚Á‚½D", + Hallucination ? "•’Ê‚Ì" : "“Æ“Á‚È"); +#endif } if (otmp->dknown && !objects[otmp->otyp].oc_name_known) { if (!unkn) { @@ -554,14 +678,24 @@ register struct obj *otmp; case SPE_RESTORE_ABILITY: unkn++; if (otmp->cursed) { +/*JP pline("Ulch! This makes you feel mediocre!"); +*/ + pline("‚¤[‚ñC‚Ç‚¤‚à‚³‚¦‚È‚¢‚È‚ D"); break; } else { /* unlike unicorn horn, overrides Fixed_abil */ +#if 0 /*JP*/ pline("Wow! This makes you feel %s!", (otmp->blessed) ? (unfixable_trouble_count(FALSE) ? "better" : "great") : "good"); +#else + pline("ƒ[ƒII‹C•ª‚ª%s‚È‚Á‚½I", + (otmp->blessed) + ? (unfixable_trouble_count(FALSE) ? "‚¾‚¢‚Ô‚æ‚­" : "‚Æ‚Ä‚à‚æ‚­") + : "‚æ‚­"); +#endif i = rn2(A_MAX); /* start at a random point */ for (ii = 0; ii < A_MAX; ii++) { lim = AMAX(i); @@ -588,7 +722,10 @@ register struct obj *otmp; break; case POT_WATER: if (!otmp->blessed && !otmp->cursed) { +/*JP pline("This tastes like water."); +*/ + pline("…‚̂悤‚È–¡‚ª‚·‚éD"); u.uhunger += rnd(10); newuhs(FALSE); break; @@ -597,19 +734,31 @@ register struct obj *otmp; if (is_undead(youmonst.data) || is_demon(youmonst.data) || u.ualign.type == A_CHAOTIC) { if (otmp->blessed) { +/*JP pline("This burns like acid!"); +*/ + pline("Ž_‚̂悤‚ɐオ‚Ђè‚Ђ肷‚éI"); exercise(A_CON, FALSE); if (u.ulycn >= LOW_PM) { +/*JP Your("affinity to %s disappears!", +*/ + Your("%s‚ւ̐e‹ßŠ´‚Í‚È‚­‚È‚Á‚½I", makeplural(mons[u.ulycn].mname)); if (youmonst.data == &mons[u.ulycn]) you_unwere(FALSE); u.ulycn = NON_PM; /* cure lycanthropy */ } +/*JP losehp(Maybe_Half_Phys(d(2, 6)), "potion of holy water", +*/ + losehp(Maybe_Half_Phys(d(2, 6)), "¹…‚Å", KILLED_BY_AN); } else if (otmp->cursed) { +/*JP You_feel("quite proud of yourself."); +*/ + You("Ž©‘¸S‚ðŠ´‚¶‚½D"); healup(d(2, 6), 0, 0, 0); if (u.ulycn >= LOW_PM && !Upolyd) you_were(); @@ -617,7 +766,10 @@ register struct obj *otmp; } } else { if (otmp->blessed) { +/*JP You_feel("full of awe."); +*/ + You("ˆØ•|‚Ì”O‚É‚©‚ç‚ꂽD"); make_sick(0L, (char *) 0, TRUE, SICK_ALL); exercise(A_WIS, TRUE); exercise(A_CON, TRUE); @@ -626,11 +778,20 @@ register struct obj *otmp; /* make_confused(0L, TRUE); */ } else { if (u.ualign.type == A_LAWFUL) { +/*JP pline("This burns like acid!"); +*/ + pline("Ž_‚̂悤‚ɐオ‚Ђè‚Ђ肷‚éI"); +/*JP losehp(Maybe_Half_Phys(d(2, 6)), "potion of unholy water", +*/ + losehp(Maybe_Half_Phys(d(2, 6)), "•sò‚Ȑ…‚Å", KILLED_BY_AN); } else +/*JP You_feel("full of dread."); +*/ + You("‹°•|‚Ì”O‚É‚©‚ç‚ꂽD"); if (u.ulycn >= LOW_PM && !Upolyd) you_were(); exercise(A_CON, FALSE); @@ -639,9 +800,15 @@ register struct obj *otmp; break; case POT_BOOZE: unkn++; +#if 0 /*JP*/ pline("Ooph! This tastes like %s%s!", otmp->odiluted ? "watered down " : "", Hallucination ? "dandelion wine" : "liquid fire"); +#else + pline("‚¤‚¥‚Á‚ՁI‚±‚ê‚Í%s%s‚̂悤‚È–¡‚ª‚·‚éI", + otmp->odiluted ? "…‚Å”–‚ß‚½" : "", + Hallucination ? "ƒ^ƒ“ƒ|ƒ|ƒƒCƒ“" : "”R—¿ƒIƒCƒ‹"); +#endif if (!otmp->blessed) make_confused(itimeout_incr(HConfusion, d(3, 8)), FALSE); /* the whiskey makes us feel better */ @@ -651,32 +818,50 @@ register struct obj *otmp; newuhs(FALSE); exercise(A_WIS, FALSE); if (otmp->cursed) { +/*JP You("pass out."); +*/ + You("‹Câ‚µ‚½D"); multi = -rnd(15); +/*JP nomovemsg = "You awake with a headache."; +*/ + nomovemsg = "–Ú‚ª‚³‚ß‚½‚ª“ª’É‚ª‚·‚éD"; } break; case POT_ENLIGHTENMENT: if (otmp->cursed) { unkn++; +/*JP You("have an uneasy feeling..."); +*/ + You("•sˆÀ‚È‹CŽ‚É‚È‚Á‚½DDD"); exercise(A_WIS, FALSE); } else { if (otmp->blessed) { (void) adjattrib(A_INT, 1, FALSE); (void) adjattrib(A_WIS, 1, FALSE); } +/*JP You_feel("self-knowledgeable..."); +*/ + You("Ž©•ªŽ©g‚ª”»‚é‚悤‚È‹C‚ª‚µ‚½DDD"); display_nhwindow(WIN_MESSAGE, FALSE); enlightenment(MAGICENLIGHTENMENT, ENL_GAMEINPROGRESS); +/*JP pline_The("feeling subsides."); +*/ + pline("‚»‚ÌŠ´‚¶‚Í‚È‚­‚È‚Á‚½D"); exercise(A_WIS, TRUE); } break; case SPE_INVISIBILITY: /* spell cannot penetrate mummy wrapping */ if (BInvis && uarmc->otyp == MUMMY_WRAPPING) { +/*JP You_feel("rather itchy under %s.", yname(uarmc)); +*/ + You("%s‚̉º‚ªƒ€ƒYƒ€ƒY‚µ‚½D", xname(uarmc)); break; } /* FALLTHRU */ @@ -692,7 +877,10 @@ register struct obj *otmp; incr_itimeout(&HInvis, rn1(15, 31)); newsym(u.ux, u.uy); /* update position */ if (otmp->cursed) { +/*JP pline("For some reason, you feel your presence is known."); +*/ + pline("‚È‚º‚©C‘¶Ý‚ª’m‚ç‚ê‚Ä‚¢‚é‚悤‚È‹C‚ª‚µ‚½D"); aggravate(); } break; @@ -702,14 +890,27 @@ register struct obj *otmp; unkn++; if (otmp->cursed) +#if 0 /*JP*/ pline("Yecch! This tastes %s.", Hallucination ? "overripe" : "rotten"); +#else + pline("ƒIƒF[I‚±‚ê‚Í%sƒWƒ…[ƒX‚Ì–¡‚ª‚·‚éD", + Hallucination ? "n‚µ‚·‚¬‚½" : "•…‚Á‚½"); +#endif else +#if 0 /*JP*/ pline( Hallucination ? "This tastes like 10%% real %s%s all-natural beverage." : "This tastes like %s%s.", otmp->odiluted ? "reconstituted " : "", fruitname(TRUE)); +#else + pline( + Hallucination + ? "10%%%s‚̏ƒŽ©‘Rˆù—¿‚̂悤‚È–¡‚ª‚·‚éD" + : "%s%sƒWƒ…[ƒX‚̂悤‚È–¡‚ª‚·‚éD", + otmp->odiluted ? "¬•ª’²®‚³‚ꂽ" : "", fruitname(TRUE)); +#endif if (otmp->otyp == POT_FRUIT_JUICE) { u.uhunger += (otmp->odiluted ? 5 : 10) * (2 + bcsign(otmp)); newuhs(FALSE); @@ -729,22 +930,38 @@ register struct obj *otmp; see_monsters(); /* see invisible monsters */ newsym(u.ux, u.uy); /* see yourself! */ if (msg && !Blind) { /* Blind possible if polymorphed */ +/*JP You("can see through yourself, but you are visible!"); +*/ + You("“§–¾‚Å‚ ‚éD‚µ‚©‚µŒ©‚¦‚é‚悤‚É‚È‚Á‚½I"); unkn--; } break; } case POT_PARALYSIS: if (Free_action) { +/*JP You("stiffen momentarily."); +*/ + You("ˆêu“®‚¯‚È‚­‚È‚Á‚½D"); } else { if (Levitation || Is_airlevel(&u.uz) || Is_waterlevel(&u.uz)) +/*JP You("are motionlessly suspended."); +*/ + You("‹ó’†‚Å“®‚¯‚È‚­‚È‚Á‚½D"); else if (u.usteed) +/*JP You("are frozen in place!"); +*/ + You("‚»‚̏ê‚Å“®‚¯‚È‚­‚È‚Á‚½I"); else +#if 0 /*JP*/ Your("%s are frozen to the %s!", makeplural(body_part(FOOT)), surface(u.ux, u.uy)); +#else + You("“®‚¯‚È‚­‚È‚Á‚½I"); +#endif nomul(-(rn1(10, 25 - 12 * bcsign(otmp)))); multi_reason = "frozen by a potion"; nomovemsg = You_can_move_again; @@ -753,9 +970,15 @@ register struct obj *otmp; break; case POT_SLEEPING: if (Sleep_resistance || Free_action) { +/*JP You("yawn."); +*/ + You("‚ ‚­‚Ñ‚ð‚µ‚½D"); } else { +/*JP You("suddenly fall asleep!"); +*/ + pline("“Ë‘R–°‚Á‚Ä‚µ‚Ü‚Á‚½I"); fall_asleep(-rn1(10, 25 - 12 * bcsign(otmp)), TRUE); } break; @@ -785,7 +1008,10 @@ register struct obj *otmp; } see_monsters(); if (unkn) +/*JP You_feel("lonely."); +*/ + You("S×‚­‚È‚Á‚½D"); break; } if (monster_detect(otmp, 0)) @@ -799,27 +1025,49 @@ register struct obj *otmp; exercise(A_WIS, TRUE); break; case POT_SICKNESS: +/*JP pline("Yecch! This stuff tastes like poison."); +*/ + pline("ƒEƒF[I“ł̂悤‚È–¡‚ª‚·‚éD"); if (otmp->blessed) { +/*JP pline("(But in fact it was mildly stale %s.)", fruitname(TRUE)); +*/ + pline("(‚µ‚©‚µŽÀÛ‚»‚ê‚͏­‚µŒÃ‚­‚È‚Á‚½%sD)", fruitname(TRUE)); if (!Role_if(PM_HEALER)) { /* NB: blessed otmp->fromsink is not possible */ +/*JP losehp(1, "mildly contaminated potion", KILLED_BY_AN); +*/ + losehp(1, "•a‹C‚ɉ˜õ‚³‚ꂽ–ò‚Å", KILLED_BY_AN); } } else { if (Poison_resistance) +/*JP pline("(But in fact it was biologically contaminated %s.)", +*/ + pline("(‚µ‚©‚µŽÀÛ‚»‚ê‚͐¶•¨Šw“I‚ɉ˜õ‚³‚ꂽ%s‚¾D)", fruitname(TRUE)); if (Role_if(PM_HEALER)) { +/*JP pline("Fortunately, you have been immunized."); +*/ + pline("K‰^‚È‚±‚ƂɁC‚ ‚È‚½‚͖Ɖu‚ª‚ ‚éD"); } else { char contaminant[BUFSZ]; int typ = rn2(A_MAX); +#if 0 /*JP*/ Sprintf(contaminant, "%s%s", (Poison_resistance) ? "mildly " : "", (otmp->fromsink) ? "contaminated tap water" : "contaminated potion"); +#else + Sprintf(contaminant, "%s‰˜õ‚³‚ꂽ%s‚Å", + (Poison_resistance) ? "­‚µ" : "", + (otmp->fromsink) ? "…" + : "–ò"); +#endif if (!Fixed_abil) { poisontell(typ, FALSE); (void) adjattrib(typ, Poison_resistance ? -1 : -rn1(4, 3), @@ -841,17 +1089,26 @@ register struct obj *otmp; } } if (Hallucination) { +/*JP You("are shocked back to your senses!"); +*/ + You("ŒÜŠ´‚ɏՌ‚‚ðŽó‚¯‚½I"); (void) make_hallucinated(0L, FALSE, 0L); } break; case POT_CONFUSION: if (!Confusion) { if (Hallucination) { +/*JP pline("What a trippy feeling!"); +*/ + pline("‚È‚ñ‚©ƒwƒƒwƒ‚·‚éI"); unkn++; } else +/*JP pline("Huh, What? Where am I?"); +*/ + pline("‚Ù‚¦HŽ„‚Í’NH"); } else nothing++; make_confused(itimeout_incr(HConfusion, @@ -860,7 +1117,10 @@ register struct obj *otmp; break; case POT_GAIN_ABILITY: if (otmp->cursed) { +/*JP pline("Ulch! That potion tasted foul!"); +*/ + pline("ƒEƒFIˆ«L‚ª‚·‚éI"); unkn++; } else if (Fixed_abil) { nothing++; @@ -888,9 +1148,15 @@ register struct obj *otmp; /* FALLTHRU */ case SPE_HASTE_SELF: if (!Very_fast) { /* wwf@doe.carleton.ca */ +/*JP You("are suddenly moving %sfaster.", Fast ? "" : "much "); +*/ + You("“Ë‘R%s‘¬‚­ˆÚ“®‚Å‚«‚é‚悤‚É‚È‚Á‚½D", Fast ? "" : "‚Æ‚Ä‚à"); } else { +/*JP Your("%s get new energy.", makeplural(body_part(LEG))); +*/ + pline("%s‚ɃGƒlƒ‹ƒM[‚ª’‚¬‚±‚Ü‚ê‚é‚悤‚ÈŠ´‚¶‚ª‚µ‚½D", body_part(LEG)); unkn++; } exercise(A_DEX, TRUE); @@ -909,7 +1175,10 @@ register struct obj *otmp; /* they went up a level */ if ((ledger_no(&u.uz) == 1 && u.uhave.amulet) || Can_rise_up(u.ux, u.uy, &u.uz)) { +/*JP const char *riseup = "rise up, through the %s!"; +*/ + const char *riseup ="%s‚ð“Ë‚«”²‚¯‚½I"; if (ledger_no(&u.uz) == 1) { You(riseup, ceiling(u.ux, u.uy)); @@ -920,14 +1189,20 @@ register struct obj *otmp; get_level(&newlevel, newlev); if (on_level(&newlevel, &u.uz)) { +/*JP pline("It tasted bad."); +*/ + pline("‚Æ‚Ä‚à‚Ü‚¸‚¢D"); break; } else You(riseup, ceiling(u.ux, u.uy)); goto_level(&newlevel, FALSE, FALSE, FALSE); } } else +/*JP You("have an uneasy feeling."); +*/ + You("•sˆÀ‚È‹CŽ‚É‚È‚Á‚½D"); break; } pluslvl(FALSE); @@ -937,13 +1212,19 @@ register struct obj *otmp; u.uexp = rndexp(TRUE); break; case POT_HEALING: +/*JP You_feel("better."); +*/ + You("‹C•ª‚ª‚æ‚­‚È‚Á‚½D"); healup(d(6 + 2 * bcsign(otmp), 4), !otmp->cursed ? 1 : 0, !!otmp->blessed, !otmp->cursed); exercise(A_CON, TRUE); break; case POT_EXTRA_HEALING: +/*JP You_feel("much better."); +*/ + You("‹C•ª‚ª‚Æ‚Ä‚à‚æ‚­‚È‚Á‚½D"); healup(d(6 + 2 * bcsign(otmp), 8), otmp->blessed ? 5 : !otmp->cursed ? 2 : 0, !otmp->cursed, TRUE); @@ -952,7 +1233,10 @@ register struct obj *otmp; exercise(A_STR, TRUE); break; case POT_FULL_HEALING: +/*JP You_feel("completely healed."); +*/ + You("Š®‘S‚ɉñ•œ‚µ‚½D"); healup(400, 4 + 4 * bcsign(otmp), !otmp->cursed, TRUE); /* Restore one lost level if blessed */ if (otmp->blessed && u.ulevel < u.ulevelmax) { @@ -985,9 +1269,17 @@ register struct obj *otmp; } else if (has_ceiling(&u.uz)) { int dmg = uarmh ? 1 : rnd(10); +#if 0 /*JP*/ You("hit your %s on the %s.", body_part(HEAD), ceiling(u.ux, u.uy)); +#else + You("%s‚ð%s‚ɂԂ‚¯‚½D", body_part(HEAD), + ceiling(u.ux,u.uy)); +#endif +/*JP losehp(Maybe_Half_Phys(dmg), "colliding with the ceiling", +*/ + losehp(Maybe_Half_Phys(dmg), "“Vˆä‚É“ª‚ð‚Ԃ‚¯‚Ä", KILLED_BY); } } /*cursed*/ @@ -1006,9 +1298,15 @@ register struct obj *otmp; int num; if (otmp->cursed) +/*JP You_feel("lackluster."); +*/ + You("ˆÓ‹CÁ’¾‚µ‚½D"); else +/*JP pline("Magical energies course through your body."); +*/ + pline("–‚–@‚̃Gƒlƒ‹ƒM[‚ª‚ ‚È‚½‚Ì‘Ì‚É–ž‚¿‚½D"); /* old: num = rnd(5) + 5 * otmp->blessed + 1; * blessed: +7..11 max & current (+9 avg) @@ -1039,33 +1337,60 @@ register struct obj *otmp; if (otmp->lamplit) { if (likes_fire(youmonst.data)) { +/*JP pline("Ahh, a refreshing drink."); +*/ + pline("‚í[‚¨C¶‚«•Ô‚éD"); good_for_you = TRUE; } else { +/*JP You("burn your %s.", body_part(FACE)); +*/ + Your("%s‚͍•Å‚°‚É‚È‚Á‚½D", body_part(FACE)); /* fire damage */ +/*JP losehp(d(Fire_resistance ? 1 : 3, 4), "burning potion of oil", +*/ + losehp(d(Fire_resistance ? 1 : 3, 4), "”R‚¦‚Ä‚¢‚é–û‚ðˆù‚ñ‚Å", KILLED_BY_AN); } } else if (otmp->cursed) +/*JP pline("This tastes like castor oil."); +*/ + pline("‚Ђ܂µ–û‚̂悤‚È–¡‚ª‚·‚éD"); else +/*JP pline("That was smooth!"); +*/ + pline("Œû‚ ‚½‚肪‚æ‚¢I"); exercise(A_WIS, good_for_you); break; } case POT_ACID: if (Acid_resistance) { /* Not necessarily a creature who _likes_ acid */ +/*JP pline("This tastes %s.", Hallucination ? "tangy" : "sour"); +*/ + pline("%s–¡‚ª‚·‚éD", Hallucination ? "‚Ò‚è‚Á‚Æ‚µ‚½" : "Ž_‚Ì"); } else { int dmg; +#if 0 /*JP*/ pline("This burns%s!", otmp->blessed ? " a little" : otmp->cursed ? " a lot" : " like acid"); +#else + pline("%sÅ‚°‚½I", + otmp->blessed ? "­‚µ" : otmp->cursed ? "‚·‚²‚­" + : ""); +#endif dmg = d(otmp->cursed ? 2 : 1, otmp->blessed ? 4 : 8); +/*JP losehp(Maybe_Half_Phys(dmg), "potion of acid", KILLED_BY_AN); +*/ + losehp(Maybe_Half_Phys(dmg), "Ž_‚Ì–ò‚ðˆù‚ñ‚Å", KILLED_BY_AN); exercise(A_CON, FALSE); } if (Stoned) @@ -1073,7 +1398,10 @@ register struct obj *otmp; unkn++; /* holy/unholy water can burn like acid too */ break; case POT_POLYMORPH: +/*JP You_feel("a little %s.", Hallucination ? "normal" : "strange"); +*/ + You("­‚µ%s‚ÈŠ´‚¶‚ª‚µ‚½D", Hallucination ? "•’Ê" : "•Ï"); if (!Unchanging) polyself(0); break; @@ -1084,6 +1412,24 @@ register struct obj *otmp; return -1; } +#ifdef JPEXTENSION +void +make_totter(xtime, talk) +long xtime; /* nonzero if this is an attempt to turn on hallucination */ +boolean talk; +{ + const char *message = 0; + + if (!xtime) + message = "•ûŒüŠ´Šo‚ª³í‚É‚È‚Á‚½D"; + else + message = "•ûŒüŠ´Šo‚ª–ƒáƒ‚µ‚½D"; + + set_itimeout(&Totter, xtime); + pline(message); +} +#endif + void healup(nhp, nxtra, curesick, cureblind) int nhp, nxtra; @@ -1116,8 +1462,13 @@ struct obj *obj; const char *txt; { if (flags.beginner || !txt) +#if 0 /*JP*/ You("have a %s feeling for a moment, then it passes.", Hallucination ? "normal" : "strange"); +#else + You("%s‹C•ª‚É‚¨‚»‚í‚ꂽ‚ªC‚·‚®‚ɏÁ‚¦‚³‚Á‚½D", + Hallucination ? "•’Ê‚Ì" : "Šï–­‚È"); +#endif else pline1(txt); @@ -1131,8 +1482,13 @@ const char *txt; useup(obj); } +#if 0 /*JP*/ const char *bottlenames[] = { "bottle", "phial", "flagon", "carafe", "flask", "jar", "vial" }; +#else +const char *bottlenames[] = { "•r", "àޗž•r", "ˆê¡•r", "…·‚µ", + "ƒtƒ‰ƒXƒR", "’Ù", "ƒKƒ‰ƒX•r" }; +#endif const char * bottlename() @@ -1233,9 +1589,17 @@ boolean your_fault; if (isyou) { distance = 0; +#if 0 /*JP*/ pline_The("%s crashes on your %s and breaks into shards.", botlnam, body_part(HEAD)); +#else + pline("%s‚ª‚ ‚È‚½‚Ì%s‚̏ã‚ʼnó‚ê”j•Ð‚Æ‚È‚Á‚½D", botlnam, + body_part(HEAD)); +#endif +/*JP losehp(Maybe_Half_Phys(rnd(2)), "thrown potion", KILLED_BY_AN); +*/ + losehp(Maybe_Half_Phys(rnd(2)), "“Š‚°‚ç‚ꂽ–ò‚Å", KILLED_BY_AN); } else { /* sometimes it hits the saddle */ if (((mon->misc_worn_check & W_SADDLE) @@ -1247,24 +1611,40 @@ boolean your_fault; hit_saddle = TRUE; distance = distu(mon->mx, mon->my); if (!cansee(mon->mx, mon->my)) +/*JP pline("Crash!"); +*/ + pline("ƒKƒVƒƒƒ“I"); else { char *mnam = mon_nam(mon); char buf[BUFSZ]; if (hit_saddle && saddle) { +/*JP Sprintf(buf, "%s saddle", +*/ + Sprintf(buf, "%s‚̈Æ", s_suffix(x_monnam(mon, ARTICLE_THE, (char *) 0, (SUPPRESS_IT | SUPPRESS_SADDLE), FALSE))); } else if (has_head(mon->data)) { +#if 0 /*JP*/ Sprintf(buf, "%s %s", s_suffix(mnam), (notonhead ? "body" : "head")); +#else + Sprintf(buf, "%s‚Ì%s", s_suffix(mnam), + (notonhead ? "‘Ì" : "“ª")); +#endif } else { Strcpy(buf, mnam); } +#if 0 /*JP*/ pline_The("%s crashes on %s and breaks into shards.", botlnam, buf); +#else + pline("%s‚ª%s‚̏ã‚ʼnó‚ê”j•Ð‚Æ‚È‚Á‚½D", botlnam, + buf); +#endif } if (rn2(5) && mon->mhp > 1 && !hit_saddle) mon->mhp--; @@ -1272,7 +1652,10 @@ boolean your_fault; /* oil doesn't instantly evaporate; Neither does a saddle hit */ if (obj->otyp != POT_OIL && !hit_saddle && cansee(mon->mx, mon->my)) +/*JP pline("%s.", Tobjnam(obj, "evaporate")); +*/ + pline("%s‚͏ö”­‚µ‚½D", xname(obj)); if (isyou) { switch (obj->otyp) { @@ -1281,18 +1664,30 @@ boolean your_fault; explode_oil(obj, u.ux, u.uy); break; case POT_POLYMORPH: +/*JP You_feel("a little %s.", Hallucination ? "normal" : "strange"); +*/ + You("%s‚ÈŠ´‚¶‚ª‚µ‚½D", Hallucination ? "•’Ê" : "•Ï"); if (!Unchanging && !Antimagic) polyself(0); break; case POT_ACID: if (!Acid_resistance) { int dmg; +#if 0 /*JP*/ pline("This burns%s!", obj->blessed ? " a little" : obj->cursed ? " a lot" : ""); +#else + pline("%s”R‚¦‚½I", + obj->blessed ? "­‚µ" + : obj->cursed ? "‚Í‚°‚µ‚­" : ""); +#endif dmg = d(obj->cursed ? 2 : 1, obj->blessed ? 4 : 8); +/*JP losehp(Maybe_Half_Phys(dmg), "potion of acid", KILLED_BY_AN); +*/ + losehp(Maybe_Half_Phys(dmg), "Ž_‚Ì–ò‚𗁂тÄ", KILLED_BY_AN); } break; } @@ -1335,7 +1730,10 @@ boolean your_fault; if (mon->mhp < mon->mhpmax) { mon->mhp = mon->mhpmax; if (canseemon(mon)) +/*JP pline("%s looks sound and hale again.", Monnam(mon)); +*/ + pline("%s‚ÍŒ³‹C‚É‚È‚Á‚½‚悤‚ÉŒ©‚¦‚éD", Monnam(mon)); } break; case POT_SICKNESS: @@ -1347,7 +1745,11 @@ boolean your_fault; /* most common case */ || resists_poison(mon)) { if (canseemon(mon)) +#if 0 /*JP*/ pline("%s looks unharmed.", Monnam(mon)); +#else + pline("%s‚Í‚È‚ñ‚Æ‚à‚È‚¢‚悤‚¾D", Monnam(mon)); +#endif break; } do_illness: @@ -1358,7 +1760,10 @@ boolean your_fault; if (mon->mhp > mon->mhpmax) mon->mhp = mon->mhpmax; if (canseemon(mon)) +/*JP pline("%s looks rather ill.", Monnam(mon)); +*/ + pline("%s‚Í•a‹C‚Á‚Û‚­Œ©‚¦‚éD", Monnam(mon)); break; case POT_CONFUSION: case POT_BOOZE: @@ -1372,7 +1777,10 @@ boolean your_fault; case POT_SLEEPING: /* wakeup() doesn't rouse victims of temporary sleep */ if (sleep_monst(mon, rnd(12), POTION_CLASS)) { +/*JP pline("%s falls asleep.", Monnam(mon)); +*/ + pline("%s‚Í–°‚Á‚Ä‚µ‚Ü‚Á‚½D", Monnam(mon)); slept_monst(mon); } break; @@ -1402,8 +1810,13 @@ boolean your_fault; if (is_undead(mon->data) || is_demon(mon->data) || is_were(mon->data) || is_vampshifter(mon)) { if (obj->blessed) { +#if 0 /*JP*/ pline("%s %s in pain!", Monnam(mon), is_silent(mon->data) ? "writhes" : "shrieks"); +#else + pline("%s‚Í‹ê’É%sI", Monnam(mon), + is_silent(mon->data) ? "‚ɐg‚à‚¾‚¦‚µ‚½" : "‚Ì‹©‚ѐº‚ð‚ ‚°‚½"); +#endif if (!is_silent(mon->data)) wake_nearto(mon->mx, mon->my, mon->data->mlevel * 10); mon->mhp -= d(2, 6); @@ -1415,7 +1828,10 @@ boolean your_fault; } else if (obj->cursed) { angermon = FALSE; if (canseemon(mon)) +/*JP pline("%s looks healthier.", Monnam(mon)); +*/ + pline("%s‚Í‚æ‚茳‹C‚É‚È‚Á‚½‚悤‚ÉŒ©‚¦‚éD", Monnam(mon)); mon->mhp += d(2, 6); if (mon->mhp > mon->mhpmax) mon->mhp = mon->mhpmax; @@ -1428,7 +1844,10 @@ boolean your_fault; (void) split_mon(mon, (struct monst *) 0); } else if (mon->data == &mons[PM_IRON_GOLEM]) { if (canseemon(mon)) +/*JP pline("%s rusts.", Monnam(mon)); +*/ + pline("%s‚ÍŽK‚Ñ‚½D", Monnam(mon)); mon->mhp -= d(1, 6); /* should only be by you */ if (mon->mhp < 1) @@ -1441,8 +1860,13 @@ boolean your_fault; break; case POT_ACID: if (!resists_acid(mon) && !resist(mon, POTION_CLASS, 0, NOTELL)) { +#if 0 /*JP*/ pline("%s %s in pain!", Monnam(mon), is_silent(mon->data) ? "writhes" : "shrieks"); +#else + pline("%s‚Í‹ê’É%sI", Monnam(mon), + is_silent(mon->data) ? "‚ɐg‚à‚¾‚¦‚µ‚½" : "‚Ì‹©‚ѐº‚ð‚ ‚°‚½"); +#endif if (!is_silent(mon->data)) wake_nearto(mon->mx, mon->my, mon->data->mlevel * 10); mon->mhp -= d(obj->cursed ? 2 : 1, obj->blessed ? 4 : 8); @@ -1503,13 +1927,20 @@ register struct obj *obj; case POT_GAIN_ABILITY: if (obj->cursed) { if (!breathless(youmonst.data)) +/*JP pline("Ulch! That potion smells terrible!"); +*/ + pline("ƒEƒQƒFI–ò‚Í‚à‚Ì‚·‚²‚¢“õ‚¢‚ª‚·‚éI"); else if (haseyes(youmonst.data)) { +#if 0 /*JP*/ const char *eyes = body_part(EYE); if (eyecount(youmonst.data) != 1) eyes = makeplural(eyes); Your("%s %s!", eyes, vtense(eyes, "sting")); +#else + Your("%s‚ª‚¸‚«‚¸‚«‚·‚éI", body_part(EYE)); +#endif } break; } else { @@ -1563,54 +1994,84 @@ register struct obj *obj; } break; case POT_HALLUCINATION: +/*JP You("have a momentary vision."); +*/ + You("ˆêuŒ¶‰e‚ɂ‚‚܂ꂽD"); break; case POT_CONFUSION: case POT_BOOZE: if (!Confusion) +/*JP You_feel("somewhat dizzy."); +*/ + You("‚ß‚Ü‚¢‚ðŠ´‚¶‚½D"); make_confused(itimeout_incr(HConfusion, rnd(5)), FALSE); break; case POT_INVISIBILITY: if (!Blind && !Invis) { kn++; +#if 0 /*JP*/ pline("For an instant you %s!", See_invisible ? "could see right through yourself" : "couldn't see yourself"); +#else + pline("ˆêuŽ©•ªŽ©g‚ª%sŒ©‚¦‚È‚­‚È‚Á‚½I", + See_invisible ? "³‚µ‚­" + : ""); +#endif } break; case POT_PARALYSIS: kn++; if (!Free_action) { +/*JP pline("%s seems to be holding you.", Something); +*/ + pline("%s‚ª‚ ‚È‚½‚ð‚‚©‚Ü‚¦‚Ä‚¢‚é‚悤‚È‹C‚ª‚µ‚½D", Something); nomul(-rnd(5)); multi_reason = "frozen by a potion"; nomovemsg = You_can_move_again; exercise(A_DEX, FALSE); } else +/*JP You("stiffen momentarily."); +*/ + You("ˆêud’¼‚µ‚½D"); break; case POT_SLEEPING: kn++; if (!Free_action && !Sleep_resistance) { +/*JP You_feel("rather tired."); +*/ + You("‚·‚±‚µ”æ‚ꂽD"); nomul(-rnd(5)); multi_reason = "sleeping off a magical draught"; nomovemsg = You_can_move_again; exercise(A_DEX, FALSE); } else +/*JP You("yawn."); +*/ + You("‚ ‚­‚Ñ‚ð‚µ‚½D"); break; case POT_SPEED: if (!Fast) +/*JP Your("knees seem more flexible now."); +*/ + Your("•G‚Í‚æ‚è‚·‚΂₭“®‚­‚悤‚É‚È‚Á‚½D"); incr_itimeout(&HFast, rnd(5)); exercise(A_DEX, TRUE); break; case POT_BLINDNESS: if (!Blind && !Unaware) { kn++; +/*JP pline("It suddenly gets dark."); +*/ + pline("“Ë‘RˆÃ‚­‚È‚Á‚½D"); } make_blinded(itimeout_incr(Blinded, rnd(5)), FALSE); if (!Blind && !Unaware) @@ -1767,12 +2228,20 @@ dodip() if (inaccessible_equipment(obj, "dip", FALSE)) return 0; +#if 0 /*JP*/ Sprintf(qbuf, "dip %s into", thesimpleoname(obj)); +#else + Sprintf(qbuf, "%s‚ðZ‚µ‚Ü‚·‚©", thesimpleoname(obj)); +#endif here = levl[u.ux][u.uy].typ; /* Is there a fountain to dip into here? */ if (IS_FOUNTAIN(here)) { /* "Dip into the fountain?" */ +#if 0 /*JP*/ Sprintf(qtoo, "%s the fountain?", qbuf); +#else + Sprintf(qtoo, "ò‚É%sH", qbuf); +#endif if (yn(upstart(qtoo)) == 'y') { dipfountain(obj); return 1; @@ -1781,7 +2250,11 @@ dodip() const char *pooltype = waterbody_name(u.ux, u.uy); /* "Dip into the {pool, moat, &c}?" */ +#if 0 /*JP*/ Sprintf(qtoo, "%s the %s?", qbuf, pooltype); +#else + Sprintf(qtoo, "%s‚É%sH", pooltype, qbuf); +#endif if (yn(upstart(qtoo)) == 'y') { if (Levitation) { floating_above(pooltype); @@ -1803,7 +2276,10 @@ dodip() if (!potion) return 0; if (potion == obj && potion->quan == 1L) { +/*JP pline("That is a potion bottle, not a Klein bottle!"); +*/ + pline("‚±‚ê‚Í–ò•r‚¾IƒNƒ‰ƒCƒ“‚Ì’Ù‚¶‚á‚È‚¢I"); return 0; } potion->in_use = TRUE; /* assume it will be used up */ @@ -1847,7 +2323,10 @@ dodip() prinv((char *) 0, obj, 0L); return 1; } else { +/*JP pline("Nothing seems to happen."); +*/ + pline("‰½‚à‹N‚±‚ç‚È‚©‚Á‚½‚悤‚¾D"); goto poof; } } @@ -1856,7 +2335,11 @@ dodip() } else if (obj->oclass == POTION_CLASS && obj->otyp != potion->otyp) { long amt = obj->quan; +#if 0 /*JP*/ Strcpy(qbuf, "The"); +#else + Strcpy(qbuf, ""); +#endif if (amt > (objects[potion->otyp].oc_magic ? 2L : 9L)) { /* trying to dip multiple potions will usually affect only a subset; pick an amount between 2 and min(N,9), inclusive */ @@ -1867,13 +2350,23 @@ dodip() amt += 1L; if (amt < obj->quan) { obj = splitobj(obj, amt); +#if 0 /*JP*/ Sprintf(qbuf, "%ld of the", obj->quan); +#else + Sprintf(qbuf, "%ld–{‚Ì", obj->quan); +#endif } } /* [N of] the {obj(s)} mix(es) with [one of] {the potion}... */ +#if 0 /*JP*/ pline("%s %s %s with %s%s...", qbuf, simpleonames(obj), otense(obj, "mix"), (potion->quan > 1L) ? "one of " : "", thesimpleoname(potion)); +#else /* [N–{‚Ì]{obj}‚ð{the potion}[‚̈ê‚Â]‚ƍ¬‚º‚½DDD */ + pline("%s%s‚ð%s%s‚ƍ¬‚º‚½DDD", qbuf, simpleonames(obj), + thesimpleoname(potion), + (potion->quan > 1L) ? "‚̈ê‚Â" : ""); +#endif /* Mixing potions is dangerous... KMH, balance patch -- acid is particularly unstable */ if (obj->cursed || obj->otyp == POT_ACID || !rn2(10)) { @@ -1882,7 +2375,10 @@ dodip() around for potionbreathe() [and we can't set obj->in_use to 'amt' because that's not implemented] */ obj->in_use = 1; +/*JP pline("BOOM! They explode!"); +*/ + pline("ƒo[ƒ“I”š”­‚µ‚½I"); wake_nearto(u.ux, u.uy, (BOLT_LIM + 1) * (BOLT_LIM + 1)); exercise(A_STR, FALSE); if (!breathless(youmonst.data) || haseyes(youmonst.data)) @@ -1890,7 +2386,10 @@ dodip() useupall(obj); useup(potion); losehp((int) (amt + rnd(9)), /* not physical damage */ +/*JP "alchemic blast", KILLED_BY_AN); +*/ + "’²‡‚ÌŽ¸”s‚Å", KILLED_BY_AN); return 1; } @@ -1920,16 +2419,25 @@ dodip() useupall(obj); useup(potion); if (!Blind) +/*JP pline_The("mixture glows brightly and evaporates."); +*/ + pline("¬‚º‚é‚Æ–ò‚Í–¾‚é‚­‹P‚«Cö”­‚µ‚½D"); return 1; } } obj->odiluted = (obj->otyp != POT_WATER); if (obj->otyp == POT_WATER && !Hallucination) { +/*JP pline_The("mixture bubbles%s.", Blind ? "" : ", then clears"); +*/ + pline("–ò‚ð¬‚º‚é‚Æ%s–A‚¾‚Á‚½D", Blind ? "" : "‚µ‚΂炭"); } else if (!Blind) { +/*JP pline_The("mixture looks %s.", +*/ + pline("¬‚º‚½–ò‚Í%s–ò‚ÉŒ©‚¦‚éD", hcolor(OBJ_DESCR(objects[obj->otyp]))); } @@ -1966,16 +2474,25 @@ dodip() char buf[BUFSZ]; if (potion->quan > 1L) +/*JP Sprintf(buf, "One of %s", the(xname(potion))); +*/ + Sprintf(buf, "%s‚̈ê‚Â", the(xname(potion))); else Strcpy(buf, The(xname(potion))); +/*JP pline("%s forms a coating on %s.", buf, the(xname(obj))); +*/ + pline("%s‚ª%s‚É“h‚ç‚ꂽD", buf, the(xname(obj))); obj->opoisoned = TRUE; goto poof; } else if (obj->opoisoned && (potion->otyp == POT_HEALING || potion->otyp == POT_EXTRA_HEALING || potion->otyp == POT_FULL_HEALING)) { +/*JP pline("A coating wears off %s.", the(xname(obj))); +*/ + pline("“Å‚ª%s‚©‚甍‚°‚¨‚¿‚½D", the(xname(obj))); obj->opoisoned = 0; goto poof; } @@ -1992,7 +2509,10 @@ dodip() if (potion->lamplit) { /* burning */ fire_damage(obj, TRUE, u.ux, u.uy); } else if (potion->cursed) { +/*JP pline_The("potion spills and covers your %s with oil.", +*/ + pline("–û‚Í”ò‚ÑŽU‚è‚ ‚È‚½‚Ì%s‚É‚©‚©‚Á‚½D", makeplural(body_part(FINGER))); incr_itimeout(&Glib, d(2, 10)); } else if (obj->oclass != WEAPON_CLASS && !is_weptool(obj)) { @@ -2005,13 +2525,24 @@ dodip() } else if ((!is_rustprone(obj) && !is_corrodeable(obj)) || is_ammo(obj) || (!obj->oeroded && !obj->oeroded2)) { /* uses up potion, doesn't set obj->greased */ +#if 0 /*JP*/ pline("%s %s with an oily sheen.", Yname2(obj), otense(obj, "gleam")); +#else + pline("%s‚Í–û‚ÌŒõ‘ò‚Å‚«‚ç‚è‚ÆŒõ‚Á‚½D", Yname2(obj)); +#endif } else { +#if 0 /*JP*/ pline("%s %s less %s.", Yname2(obj), otense(obj, "are"), (obj->oeroded && obj->oeroded2) ? "corroded and rusty" : obj->oeroded ? "rusty" : "corroded"); +#else + pline("%s‚Ì%s‚ªŽæ‚ꂽD", Yname2(obj), + (obj->oeroded && obj->oeroded2) + ? "•…H‚ÆŽK" + : obj->oeroded ? "ŽK" : "•…H"); +#endif if (obj->oeroded > 0) obj->oeroded--; if (obj->oeroded2 > 0) @@ -2041,10 +2572,16 @@ more_dips: obj->age = 0; } if (obj->age > 1000L) { +/*JP pline("%s %s full.", Yname2(obj), otense(obj, "are")); +*/ + pline("%s‚É‚Í‚½‚Á‚Õ‚è“ü‚Á‚Ä‚¢‚éD", Yname2(obj)); potion->in_use = FALSE; /* didn't go poof */ } else { +/*JP You("fill %s with oil.", yname(obj)); +*/ + You("%s‚É–û‚ð“ü‚ꂽD", yname(obj)); check_unpaid(potion); /* Yendorian Fuel Tax */ obj->age += 2 * potion->age; /* burns more efficiently */ if (obj->age > 1500L) @@ -2069,7 +2606,10 @@ more_dips: oldbuf[0] = '\0'; if (potion->dknown) { old_dknown = TRUE; +/*JP Sprintf(oldbuf, "%s ", hcolor(OBJ_DESCR(objects[potion->otyp]))); +*/ + Sprintf(oldbuf, "%s", hcolor(OBJ_DESCR(objects[potion->otyp]))); } /* with multiple merged potions, split off one and just clear it */ @@ -2090,6 +2630,7 @@ more_dips: singlepotion->dknown = FALSE; } else { singlepotion->dknown = !Hallucination; +#if 0 /*JP*/ if (mixture == POT_WATER && singlepotion->dknown) Sprintf(newbuf, "clears"); else @@ -2097,6 +2638,15 @@ more_dips: hcolor(OBJ_DESCR(objects[mixture]))); pline_The("%spotion%s %s.", oldbuf, more_than_one ? " that you dipped into" : "", newbuf); +#else + if (mixture == POT_WATER && singlepotion->dknown) + Sprintf(newbuf, "“§–¾"); + else + Sprintf(newbuf, "%s–ò", + hcolor(OBJ_DESCR(objects[mixture]))); + pline_The("%s%s–ò‚Í%s‚É‚È‚Á‚½D.", more_than_one ? "Z‚µ‚½" : "", + oldbuf, newbuf); +#endif if (!objects[old_otyp].oc_uname && !objects[old_otyp].oc_name_known && old_dknown) { struct obj fakeobj; @@ -2109,13 +2659,19 @@ more_dips: } obj_extract_self(singlepotion); singlepotion = +/*JP hold_another_object(singlepotion, "You juggle and drop %s!", +*/ + hold_another_object(singlepotion, "‚¨Žè‹Ê‚µ‚Ä%s‚ð—Ž‚Æ‚µ‚Ä‚µ‚Ü‚Á‚½I", doname(singlepotion), (const char *) 0); update_inventory(); return 1; } +/*JP pline("Interesting..."); +*/ + pline("–Ê”’‚¢DDD"); return 1; poof: @@ -2155,16 +2711,36 @@ struct obj *obj; int chance; if (!(mtmp = makemon(&mons[PM_DJINNI], u.ux, u.uy, NO_MM_FLAGS))) { +#if 0 /*JP*/ pline("It turns out to be empty."); +#else + if (obj->otyp == MAGIC_LAMP) { + pline("ƒ‰ƒ“ƒv‚Í‹ó‚Á‚Û‚¾‚Á‚½D"); + } else { + pline("–ò‚Í‹ó‚Á‚Û‚¾‚Á‚½D"); + } +#endif return; } if (!Blind) { +/*JP pline("In a cloud of smoke, %s emerges!", a_monnam(mtmp)); +*/ + pline("‰Œ‚Ì’†‚©‚çC%s‚ªŒ»‚í‚ꂽI", a_monnam(mtmp)); +/*JP pline("%s speaks.", Monnam(mtmp)); +*/ + pline("%s‚͘b‚µ‚©‚¯‚½D", Monnam(mtmp)); } else { +/*JP You("smell acrid fumes."); +*/ + You("ƒcƒ“‚Æ‚·‚é“õ‚¢‚ª‚µ‚½D"); +/*JP pline("%s speaks.", Something); +*/ + pline("%s‚ª˜b‚µ‚©‚¯‚½D", Something); } chance = rn2(5); @@ -2176,27 +2752,45 @@ struct obj *obj; switch (chance) { case 0: +/*JP verbalize("I am in your debt. I will grant one wish!"); +*/ + verbalize("‚¨‘O‚ɂ͎؂肪‚Å‚«‚½Dˆê‚Š肢‚ð‚©‚È‚¦‚Ä‚â‚낤I"); /* give a wish and discard the monster (mtmp set to null) */ mongrantswish(&mtmp); break; case 1: +/*JP verbalize("Thank you for freeing me!"); +*/ + verbalize("Ž„‚ð•‚¯‚Ä‚­‚ꂽ‚±‚Æ‚ðŠ´ŽÓ‚·‚éI"); (void) tamedog(mtmp, (struct obj *) 0); break; case 2: +/*JP verbalize("You freed me!"); +*/ + verbalize("‰ð•ú‚µ‚Ä‚­‚ꂽ‚Ì‚Í‚¨‘O‚©I"); mtmp->mpeaceful = TRUE; set_malign(mtmp); break; case 3: +/*JP verbalize("It is about time!"); +*/ + verbalize("‚³‚ç‚΂¾I"); if (canspotmon(mtmp)) +/*JP pline("%s vanishes.", Monnam(mtmp)); +*/ + pline("%s‚͏Á‚¦‚½D", Monnam(mtmp)); mongone(mtmp); break; default: +/*JP verbalize("You disturbed me, fool!"); +*/ + verbalize("‚¨‚Ü‚¦‚ÍŽ„‚Ì–°‚è‚ð–W‚°‚½D‚¨‚ë‚©‚à‚̂߁I"); mtmp->mpeaceful = FALSE; set_malign(mtmp); break; @@ -2215,9 +2809,15 @@ struct monst *mon, /* monster being split */ reason[0] = '\0'; if (mtmp) +#if 0 /*JP*/ Sprintf(reason, " from %s heat", (mtmp == &youmonst) ? the_your[1] : (const char *) s_suffix(mon_nam(mtmp))); +#else + Sprintf(reason, "%s‚Ì”M‚Å", + (mtmp == &youmonst) ? the_your[1] + : (const char *) s_suffix(mon_nam(mtmp))); +#endif if (mon == &youmonst) { mtmp2 = cloneu(); @@ -2225,7 +2825,10 @@ struct monst *mon, /* monster being split */ mtmp2->mhpmax = u.mhmax / 2; u.mhmax -= mtmp2->mhpmax; context.botl = 1; +/*JP You("multiply%s!", reason); +*/ + You("%s•ª—ô‚µ‚½I", reason); } } else { mtmp2 = clone_mon(mon, 0, 0); @@ -2233,7 +2836,10 @@ struct monst *mon, /* monster being split */ mtmp2->mhpmax = mon->mhpmax / 2; mon->mhpmax -= mtmp2->mhpmax; if (canspotmon(mon)) +/*JP pline("%s multiplies%s!", Monnam(mon), reason); +*/ + pline("%s‚Í%s•ª—ô‚µ‚½I", Monnam(mon), reason); } } return mtmp2; diff --git a/src/pray.c b/src/pray.c index e3da3e3..629597e 100644 --- a/src/pray.c +++ b/src/pray.c @@ -2,6 +2,11 @@ /* Copyright (c) Benson I. Margulies, Mike Stephenson, Steve Linhart, 1989. */ /* 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" STATIC_PTR int NDECL(prayer_done); @@ -41,10 +46,16 @@ STATIC_DCL boolean FDECL(blocked_boulder, (int, int)); * responsible for the theft of the Amulet from Marduk, the Creator. * Moloch is unaligned. */ +/*JP static const char *Moloch = "Moloch"; +*/ +static const char *Moloch = "ƒ‚[ƒƒbƒN"; static const char *godvoices[] = { +/*JP "booms out", "thunders", "rings out", "booms", +*/ + "‹¿‚«‚킽‚Á‚½", "—‹‚̂悤‚É‹¿‚¢‚½", "‚Æ‚Ç‚ë‚¢‚½", "‹¿‚¢‚½", }; /* values calculated when prayer starts, and used when completed */ @@ -315,27 +326,47 @@ int trouble; int i; struct obj *otmp = 0; const char *what = (const char *) 0; +#if 0 /*JP*/ static NEARDATA const char leftglow[] = "Your left ring softly glows", rightglow[] = "Your right ring softly glows"; +#else + static NEARDATA const char leftglow[] = "¶‚ÌŽw—Ö", + rightglow[] = "‰E‚ÌŽw—Ö"; +#endif switch (trouble) { case TROUBLE_STONED: +/*JP make_stoned(0L, "You feel more limber.", 0, (char *) 0); +*/ + make_stoned(0L, "“î‚ç‚©‚­‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½D", 0, (char *) 0); break; case TROUBLE_SLIMED: +/*JP make_slimed(0L, "The slime disappears."); +*/ + make_slimed(0L, "‚Ç‚ë‚ǂ늴‚͏Á‚¦‚½D"); break; case TROUBLE_STRANGLED: if (uamul && uamul->otyp == AMULET_OF_STRANGULATION) { +/*JP Your("amulet vanishes!"); +*/ + Your("–‚œ‚¯‚͏Á‚¦‚³‚Á‚½I"); useup(uamul); } +/*JP You("can breathe again."); +*/ + You("‚Ü‚½ŒÄ‹z‚Å‚«‚é‚悤‚É‚È‚Á‚½D"); Strangled = 0; context.botl = 1; break; case TROUBLE_LAVA: +/*JP You("are back on solid ground."); +*/ + You("ŒÅ‚¢’n–Ê‚É–ß‚Á‚½D"); /* teleport should always succeed, but if not, * just untrap them. */ @@ -346,12 +377,18 @@ int trouble; losestr(-1); /*FALLTHRU*/ case TROUBLE_HUNGRY: +/*JP Your("%s feels content.", body_part(STOMACH)); +*/ + Your("H—~‚Í–ž‚½‚³‚ꂽD"); init_uhunger(); context.botl = 1; break; case TROUBLE_SICK: +/*JP You_feel("better."); +*/ + You("‹C•ª‚ª—Ç‚­‚È‚Á‚½D"); make_sick(0L, (char *) 0, FALSE, SICK_ALL); break; case TROUBLE_REGION: @@ -362,7 +399,10 @@ int trouble; /* "fix all troubles" will keep trying if hero has 5 or less hit points, so make sure they're always boosted to be more than that */ +/*JP You_feel("much better."); +*/ + You("‚Æ‚Ä‚à‹C•ª‚ª—Ç‚­‚È‚Á‚½D"); if (Upolyd) { u.mhmax += rnd(5); if (u.mhmax <= 5) @@ -378,8 +418,13 @@ int trouble; break; case TROUBLE_COLLAPSING: /* override Fixed_abil; uncurse that if feasible */ +#if 0 /*JP*/ You_feel("%sstronger.", (AMAX(A_STR) - ABASE(A_STR) > 6) ? "much " : ""); +#else + You_feel("%s‹­‚­‚È‚Á‚½‚悤‚¾D", + (AMAX(A_STR) - ABASE(A_STR) > 6) ? "‚Æ‚Ä‚à" : ""); +#endif ABASE(A_STR) = AMAX(A_STR); context.botl = 1; if (Fixed_abil) { @@ -396,7 +441,10 @@ int trouble; } break; case TROUBLE_STUCK_IN_WALL: +/*JP Your("surroundings change."); +*/ + Your("ŠÂ‹«‚ª•Ï‰»‚µ‚½D"); /* no control, but works on no-teleport levels */ (void) safe_teleds(FALSE); break; @@ -418,7 +466,10 @@ int trouble; } if (Upolyd && nohands(youmonst.data)) { if (!Unchanging) { +/*JP Your("shape becomes uncertain."); +*/ + Your("‘ÌŒ^‚Í•s–¾Šm‚É‚È‚Á‚½D"); rehumanize(); /* "You return to {normal} form." */ } else if ((otmp = unchanger()) != 0 && otmp->cursed) { /* otmp is an amulet of unchanging */ @@ -437,7 +488,10 @@ int trouble; /* */ case TROUBLE_PUNISHED: +/*JP Your("chain disappears."); +*/ + Your("½‚͏Á‚¦‚½D"); if (u.utrap && u.utraptype == TT_BURIEDBALL) buried_ball_to_freedom(); else @@ -463,9 +517,15 @@ int trouble; return; } if (!Blind || (otmp == ublindf && Blindfolded_only)) { +#if 0 /*JP*/ pline("%s %s.", what ? what : (const char *) Yobjnam2(otmp, "softly glow"), hcolor(NH_AMBER)); +#else + Your("%s‚Í%s‚â‚í‚ç‚©‚­‹P‚¢‚½D", + what ? what : (const char *)xname(otmp), + jconj_adj(hcolor(NH_AMBER))); +#endif iflags.last_msg = PLNMSG_OBJ_GLOWS; otmp->bknown = TRUE; } @@ -475,9 +535,15 @@ int trouble; case TROUBLE_POISONED: /* override Fixed_abil; ignore items which confer that */ if (Hallucination) +/*JP pline("There's a tiger in your tank."); +*/ + pline("‚ ‚È‚½‚̃^ƒ“ƒN‚Ì’†‚Ƀgƒ‰‚ª‚¢‚éD"); else +/*JP You_feel("in good health again."); +*/ + You("‚Ü‚½Œ’N‚É‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½D"); for (i = 0; i < A_MAX; i++) { if (ABASE(i) < AMAX(i)) { ABASE(i) = AMAX(i); @@ -487,11 +553,15 @@ int trouble; (void) encumber_msg(); break; case TROUBLE_BLIND: { +#if 0 /*JP*/ const char *eyes = body_part(EYE); if (eyecount(youmonst.data) != 1) eyes = makeplural(eyes); Your("%s %s better.", eyes, vtense(eyes, "feel")); +#else + pline("%s‚ª‰ñ•œ‚µ‚½‚悤‚È‹C‚ª‚µ‚½D", body_part(EYE)); +#endif u.ucreamed = 0; make_blinded(0L, FALSE); break; @@ -506,13 +576,19 @@ int trouble; make_confused(0L, TRUE); break; case TROUBLE_HALLUCINATION: +/*JP pline("Looks like you are back in Kansas."); +*/ + pline("Œ©‚āIƒJƒ“ƒUƒX‚É–ß‚Á‚Ä‚«‚½‚ñ‚¾‚íD"); (void) make_hallucinated(0L, FALSE, 0L); break; case TROUBLE_SADDLE: otmp = which_armor(u.usteed, W_SADDLE); if (!Blind) { +/*JP pline("%s %s.", Yobjnam2(otmp, "softly glow"), hcolor(NH_AMBER)); +*/ + pline("%s‚Í%s‚â‚í‚ç‚©‚­‹P‚¢‚½D", y_monnam(u.usteed), hcolor(NH_AMBER)); otmp->bknown = TRUE; } uncurse(otmp); @@ -534,42 +610,81 @@ aligntyp resp_god; { if (u.uswallow) { pline( +/*JP "Suddenly a bolt of lightning comes down at you from the heavens!"); +*/ + "“Ë‘R‹ó‚©‚çˆîÈ‚ª—Ž‚¿‚Ä‚«‚½I"); +/*JP pline("It strikes %s!", mon_nam(u.ustuck)); +*/ + pline("ˆîÈ‚Í%s‚É–½’†‚µ‚½I", mon_nam(u.ustuck)); if (!resists_elec(u.ustuck)) { +/*JP pline("%s fries to a crisp!", Monnam(u.ustuck)); +*/ + pline("%s‚̓pƒŠƒpƒŠ‚É‚È‚Á‚½I", Monnam(u.ustuck)); /* Yup, you get experience. It takes guts to successfully * pull off this trick on your god, anyway. */ xkilled(u.ustuck, 0); } else +/*JP pline("%s seems unaffected.", Monnam(u.ustuck)); +*/ + pline("%s‚͉e‹¿‚ðŽó‚¯‚È‚¢‚悤‚¾D", Monnam(u.ustuck)); } else { +/*JP pline("Suddenly, a bolt of lightning strikes you!"); +*/ + pline("“Ë‘RCˆîÈ‚ª‚ ‚È‚½‚É–½’†‚µ‚½I"); if (Reflecting) { shieldeff(u.ux, u.uy); if (Blind) +/*JP pline("For some reason you're unaffected."); +*/ + pline("‚È‚º‚©‚ ‚È‚½‚͉e‹¿‚ðŽó‚¯‚È‚¢D"); else +/*JP (void) ureflects("%s reflects from your %s.", "It"); +*/ + (void) ureflects("%s‚Í%s‚É‚æ‚Á‚Ä”½ŽË‚³‚ꂽD", "‰½‚©"); } else if (Shock_resistance) { shieldeff(u.ux, u.uy); +/*JP pline("It seems not to affect you."); +*/ + pline("ˆîÈ‚͉e‹¿‚ð—^‚¦‚È‚¢‚悤‚¾D"); } else fry_by_god(resp_god, FALSE); } +/*JP pline("%s is not deterred...", align_gname(resp_god)); +*/ + pline("%s‚Í‚ ‚«‚ç‚ß‚È‚©‚Á‚½DDD", align_gname(resp_god)); if (u.uswallow) { +/*JP pline("A wide-angle disintegration beam aimed at you hits %s!", +*/ + pline("‚ ‚È‚½‚ð‘_‚Á‚½LŠp•²ÓŒõü‚ª%s‚É–½’†‚µ‚½I", mon_nam(u.ustuck)); if (!resists_disint(u.ustuck)) { +/*JP pline("%s disintegrates into a pile of dust!", Monnam(u.ustuck)); +*/ + pline("%s‚Í‚¿‚è‚ÌŽR‚É‚È‚Á‚½I", Monnam(u.ustuck)); xkilled(u.ustuck, 2); /* no corpse */ } else +/*JP pline("%s seems unaffected.", Monnam(u.ustuck)); +*/ + pline("%s‚͉e‹¿‚ðŽó‚¯‚È‚¢‚悤‚¾D", Monnam(u.ustuck)); } else { +/*JP pline("A wide-angle disintegration beam hits you!"); +*/ + pline("LŠp•²ÓŒõü‚ª‚ ‚È‚½‚É–½’†‚µ‚½I"); /* disintegrate shield and body armor before disintegrating * the impudent mortal, like black dragon breath -3. @@ -588,16 +703,28 @@ aligntyp resp_god; if (!Disint_resistance) fry_by_god(resp_god, TRUE); else { +/*JP You("bask in its %s glow for a minute...", NH_BLACK); +*/ + You("‚µ‚΂炭C‚»‚Ì%s‹P‚«‚Å’g‚Ü‚Á‚½DDD", NH_BLACK); +/*JP godvoice(resp_god, "I believe it not!"); +*/ + godvoice(resp_god, "M‚¶‚ç‚ê‚ʁI"); } if (Is_astralevel(&u.uz) || Is_sanctum(&u.uz)) { /* one more try for high altars */ +/*JP verbalize("Thou cannot escape my wrath, mortal!"); +*/ + verbalize("’è–½‚ÌŽÒ‚æC“ð‰ä‚ª“{‚è‚©‚瓦‚ª‚ê‚邱‚Æ‚È‚ç‚ñI"); summon_minion(resp_god, FALSE); summon_minion(resp_god, FALSE); summon_minion(resp_god, FALSE); +/*JP verbalize("Destroy %s, my servants!", uhim()); +*/ + verbalize("%s‚ðŽE‚¹C‚킪‰º–l‚æI", uhim()); } } } @@ -607,10 +734,18 @@ fry_by_god(resp_god, via_disintegration) aligntyp resp_god; boolean via_disintegration; { +#if 0 /*JP*/ You("%s!", !via_disintegration ? "fry to a crisp" : "disintegrate into a pile of dust"); +#else + You("%sI", !via_disintegration ? "ƒpƒŠƒpƒŠ‚É‚È‚Á‚½" + : "‚¿‚è‚ÌŽR‚É‚È‚Á‚½"); +#endif killer.format = KILLED_BY; +/*JP Sprintf(killer.name, "the wrath of %s", align_gname(resp_god)); +*/ + Sprintf(killer.name, "%s‚Ì“{‚è‚ɐG‚ê", align_gname(resp_god)); done(DIED); } @@ -640,18 +775,34 @@ aligntyp resp_god; switch (rn2(maxanger)) { case 0: case 1: +#if 0 /*JP*/ You_feel("that %s is %s.", align_gname(resp_god), Hallucination ? "bummed" : "displeased"); +#else + You("%s‚ª%s‚¢‚é‚悤‚È‹C‚ª‚µ‚½D", align_gname(resp_god), + Hallucination ? "‚Ë‚¾‚Á‚Ä" : "—§• ‚µ‚Ä"); +#endif break; case 2: case 3: godvoice(resp_god, (char *) 0); +#if 0 /*JP*/ pline("\"Thou %s, %s.\"", (ugod_is_angry() && resp_god == u.ualign.type) ? "hast strayed from the path" : "art arrogant", youmonst.data->mlet == S_HUMAN ? "mortal" : "creature"); +#else + pline("u“ð%sC%s‚æDv", + (ugod_is_angry() && resp_god == u.ualign.type) + ? "‚»‚Ì“¹‚©‚ç“¥‚ݏo‚Ä‚¨‚é" + : "˜ü–‚È‚è", + youmonst.data->mlet == S_HUMAN ? "’è–½‚Ì‚à‚Ì" : "¶•¨"); +#endif +/*JP verbalize("Thou must relearn thy lessons!"); +*/ + verbalize("“ð‚¢‚Üˆê“xŠw‚ԂׂµI"); (void) adjattrib(A_WIS, -1, FALSE); losexp((char *) 0); break; @@ -665,18 +816,33 @@ aligntyp resp_god; case 5: gods_angry(resp_god); if (!Blind && !Antimagic) +/*JP pline("%s glow surrounds you.", An(hcolor(NH_BLACK))); +*/ + pline("%sŒõ‚ª‚ ‚È‚½‚ðŽæ‚芪‚¢‚½D", An(hcolor(NH_BLACK))); rndcurse(); break; case 7: case 8: godvoice(resp_god, (char *) 0); +#if 0 /*JP*/ verbalize("Thou durst %s me?", (on_altar() && (a_align(u.ux, u.uy) != resp_god)) ? "scorn" : "call upon"); +#else + verbalize("“ðC‰ä%sH", + (on_altar() && (a_align(u.ux,u.uy) != resp_god)) + ? "‚ð‚³‚°‚·‚Ý‚µ‚©H" + : "‚É‹F‚è‚ð‹‚ß‚µ‚©H"); +#endif +#if 0 /*JP*/ pline("\"Then die, %s!\"", youmonst.data->mlet == S_HUMAN ? "mortal" : "creature"); +#else + pline("uŽ€‚ˁC%s‚æIv", + youmonst.data->mlet == S_HUMAN ? "’è–½‚Ì‚à‚Ì" : "¶•¨"); +#endif summon_minion(resp_god, FALSE); break; @@ -698,12 +864,23 @@ const char *str; str = Something; if (u.uswallow) { /* barrier between you and the floor */ +#if 0 /*JP*/ pline("%s %s into %s %s.", str, vtense(str, "drop"), s_suffix(mon_nam(u.ustuck)), mbodypart(u.ustuck, STOMACH)); +#else + pline("%s‚ª%s‚Ì%s‚É—Ž‚¿‚½D", str, + mon_nam(u.ustuck), mbodypart(u.ustuck, STOMACH)); +#endif } else { +#if 0 /*JP*/ pline("%s %s %s your %s!", str, Blind ? "lands" : vtense(str, "appear"), Levitation ? "beneath" : "at", makeplural(body_part(FOOT))); +#else + pline("%s‚ª‚ ‚È‚½‚Ì%s‚É%sI", str, + Levitation ? "‰º•û" : "‘«Œ³", + Blind ? "’…’n‚µ‚½" : "Œ»‚í‚ꂽ"); +#endif } } @@ -729,22 +906,34 @@ gcrownu() switch (u.ualign.type) { case A_LAWFUL: u.uevent.uhand_of_elbereth = 1; +/*JP verbalize("I crown thee... The Hand of Elbereth!"); +*/ + verbalize("“ð‚ɁDDDƒGƒ‹ƒxƒŒƒX‚ÌŒäŽè‚̉h—_‚ð‚³‚¸‚¯‚悤I"); break; case A_NEUTRAL: u.uevent.uhand_of_elbereth = 2; in_hand = (uwep && uwep->oartifact == ART_VORPAL_BLADE); already_exists = exist_artifact(LONG_SWORD, artiname(ART_VORPAL_BLADE)); +/*JP verbalize("Thou shalt be my Envoy of Balance!"); +*/ + verbalize("“ðC‰ä‚ª’²˜a‚ÌŽgŽÒ‚È‚èI"); break; case A_CHAOTIC: u.uevent.uhand_of_elbereth = 3; in_hand = (uwep && uwep->oartifact == ART_STORMBRINGER); already_exists = exist_artifact(RUNESWORD, artiname(ART_STORMBRINGER)); +#if 0 /*JP*/ verbalize("Thou art chosen to %s for My Glory!", already_exists && !in_hand ? "take lives" : "steal souls"); +#else + verbalize("“ðC‰ä‚ª‰hŒõ‚Ì‚½‚ß%sŽÒ‚Æ‚µ‚Ä‘I‚΂ê‚ñI", + already_exists && !in_hand ? + "¶‚«‚È‚ª‚炦‚ñ" : "°‚ð’D‚¢‚µ‚½‚ß‚é"); +#endif break; } @@ -760,7 +949,10 @@ gcrownu() obj = mksobj(class_gift, TRUE, FALSE); bless(obj); obj->bknown = TRUE; +/*JP at_your_feet("A spellbook"); +*/ + at_your_feet("–‚–@‘"); dropy(obj); u.ugifts++; /* when getting a new book for known spell, enhance @@ -784,7 +976,10 @@ gcrownu() ; /* already got bonus above */ } else if (obj && obj->otyp == LONG_SWORD && !obj->oartifact) { if (!Blind) +/*JP Your("sword shines brightly for a moment."); +*/ + Your("Œ•‚Í‚µ‚΂炭‚ÌŠÔ–¾‚é‚­‹P‚¢‚½D"); obj = oname(obj, artiname(ART_EXCALIBUR)); if (obj && obj->oartifact == ART_EXCALIBUR) u.ugifts++; @@ -798,13 +993,19 @@ gcrownu() if (class_gift != STRANGE_OBJECT) { ; /* already got bonus above */ } else if (obj && in_hand) { +/*JP Your("%s goes snicker-snack!", xname(obj)); +*/ + Your("%s‚̓TƒNƒTƒN‚É‚È‚Á‚½I", xname(obj)); obj->dknown = TRUE; } else if (!already_exists) { obj = mksobj(LONG_SWORD, FALSE, FALSE); obj = oname(obj, artiname(ART_VORPAL_BLADE)); obj->spe = 1; +/*JP at_your_feet("A sword"); +*/ + at_your_feet("Œ•"); dropy(obj); u.ugifts++; } @@ -816,11 +1017,17 @@ gcrownu() case A_CHAOTIC: { char swordbuf[BUFSZ]; +/*JP Sprintf(swordbuf, "%s sword", hcolor(NH_BLACK)); +*/ + Sprintf(swordbuf, "%sŒ•", hcolor(NH_BLACK)); if (class_gift != STRANGE_OBJECT) { ; /* already got bonus above */ } else if (obj && in_hand) { +/*JP Your("%s hums ominously!", swordbuf); +*/ + Your("%s‚Í‹C–¡‚̈«‚¢‰¹‚𗧂Ă½I", swordbuf); obj->dknown = TRUE; } else if (!already_exists) { obj = mksobj(RUNESWORD, FALSE, FALSE); @@ -853,7 +1060,10 @@ gcrownu() unrestrict_weapon_skill(weapon_type(obj)); } else if (class_gift == STRANGE_OBJECT) { /* opportunity knocked, but there was nobody home... */ +/*JP You_feel("unworthy."); +*/ + You("‰¿’l‚ª‚È‚¢‚ÆŽv‚Á‚½D"); } update_inventory(); @@ -871,12 +1081,21 @@ aligntyp g_align; int trouble = in_trouble(); /* what's your worst difficulty? */ int pat_on_head = 0, kick_on_butt; +#if 0 /*JP*/ You_feel("that %s is %s.", align_gname(g_align), (u.ualign.record >= DEVOUT) ? Hallucination ? "pleased as punch" : "well-pleased" : (u.ualign.record >= STRIDENT) ? Hallucination ? "ticklish" : "pleased" : Hallucination ? "full" : "satisfied"); +#else + pline("%s‚ª%s‚悤‚È‹C‚ª‚µ‚½D", align_gname(g_align), + (u.ualign.record >= DEVOUT) + ? Hallucination ? "‚­‚»‹@Œ™‚¢‚¢" : "‚²‹@Œ™—킵‚¢" + : (u.ualign.record >= STRIDENT) + ? Hallucination ? "‚­‚·‚®‚Á‚½‚ª‚Á‚Ä‚¢‚é" : "ã‹@Œ™‚Å‚ ‚é" + : Hallucination ? "• ‚¢‚Á‚Ï‚¢‚Å‚ ‚é" : "–ž‘«‚µ‚Ä‚¢‚é"); +#endif /* not your deity */ if (on_altar() && p_aligntyp != u.ualign.type) { @@ -965,29 +1184,54 @@ aligntyp g_align; *repair_buf = '\0'; if (uwep->oeroded || uwep->oeroded2) +#if 0 /*JP*/ Sprintf(repair_buf, " and %s now as good as new", otense(uwep, "are")); +#else + Sprintf(repair_buf, "‚³‚ç‚ɐV•i“¯—l‚É‚È‚Á‚½D"); +#endif if (uwep->cursed) { if (!Blind) { +#if 0 /*JP*/ pline("%s %s%s.", Yobjnam2(uwep, "softly glow"), hcolor(NH_AMBER), repair_buf); +#else + Your("%s‚Í%s‚â‚í‚ç‚©‚­‹P‚¢‚½D%s", xname(uwep), + jconj_adj(hcolor(NH_AMBER)), repair_buf); +#endif iflags.last_msg = PLNMSG_OBJ_GLOWS; } else +#if 0 /*JP*/ You_feel("the power of %s over %s.", u_gname(), yname(uwep)); +#else + pline("%s‚Ì—Í‚ª%s‚É’‚ª‚ê‚Ä‚¢‚é‚Ì‚ðŠ´‚¶‚½D", u_gname(), + xname(uwep)); +#endif uncurse(uwep); uwep->bknown = TRUE; *repair_buf = '\0'; } else if (!uwep->blessed) { if (!Blind) { +#if 0 /*JP*/ pline("%s with %s aura%s.", Yobjnam2(uwep, "softly glow"), an(hcolor(NH_LIGHT_BLUE)), repair_buf); +#else + Your("%s‚Í%s‚â‚í‚ç‚©‚ȃI[ƒ‰‚ɂ‚‚܂ꂽD%s", + xname(uwep), + an(hcolor(NH_LIGHT_BLUE)), repair_buf); +#endif iflags.last_msg = PLNMSG_OBJ_GLOWS; } else +#if 0 /*JP*/ You_feel("the blessing of %s over %s.", u_gname(), yname(uwep)); +#else + pline("%s‚̏j•Ÿ‚ª%s‚É’‚ª‚ê‚Ä‚¢‚é‚Ì‚ðŠ´‚¶‚½D", u_gname(), + xname(uwep)); +#endif bless(uwep); uwep->bknown = TRUE; *repair_buf = '\0'; @@ -1000,8 +1244,13 @@ aligntyp g_align; /* only give this message if we didn't just bless or uncurse (which has already given a message) */ if (*repair_buf) +#if 0 /*JP*/ pline("%s as good as new!", Yobjnam2(uwep, Blind ? "feel" : "look")); +#else + Your("%s‚͐V•i“¯—l‚É‚È‚Á‚½%sI", + xname(uwep), Blind ? "‚悤‚È‹C‚ª‚·‚é" : ""); +#endif } update_inventory(); } @@ -1014,16 +1263,31 @@ aligntyp g_align; if (!u.uevent.uopened_dbridge && !u.uevent.gehennom_entered) { if (u.uevent.uheard_tune < 1) { godvoice(g_align, (char *) 0); +#if 0 /*JP*/ verbalize("Hark, %s!", youmonst.data->mlet == S_HUMAN ? "mortal" : "creature"); +#else + verbalize("%s‚æC•·‚¯I", youmonst.data->mlet == S_HUMAN + ? "’è–½‚ÌŽÒ" + : "¶•¨"); +#endif verbalize( +/*JP "To enter the castle, thou must play the right tune!"); +*/ + "“ðé‚É“ü‚ç‚ñ‚Æ—~‚·‚é‚È‚ç‚΁C³‚µ‚«’²‚ׂð‘t‚Å‚é‚ׂµI"); u.uevent.uheard_tune++; break; } else if (u.uevent.uheard_tune < 2) { +/*JP You_hear("a divine music..."); +*/ + You_hear("_‚̉¹Šy‚ð•·‚¢‚½DDD"); +/*JP pline("It sounds like: \"%s\".", tune); +*/ + pline("‚»‚ê‚ÍŽŸ‚̂悤‚É•·‚±‚¦‚½: u%sv", tune); u.uevent.uheard_tune++; break; } @@ -1031,7 +1295,10 @@ aligntyp g_align; /* Otherwise, falls into next case */ case 2: if (!Blind) +/*JP You("are surrounded by %s glow.", an(hcolor(NH_GOLDEN))); +*/ + You("%s‹P‚«‚ɂ‚‚܂ꂽD", hcolor(NH_GOLDEN)); /* if any levels have been lost (and not yet regained), treat this effect like blessed full healing */ if (u.ulevel < u.ulevelmax) { @@ -1058,14 +1325,25 @@ aligntyp g_align; int any = 0; if (Blind) +/*JP You_feel("the power of %s.", u_gname()); +*/ + You("%s‚Ì—Í‚ðŠ´‚¶‚½D", u_gname()); else +/*JP You("are surrounded by %s aura.", an(hcolor(NH_LIGHT_BLUE))); +*/ + You("%sƒI[ƒ‰‚ɂ‚‚܂ꂽD", an(hcolor(NH_LIGHT_BLUE))); for (otmp = invent; otmp; otmp = otmp->nobj) { if (otmp->cursed) { if (!Blind) { +#if 0 /*JP*/ pline("%s %s.", Yobjnam2(otmp, "softly glow"), hcolor(NH_AMBER)); +#else + Your("%s‚Í%s‚â‚í‚ç‚©‚­‹P‚¢‚½D", xname(otmp), + jconj_adj(hcolor(NH_AMBER))); +#endif iflags.last_msg = PLNMSG_OBJ_GLOWS; otmp->bknown = TRUE; ++any; @@ -1079,21 +1357,36 @@ aligntyp g_align; } case 5: { static NEARDATA const char msg[] = +/*JP "\"and thus I grant thee the gift of %s!\""; +*/ + "u‚³‚ç‚É“ð‚É%s‚ð‚³‚¸‚¯‚悤Iv"; godvoice(u.ualign.type, +/*JP "Thou hast pleased me with thy progress,"); +*/ + "“ð‚̐¬’·‚Í”ñí‚É–]‚Ü‚µ‚¢C"); if (!(HTelepat & INTRINSIC)) { HTelepat |= FROMOUTSIDE; +/*JP pline(msg, "Telepathy"); +*/ + pline(msg, "ƒeƒŒƒpƒV["); if (Blind) see_monsters(); } else if (!(HFast & INTRINSIC)) { HFast |= FROMOUTSIDE; +/*JP pline(msg, "Speed"); +*/ + pline(msg, "‘¬‚³"); } else if (!(HStealth & INTRINSIC)) { HStealth |= FROMOUTSIDE; +/*JP pline(msg, "Stealth"); +*/ + pline(msg, "”E‚Ì—Í"); } else { if (!(HProtection & INTRINSIC)) { HProtection |= FROMOUTSIDE; @@ -1101,9 +1394,15 @@ aligntyp g_align; u.ublessed = rn1(3, 2); } else u.ublessed++; +/*JP pline(msg, "my protection"); +*/ + pline(msg, "‰ä‚ªŒì‚è"); } +/*JP verbalize("Use it wisely in my name!"); +*/ + verbalize("‰ä‚ª–¼‚ɉ—‚¢‚Ä—LŒø‚ÉŽg‚¤‚ª‚æ‚¢I"); break; } case 7: @@ -1136,7 +1435,10 @@ aligntyp g_align; otmp->otyp = rnd_class(bases[SPBOOK_CLASS], SPE_BLANK_PAPER); } bless(otmp); +/*JP at_your_feet("A spellbook"); +*/ + at_your_feet("–‚–@‘"); place_object(otmp, u.ux, u.uy); newsym(u.ux, u.uy); break; @@ -1179,11 +1481,18 @@ boolean bless_water; other = TRUE; } if (!Blind && changed) { +#if 0 /*JP*/ pline("%s potion%s on the altar glow%s %s for a moment.", ((other && changed > 1L) ? "Some of the" : (other ? "One of the" : "The")), ((other || changed > 1L) ? "s" : ""), (changed > 1L ? "" : "s"), (bless_water ? hcolor(NH_LIGHT_BLUE) : hcolor(NH_BLACK))); +#else + pline("%sÕ’d‚Ì–ò‚͈êu%s‹P‚¢‚½D", + (other && changed > 1L) ? "‚¢‚­‚‚©‚Ì" + : "", + jconj_adj(bless_water ? hcolor(NH_LIGHT_BLUE) : hcolor(NH_BLACK))); +#endif } return (boolean) (changed > 0L); } @@ -1193,6 +1502,7 @@ godvoice(g_align, words) aligntyp g_align; const char *words; { +#if 0 /*JP*/ const char *quot = ""; if (words) @@ -1202,13 +1512,24 @@ const char *words; pline_The("voice of %s %s: %s%s%s", align_gname(g_align), godvoices[rn2(SIZE(godvoices))], quot, words, quot); +#else + if (words) + pline("%s‚̐º‚ª%s: u%sv", align_gname(g_align), + godvoices[rn2(SIZE(godvoices))], words); + else + pline("%s‚̐º‚ª%sF", align_gname(g_align), + godvoices[rn2(SIZE(godvoices))]); +#endif } STATIC_OVL void gods_angry(g_align) aligntyp g_align; { +/*JP godvoice(g_align, "Thou hast angered me."); +*/ + godvoice(g_align, "“ðC‰ä‚ð“{‚炵‚ß‚½‚èD"); } /* The g_align god is upset with you. */ @@ -1230,21 +1551,38 @@ register struct obj *otmp; if (Hallucination) switch (rn2(3)) { case 0: +/*JP Your("sacrifice sprouts wings and a propeller and roars away!"); +*/ + Your("Œ£ã•¨‚͉H‚ð‚͂₵Cƒvƒƒyƒ‰‚ª‚Ü‚í‚èC”ò‚ñ‚Å‚Á‚½I"); break; case 1: +/*JP Your("sacrifice puffs up, swelling bigger and bigger, and pops!"); +*/ + Your("Œ£ã•¨‚Í•¬‰Œ‚ð‚ ‚°C‚Ç‚ñ‚Ç‚ñ–c‚êC‚»‚µ‚Ä‚Í‚¶‚¯‚½I"); break; case 2: Your( +/*JP "sacrifice collapses into a cloud of dancing particles and fades away!"); +*/ + "Œ£ã•¨‚ׂ͍©‚­Ó‚¯C—x‚èo‚µC‚Ç‚±‚©‚ɍs‚Á‚Ä‚µ‚Ü‚Á‚½I"); break; } else if (Blind && u.ualign.type == A_LAWFUL) +/*JP Your("sacrifice disappears!"); +*/ + Your("Œ£ã•¨‚͏Á‚¦‚½I"); else +#if 0 /*JP*/ Your("sacrifice is consumed in a %s!", u.ualign.type == A_LAWFUL ? "flash of light" : "burst of flame"); +#else + Your("Œ£ã•¨‚Í%sÁ‚¦‚³‚Á‚½I", + u.ualign.type == A_LAWFUL ? "‚܂΂䂢Œõ‚ð•ú‚¿" : "‰Š‚ðã‚°"); +#endif if (carried(otmp)) useup(otmp); else @@ -1256,14 +1594,20 @@ int dosacrifice() { static NEARDATA const char cloud_of_smoke[] = +/*JP "A cloud of %s smoke surrounds you..."; +*/ + "%s‰Œ‚ª‚ ‚È‚½‚ðŽæ‚èˆÍ‚ñ‚¾DDD"; register struct obj *otmp; int value = 0, pm; boolean highaltar; aligntyp altaralign = a_align(u.ux, u.uy); if (!on_altar() || u.uswallow) { +/*JP You("are not standing on an altar."); +*/ + You("Õ’d‚̏ã‚É—§‚Á‚Ä‚¢‚È‚¢D"); return 0; } highaltar = ((Is_astralevel(&u.uz) || Is_sanctum(&u.uz)) @@ -1306,10 +1650,16 @@ dosacrifice() if (your_race(ptr)) { if (is_demon(youmonst.data)) { +/*JP You("find the idea very satisfying."); +*/ + You("‚»‚̍l‚¦‚Í‘f°‚µ‚¢‚ÆŽv‚Á‚½D"); exercise(A_WIS, TRUE); } else if (u.ualign.type != A_CHAOTIC) { +/*JP pline("You'll regret this infamous offense!"); +*/ + pline("“ðC‚±‚Ì•ŽJ‚̍s‚È‚¢‚ðŒã‰÷‚·‚é‚ׂµI"); exercise(A_WIS, FALSE); } @@ -1318,7 +1668,10 @@ dosacrifice() goto desecrate_high_altar; } else if (altaralign != A_CHAOTIC && altaralign != A_NONE) { /* curse the lawful/neutral altar */ +/*JP pline_The("altar is stained with %s blood.", urace.adj); +*/ + pline("Õ’d‚Í%s‚ÌŒŒ‚ʼn˜‚ê‚Ä‚¢‚éD", urace.adj); levl[u.ux][u.uy].altarmask = AM_CHAOTIC; angry_priest(); } else { @@ -1329,18 +1682,30 @@ dosacrifice() /* is equivalent to demon summoning */ if (altaralign == A_CHAOTIC && u.ualign.type != A_CHAOTIC) { pline( +/*JP "The blood floods the altar, which vanishes in %s cloud!", +*/ + "ŒŒ‚ªÕ’d‚©‚ç‚ ‚Ó‚êCÕ’d‚Í%s‰_‚Æ‚È‚èÁ‚¦‚½I", an(hcolor(NH_BLACK))); levl[u.ux][u.uy].typ = ROOM; levl[u.ux][u.uy].altarmask = 0; newsym(u.ux, u.uy); angry_priest(); +/*JP demonless_msg = "cloud dissipates"; +*/ + demonless_msg = "‰_‚͏Á‚¦‚½D"; } else { /* either you're chaotic or altar is Moloch's or both */ +/*JP pline_The("blood covers the altar!"); +*/ + pline("ŒŒ‚ªÕ’d‚𕢂Á‚½I"); change_luck(altaralign == A_NONE ? -2 : 2); +/*JP demonless_msg = "blood coagulates"; +*/ + demonless_msg = "ŒŒ‚ª‚±‚Ñ‚è‚‚¢‚½"; } if ((pm = dlord(altaralign)) != NON_PM && (dmon = makemon(&mons[pm], u.ux, u.uy, NO_MM_FLAGS)) @@ -1348,19 +1713,34 @@ dosacrifice() char dbuf[BUFSZ]; Strcpy(dbuf, a_monnam(dmon)); +/*JP if (!strcmpi(dbuf, "it")) +*/ + if (!strcmpi(dbuf, "‰½ŽÒ‚©")) +/*JP Strcpy(dbuf, "something dreadful"); +*/ + Strcpy(dbuf, "‰½‚©‹°‚낵‚¢‚à‚Ì"); else dmon->mstrategy &= ~STRAT_APPEARMSG; +/*JP You("have summoned %s!", dbuf); +*/ + You("%s‚ð¢Š«‚µ‚½I", dbuf); if (sgn(u.ualign.type) == sgn(dmon->data->maligntyp)) dmon->mpeaceful = TRUE; +/*JP You("are terrified, and unable to move."); +*/ + You("‹°•|‚Å“®‚¯‚È‚­‚È‚Á‚½D"); nomul(-3); multi_reason = "being terrified of a demon"; nomovemsg = 0; } else +/*JP pline_The("%s.", demonless_msg); +*/ + pline("%sD", demonless_msg); } if (u.ualign.type != A_CHAOTIC) { @@ -1382,7 +1762,10 @@ dosacrifice() && mtmp->mtame) { /* mtmp is a temporary pointer to a tame monster's attributes, * not a real monster */ +/*JP pline("So this is how you repay loyalty?"); +*/ + pline("‚»‚ê‚Å‚±‚ꂪ‚ ‚È‚½‚Ì’‰‹`‚É•ñ‚¢‚é‚à‚Ì‚©H"); adjalign(-3); value = -1; HAggravate_monster |= FROMOUTSIDE; @@ -1395,9 +1778,15 @@ dosacrifice() if (unicalign == altaralign) { /* When same as altar, always a very bad action. */ +#if 0 /*JP*/ pline("Such an action is an insult to %s!", (unicalign == A_CHAOTIC) ? "chaos" : unicalign ? "law" : "balance"); +#else + pline("‚»‚̂悤‚ȍs“®‚́w%sx‚É”½‚·‚éI", + (unicalign == A_CHAOTIC) ? "¬“×" + : unicalign ? "’˜" : "’²˜a"); +#endif (void) adjattrib(A_WIS, -1, TRUE); value = -5; } else if (u.ualign.type == altaralign) { @@ -1405,9 +1794,15 @@ dosacrifice() * it's a very good action. */ if (u.ualign.record < ALIGNLIM) +/*JP You_feel("appropriately %s.", align_str(u.ualign.type)); +*/ + You("%s‚É‚Ó‚³‚킵‚¢‚ÆŠ´‚¶‚½D", align_str(u.ualign.type)); else +/*JP You_feel("you are thoroughly on the right path."); +*/ + You("Š®‘S‚ɐ³‚µ‚¢“¹‚ð•à‚ñ‚Å‚¢‚é‚Ì‚ðŠ´‚¶‚½D"); adjalign(5); value += 3; } else if (unicalign == u.ualign.type) { @@ -1435,6 +1830,7 @@ dosacrifice() fall through to the "ashamed" feedback) */ gods_upset(A_NONE); else +#if 0 /*JP*/ You_feel("%s.", Hallucination ? "homesick" @@ -1443,6 +1839,16 @@ dosacrifice() ? "an urge to return to the surface" /* else headed towards celestial disgrace */ : "ashamed"); +#else + You_feel("%sD", + Hallucination + ? "ŒÌ‹½‚ª—ö‚µ‚­‚È‚Á‚½" + /* if on track, give a big hint */ + : (altaralign == u.ualign.type) + ? "’nã‚É‹A‚肽‚¢‹CŽ‚É‹ì‚è—§‚Ä‚ç‚ꂽ" + /* else headed towards celestial disgrace */ + : "’p‚¸‚©‚µ‚¢Žv‚¢‚ª‚µ‚½"); +#endif return 1; } else { /* The final Test. Did you win? */ @@ -1453,7 +1859,10 @@ dosacrifice() useup(otmp); /* well, it's gone now */ else useupf(otmp, 1L); +/*JP You("offer the Amulet of Yendor to %s...", a_gname()); +*/ + You("ƒCƒFƒ“ƒ_[‚Ì–‚œ‚¯‚ð%s‚ÉŒ£ã‚µ‚½DDD",a_gname()); if (altaralign == A_NONE) { /* Moloch's high altar */ if (u.ualign.record > -99) @@ -1475,23 +1884,48 @@ dosacrifice() /* And the opposing team picks you up and carries you off on their shoulders */ adjalign(-99); +#if 0 /*JP*/ pline("%s accepts your gift, and gains dominion over %s...", a_gname(), u_gname()); +#else + pline("%s‚Í‚ ‚È‚½‚Ì‘—‚蕨‚ðŽó‚¯‚Æ‚èC%s‚ÌŒ —͂𓾂½DDD", + a_gname(), u_gname()); +#endif +/*JP pline("%s is enraged...", u_gname()); +*/ + pline("%s‚ÍŒƒ“{‚µ‚½DDD", u_gname()); +/*JP pline("Fortunately, %s permits you to live...", a_gname()); +*/ + pline("K‰^‚É‚àC%s‚Í‚ ‚È‚½‚Ì‘¶Ý‚ð‹–‚µ‚Ä‚¢‚éDDD",a_gname()); pline(cloud_of_smoke, hcolor(NH_ORANGE)); done(ESCAPED); } else { /* super big win */ adjalign(10); u.uachieve.ascended = 1; pline( +/*JP "An invisible choir sings, and you are bathed in radiance..."); +*/ + "‚Ç‚±‚©‚ç‚Æ‚à‚È‚­¹‰Ì‘à‚̉̂ª•·‚±‚¦C‚ ‚È‚½‚ÍŒõ‚É•ï‚܂ꂽDDD"); +/*JP godvoice(altaralign, "Congratulations, mortal!"); +*/ + godvoice(altaralign, "‚æ‚­‚â‚Á‚½I’è–½‚ÌŽÒ‚æI"); display_nhwindow(WIN_MESSAGE, FALSE); verbalize( +/*JP "In return for thy service, I grant thee the gift of Immortality!"); +*/ + "“ð‚̈̋Ƃɑ΂µC•sŽ€‚Ì‘Ì‚ð•ù‚°‚悤‚¼I"); +#if 0 /*JP*/ You("ascend to the status of Demigod%s...", flags.female ? "dess" : ""); +#else + You("¸“V‚µC%s_‚Æ‚È‚Á‚½DDD", + flags.female ? "—" : ""); +#endif done(ASCENDED); } } @@ -1500,17 +1934,29 @@ dosacrifice() if (otmp->otyp == FAKE_AMULET_OF_YENDOR) { if (!highaltar && !otmp->known) goto too_soon; +/*JP You_hear("a nearby thunderclap."); +*/ + You("‹ß‚­‚É—‹‚ª—Ž‚¿‚½‰¹‚ð•·‚¢‚½D"); if (!otmp->known) { +#if 0 /*JP*/ You("realize you have made a %s.", Hallucination ? "boo-boo" : "mistake"); +#else + You("%s‚±‚Æ‚É‹C‚ª‚‚¢‚½D", + Hallucination ? "uƒnƒYƒŒv‚¾‚Á‚½" : "ŠÔˆá‚¢‚ð”Æ‚µ‚½"); +#endif otmp->known = TRUE; change_luck(-1); return 1; } else { /* don't you dare try to fool the gods */ if (Deaf) +#if 0 /*JP*/ pline("Oh, no."); /* didn't hear thunderclap */ +#else + pline("‚È‚ñ‚Ä‚±‚Á‚½D"); /* didn't hear thunderclap */ +#endif change_luck(-3); adjalign(-1); u.ugangr += 3; @@ -1529,10 +1975,19 @@ dosacrifice() * REAL BAD NEWS!!! High altars cannot be converted. Even an attempt * gets the god who owns it truly pissed off. */ +/*JP You_feel("the air around you grow charged..."); +*/ + You("‰ñ‚è‚Ì‹ó‹C‚ɃGƒlƒ‹ƒM[‚ª–ž‚¿‚Ä‚¢‚­‚悤‚È‹C‚ª‚µ‚½DDD"); +/*JP pline("Suddenly, you realize that %s has noticed you...", a_gname()); +*/ + pline("“Ë‘RC%s‚ª‚ ‚È‚½‚ð‚¶‚Á‚ÆŒ©‚Ä‚¢‚é‚Ì‚É‹C‚ª‚‚¢‚½DDD",a_gname()); godvoice(altaralign, +/*JP "So, mortal! You dare desecrate my High Temple!"); +*/ + "’è–½‚ÌŽÒ‚æI‚¨‚Ü‚¦‚͉䂪_¹‚Ȃ鎛‰@‚ð‰˜‚·‚Ì‚©I"); /* Throw everything we have at the player */ god_zaps_you(altaralign); } else if (value @@ -1550,10 +2005,16 @@ dosacrifice() if (ugod_is_angry() || (altaralign == A_NONE && Inhell)) { if (u.ualignbase[A_CURRENT] == u.ualignbase[A_ORIGINAL] && altaralign != A_NONE) { +/*JP You("have a strong feeling that %s is angry...", +*/ + You("%s‚ª“{‚Á‚Ä‚¢‚é‚Ì‚ðŠmM‚µ‚½DDD", u_gname()); consume_offering(otmp); +/*JP pline("%s accepts your allegiance.", a_gname()); +*/ + pline("%s‚Í‚ ‚È‚½‚Ì‘®«‚ðŽó‚¯‚¢‚ꂽD", a_gname()); uchangealign(altaralign, 0); /* Beware, Conversion is costly */ @@ -1562,8 +2023,14 @@ dosacrifice() } else { u.ugangr += 3; adjalign(-5); +/*JP pline("%s rejects your sacrifice!", a_gname()); +*/ + pline("%s‚Í‚ ‚È‚½‚ÌŒ£ã•¨‚ðŽó‚¯‚¢‚ê‚È‚¢I", a_gname()); +/*JP godvoice(altaralign, "Suffer, infidel!"); +*/ + godvoice(altaralign, "ˆÙ’[ŽÒ‚æIŽ¸‚¹‚ëII"); change_luck(-5); (void) adjattrib(A_WIS, -2, TRUE); if (!Inhell) @@ -1572,11 +2039,19 @@ dosacrifice() return 1; } else { consume_offering(otmp); +#if 0 /*JP*/ You("sense a conflict between %s and %s.", u_gname(), a_gname()); +#else + You("%s‚Æ%sŠÔ‚Ì‘ˆ‚¢‚ðŠ´‚¶‚½D", u_gname(), + a_gname()); +#endif if (rn2(8 + u.ulevel) > 5) { struct monst *pri; +/*JP You_feel("the power of %s increase.", u_gname()); +*/ + You("%s‚Ì—Í‚ª‘‘債‚½‚悤‚È‹C‚ª‚µ‚½D", u_gname()); exercise(A_WIS, TRUE); change_luck(1); /* Yes, this is supposed to be &=, not |= */ @@ -1586,12 +2061,21 @@ dosacrifice() levl[u.ux][u.uy].altarmask | (Align2amask(u.ualign.type)); if (!Blind) +#if 0 /*JP*/ pline_The("altar glows %s.", hcolor((u.ualign.type == A_LAWFUL) ? NH_WHITE : u.ualign.type ? NH_BLACK : (const char *) "gray")); +#else + pline("Õ’d‚Í%s‹P‚¢‚½D", + jconj_adj(hcolor((u.ualign.type == A_LAWFUL) + ? NH_WHITE + : u.ualign.type + ? NH_BLACK + : (const char *)"ŠDF‚Ì"))); +#endif if (rnl(u.ulevel) > 6 && u.ualign.record > 0 && rnd(u.ualign.record) > (3 * ALIGNLIM) / 4) @@ -1601,7 +2085,10 @@ dosacrifice() && !p_coaligned(pri)) angry_priest(); } else { +/*JP pline("Unluckily, you feel the power of %s decrease.", +*/ + pline("•sK‚É‚àC%s‚Ì—Í‚ªŒ¸­‚µ‚½‚Ì‚ðŠ´‚¶‚½D", u_gname()); change_luck(-1); exercise(A_WIS, FALSE); @@ -1622,24 +2109,41 @@ dosacrifice() u.ugangr = 0; if (u.ugangr != saved_anger) { if (u.ugangr) { +#if 0 /*JP*/ pline("%s seems %s.", u_gname(), Hallucination ? "groovy" : "slightly mollified"); +#else + pline("%s‚Í%s‚ÉŒ©‚¦‚éD", u_gname(), + Hallucination ? "‘f“G" : "‚¿‚å‚Á‚Ƙa‚ç‚¢‚¾‚悤"); +#endif if ((int) u.uluck < 0) change_luck(1); } else { +#if 0 /*JP*/ pline("%s seems %s.", u_gname(), Hallucination ? "cosmic (not a new fact)" : "mollified"); +#else + pline("%s‚Í%s‚ÉŒ©‚¦‚éD", u_gname(), + Hallucination ? "“øF(VŽ–ŽÀ‚Å‚Í‚È‚¢)" + : "Œy•Ì‚µ‚½‚悤"); +#endif if ((int) u.uluck < 0) u.uluck = 0; } } else { /* not satisfied yet */ if (Hallucination) +/*JP pline_The("gods seem tall."); +*/ + pline("_‚Í‚¨‚‚­‚Æ‚Ü‚Á‚Ä‚¢‚é‚悤‚ÉŒ©‚¦‚éD"); else +/*JP You("have a feeling of inadequacy."); +*/ + You("‚Ü‚¾‚Ü‚¾‚¾‚ÆŠ´‚¶‚½D"); } } else if (ugod_is_angry()) { if (value > MAXVALUE) @@ -1647,7 +2151,10 @@ dosacrifice() if (value > -u.ualign.record) value = -u.ualign.record; adjalign(value); +/*JP You_feel("partially absolved."); +*/ + You("­‚µ‚¾‚¯‚ä‚邵‚Ä‚à‚炦‚½‚悤‚È‹C‚ª‚µ‚½D"); } else if (u.ublesscnt > 0) { u.ublesscnt -= ((value * (u.ualign.type == A_CHAOTIC ? 500 : 300)) / MAXVALUE); @@ -1656,16 +2163,28 @@ dosacrifice() if (u.ublesscnt != saved_cnt) { if (u.ublesscnt) { if (Hallucination) +/*JP You("realize that the gods are not like you and I."); +*/ + You("_‚ƃc[ƒJ[‚Ì’‡‚Å‚Í‚È‚¢‚±‚Æ‚ðŒå‚Á‚½D"); else +/*JP You("have a hopeful feeling."); +*/ + pline("Šó–]‚ªŒ©‚¦‚Ä‚«‚½‚悤‚È‹C‚ª‚µ‚½D"); if ((int) u.uluck < 0) change_luck(1); } else { if (Hallucination) +/*JP pline("Overall, there is a smell of fried onions."); +*/ + pline("‚½‚Ü‚Ë‚¬‚ð—g‚°‚½“õ‚¢‚ª‚µ‚½D"); else +/*JP You("have a feeling of reconciliation."); +*/ + You("‹–‚³‚ꂽ‹C‚ª‚µ‚½D"); if ((int) u.uluck < 0) u.uluck = 0; } @@ -1685,9 +2204,15 @@ dosacrifice() if (otmp->cursed) uncurse(otmp); otmp->oerodeproof = TRUE; +/*JP at_your_feet("An object"); +*/ + at_your_feet("‰½‚©"); dropy(otmp); +/*JP godvoice(u.ualign.type, "Use my gift wisely!"); +*/ + godvoice(u.ualign.type, "‰ä‚ª—^‚¦‚µ‚à‚ÌŒ«‚­Žg‚¤‚ׂµI"); u.ugifts++; u.ublesscnt = rnz(300 + (50 * nartifacts)); exercise(A_WIS, TRUE); @@ -1706,13 +2231,24 @@ dosacrifice() u.uluck = 0; if (u.uluck != saved_luck) { if (Blind) +#if 0 /*JP*/ You("think %s brushed your %s.", something, body_part(FOOT)); +#else + pline("%s‚ª‚ ‚È‚½‚Ì%s‚ð‚­‚·‚®‚Á‚½‚悤‚¾D", something, + body_part(FOOT)); +#endif else +#if 0 /*JP*/ You(Hallucination ? "see crabgrass at your %s. A funny thing in a dungeon." : "glimpse a four-leaf clover at your %s.", makeplural(body_part(FOOT))); +#else + You(Hallucination + ? "‘«Œ³‚Ƀyƒ“ƒyƒ“‘‚ð‚݂‚¯‚½D–À‹{‚É‚µ‚Ä‚Í’¿‚µ‚¢D" + : "Žl—t‚̃Nƒ[ƒo[‚ð‘«Œ³‚ÉŒ©‚‚¯‚½D"); +#endif } } } @@ -1731,13 +2267,21 @@ boolean praying; /* false means no messages should be given */ if (is_demon(youmonst.data) && (p_aligntyp != A_CHAOTIC)) { if (praying) +#if 0 /*JP*/ pline_The("very idea of praying to a %s god is repugnant to you.", p_aligntyp ? "lawful" : "neutral"); +#else + pline("%s‚̐_‚É‹F‚è‚ð‚³‚³‚°‚é‚̂͏펯‚É”w‚­D", + p_aligntyp ? "’˜" : "’†—§"); +#endif return FALSE; } if (praying) +/*JP You("begin praying to %s.", align_gname(p_aligntyp)); +*/ + You("%s‚É‹F‚è‚ð•ù‚°‚½D", align_gname(p_aligntyp)); if (u.ualign.type && u.ualign.type == -p_aligntyp) alignment = -u.ualign.record; /* Opposite alignment altar */ @@ -1774,7 +2318,10 @@ int dopray() { /* Confirm accidental slips of Alt-P */ +/*JP if (ParanoidPray && yn("Are you sure you want to pray?") != 'y') +*/ + if (ParanoidPray && yn("‹F‚è‚Ü‚·‚©H") != 'y') return 0; u.uconduct.gnostic++; @@ -1784,7 +2331,10 @@ dopray() return 0; if (wizard && p_type >= 0) { +/*JP if (yn("Force the gods to be pleased?") == 'y') { +*/ + if (yn("–³—–_‚É”÷Î‚ñ‚Å‚à‚ç‚¢‚Ü‚·‚©H") == 'y') { u.ublesscnt = 0; if (u.uluck < 0) u.uluck = 0; @@ -1797,13 +2347,19 @@ dopray() } nomul(-3); multi_reason = "praying"; +/*JP nomovemsg = "You finish your prayer."; +*/ + nomovemsg = "‹F‚èI‚¦‚½D"; afternmv = prayer_done; if (p_type == 3 && !Inhell) { /* if you've been true to your god you can't die while you pray */ if (!Blind) +/*JP You("are surrounded by a shimmering light."); +*/ + You("‚©‚·‚©‚ÈŒõ‚ɂ‚‚܂ꂽD"); u.uinvulnerable = TRUE; } @@ -1817,20 +2373,36 @@ prayer_done() /* M. Stephenson (1.0.3b) */ u.uinvulnerable = FALSE; if (p_type == -1) { +#if 0 /*JP*/ godvoice(alignment, (alignment == A_LAWFUL) ? "Vile creature, thou durst call upon me?" : "Walk no more, perversion of nature!"); +#else + godvoice(alignment, + (alignment == A_LAWFUL) + ? "”Ú—ò‚Ȑ¶•¨‚æC“ðC‰ä‚É‹F‚è‚ð‹‚ß‚½‚©H" + : "“®‚­‚ȁIŽ€‚É‚¼‚±‚È‚¢‚̐¶•¨‚æI"); +#endif +/*JP You_feel("like you are falling apart."); +*/ + You("ƒoƒ‰ƒoƒ‰‚É‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½D"); /* KMH -- Gods have mastery over unchanging */ rehumanize(); /* no Half_physical_damage adjustment here */ +/*JP losehp(rnd(20), "residual undead turning effect", KILLED_BY_AN); +*/ + losehp(rnd(20), "•sŽ€‚̐¶•¨‚ð“y‚É•Ô‚·—Í‚Å", KILLED_BY_AN); exercise(A_CON, FALSE); return 1; } if (Inhell) { +/*JP pline("Since you are in Gehennom, %s won't help you.", +*/ + pline("ƒQƒwƒi‚É%s‚Ì—Í‚Í“Í‚©‚È‚¢D", align_gname(alignment)); /* haltingly aligned is least likely to anger */ if (u.ualign.record <= 0 || rnl(u.ualign.record)) @@ -1889,7 +2461,10 @@ doturn() else if (spl_book[sp_no].sp_id == SPE_TURN_UNDEAD) return spelleffects(sp_no, FALSE); } +/*JP You("don't know how to turn undead!"); +*/ + You("•sŽ€‚̐¶‚«•¨‚ð“y‚É–ß‚·•û–@‚ð’m‚ç‚È‚¢I"); return 0; } u.uconduct.gnostic++; @@ -1897,17 +2472,26 @@ doturn() if ((u.ualign.type != A_CHAOTIC && (is_demon(youmonst.data) || is_undead(youmonst.data))) || u.ugangr > 6) { /* "Die, mortal!" */ +/*JP pline("For some reason, %s seems to ignore you.", u_gname()); +*/ + pline("‚È‚º‚©C%s‚Í‚ ‚È‚½‚𖳎‹‚µ‚½‚悤‚¾D", u_gname()); aggravate(); exercise(A_WIS, FALSE); return 0; } if (Inhell) { +/*JP pline("Since you are in Gehennom, %s won't help you.", u_gname()); +*/ + pline("ƒQƒwƒi‚É%s‚Ì—Í‚Í“Í‚©‚È‚¢D", u_gname()); aggravate(); return 0; } +/*JP pline("Calling upon %s, you chant an arcane formula.", u_gname()); +*/ + pline("%s‚É‹F‚è‚ð‹‚ß‚é‚ƁC‚ ‚È‚½‚Í•s‰ÂŽv‹c‚ÈŒ¾—t‚̐¹‰Ì‚ð•·‚¢‚½D", u_gname()); exercise(A_WIS, TRUE); /* note: does not perform unturn_dead() on victims' inventories */ @@ -1928,7 +2512,10 @@ doturn() mtmp->msleeping = 0; if (Confusion) { if (!once++) +/*JP pline("Unfortunately, your voice falters."); +*/ + pline("Žc”O‚È‚ª‚çC‚ ‚È‚½‚̐º‚Í‚Ç‚à‚Á‚Ä‚µ‚Ü‚Á‚½D"); mtmp->mflee = 0; mtmp->mfrozen = 0; mtmp->mcanmove = 1; @@ -2016,7 +2603,10 @@ aligntyp alignment; break; default: impossible("unknown alignment."); +/*JP gnam = "someone"; +*/ + gnam = "’N‚©"; break; } if (*gnam == '_') @@ -2084,7 +2674,11 @@ aligntyp alignment; } if (!gnam) { impossible("No random god name?"); +#if 0 /*JP*/ gnam = "your Friend the Computer"; /* Paranoia */ +#else + gnam = "eˆ¤‚È‚éƒRƒ“ƒsƒ…[ƒ^"; /* Paranoia */ +#endif } if (*gnam == '_') ++gnam; @@ -2096,7 +2690,10 @@ const char * align_gtitle(alignment) aligntyp alignment; { +/*JP const char *gnam, *result = "god"; +*/ + const char *gnam, *result = "Žå_"; switch (alignment) { case A_LAWFUL: @@ -2113,7 +2710,10 @@ aligntyp alignment; break; } if (gnam && *gnam == '_') +/*JP result = "goddess"; +*/ + result = "—_"; return result; } @@ -2124,11 +2724,20 @@ register int x, y; aligntyp altaralign = a_align(x, y); if (!strcmp(align_gname(altaralign), u_gname())) { +/*JP godvoice(altaralign, "How darest thou desecrate my altar!"); +*/ + godvoice(altaralign, "“ðC‰ä‚ªÕ’d‚ð‰˜‚·‚©I"); (void) adjattrib(A_WIS, -1, FALSE); } else { +/*JP pline("A voice (could it be %s?) whispers:", align_gname(altaralign)); +*/ + pline("‚³‚³‚â‚«º(‚½‚Ô‚ñ%sH)‚ª•·‚±‚¦‚é:", align_gname(altaralign)); +/*JP verbalize("Thou shalt pay, infidel!"); +*/ + verbalize("ˆÙ’[ŽÒ‚æI•ñ‚¢‚ðŽó‚¯‚æI"); change_luck(-1); } } diff --git a/src/priest.c b/src/priest.c index f17f431..142bfe5 100644 --- a/src/priest.c +++ b/src/priest.c @@ -2,6 +2,11 @@ /* Copyright (c) Izchak Miller, Steve Linhart, 1989. */ /* 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" #include "mfndpos.h" @@ -123,8 +128,13 @@ pick_move: check_special_room(FALSE); if (ib) { if (cansee(mtmp->mx, mtmp->my)) +#if 0 /*JP*/ pline("%s picks up %s.", Monnam(mtmp), distant_name(ib, doname)); +#else + pline("%s‚Í%s‚ðE‚Á‚½D", Monnam(mtmp), + distant_name(ib, doname)); +#endif obj_extract_self(ib); (void) mpickobj(mtmp, ib); } @@ -198,7 +208,10 @@ register struct monst *priest; || (Conflict && !resist(priest, RING_CLASS, 0, 0))) { if (monnear(priest, u.ux, u.uy)) { if (Displaced) +/*JP Your("displaced image doesn't fool %s!", mon_nam(priest)); +*/ + Your("Œ¶‰e‚Í%s‚ð‚¾‚Ü‚¹‚È‚©‚Á‚½I", mon_nam(priest)); (void) mattacku(priest); return 0; } else if (index(u.urooms, temple)) { @@ -303,37 +316,72 @@ char *pname; /* caller-supplied output buffer */ return strcpy(pname, what); /* caller must be confused */ *pname = '\0'; +#if 0 /*JP*//*“ú–{Œê‚Å‚Í•s—v*/ if (!do_hallu || !bogon_is_pname(whatcode)) Strcat(pname, "the "); +#endif if (mon->minvis) +/*JP Strcat(pname, "invisible "); +*/ + Strcat(pname, "“§–¾‚È"); if (mon->isminion && EMIN(mon)->renegade) +/*JP Strcat(pname, "renegade "); +*/ + Strcat(pname, "— Ø‚èŽÒ‚Ì"); if (mon->ispriest || aligned_priest) { /* high_priest implies ispriest */ if (!aligned_priest && !high_priest) { ; /* polymorphed priest; use ``what'' as is */ } else { if (high_priest) +#if 0 /*JP*/ Strcat(pname, "high "); +#else + { + if (Hallucination) + what = "–³”\‚‹‰Š¯—»"; + else + what = "–@‰¤"; + } + else /* ã‹L‚ÅŠ®¬‚³‚¹‚āAˆÈ‰º‚̃R[ƒh‚Í’Ê‚ç‚È‚­‚·‚é */ +#endif if (Hallucination) +/*JP what = "poohbah"; +*/ + what = "–³”\Š¯—»"; else if (mon->female) +/*JP what = "priestess"; +*/ + what = "“ò‘m"; else +/*JP what = "priest"; +*/ + what = "‘m—µ"; } } else { +/*JP if (mon->mtame && !strcmpi(what, "Angel")) +*/ + if (mon->mtame && !strcmpi(what, "“VŽg")) +/*JP Strcat(pname, "guardian "); +*/ + Strcat(pname, "ŒxŒì"); } Strcat(pname, what); /* same as distant_monnam(), more or less... */ if (do_hallu || !high_priest || !Is_astralevel(&u.uz) || distu(mon->mx, mon->my) <= 2 || program_state.gameover) { +#if 0 /*JP*/ Strcat(pname, " of "); Strcat(pname, halu_gname(mon_aligntyp(mon))); +#endif } return pname; } @@ -410,8 +458,13 @@ int roomno; Moloch so suppress the "of Moloch" for him here too */ if (sanctum && !Hallucination) priest->ispriest = 0; +#if 0 /*JP*/ pline("%s intones:", canseemon(priest) ? Monnam(priest) : "A nearby voice"); +#else + pline("%s‚ª‰r¥‚µ‚½F", + canseemon(priest) ? Monnam(priest) : "‹ß‚­‚Å’N‚©"); +#endif priest->ispriest = save_priest; epri_p->intone_time = moves + (long) d(10, 500); /* ~2505 */ /* make sure that we don't suppress entry message when @@ -422,18 +475,32 @@ int roomno; if (sanctum && Is_sanctum(&u.uz)) { if (priest->mpeaceful) { /* first time inside */ +/*JP msg1 = "Infidel, you have entered Moloch's Sanctum!"; +*/ + msg1 = "ˆÙ’[ŽÒ‚æI‚±‚±‚́Cƒ‚[ƒƒbƒN‚̐¹ˆæ‚¾I"; +/*JP msg2 = "Be gone!"; +*/ + msg2 = "—§‚¿‚³‚êI"; priest->mpeaceful = 0; /* became angry voluntarily; no penalty for attacking him */ set_malign(priest); } else { /* repeat visit, or attacked priest before entering */ +/*JP msg1 = "You desecrate this place by your presence!"; +*/ + msg1 = "‚¨‚Ü‚¦‚Í‚±‚̐_¹‚ȏꏊ‚ð‰˜‚µ‚Ä‚¢‚éI"; } } else if (moves >= epri_p->enter_time) { +#if 0 /*JP*/ Sprintf(buf, "Pilgrim, you enter a %s place!", !shrined ? "desecrated" : "sacred"); +#else + Sprintf(buf, "„—çŽÒ‚æC‚¨‚Ü‚¦‚Í%s’n‚É‚¢‚éI", + !shrined ? "•sò‚Ì" : "_¹‚È‚é"); +#endif msg1 = buf; } if (msg1 && can_speak && !Deaf) { @@ -445,13 +512,25 @@ int roomno; if (!sanctum) { if (!shrined || !p_coaligned(priest) || u.ualign.record <= ALGN_SINNED) { +/*JP msg1 = "have a%s forbidding feeling..."; +*/ + msg1 = "%s‹ß‚«‚ª‚½‚¢‹CŽ‚ª‚µ‚½DDD"; +/*JP msg2 = (!shrined || !p_coaligned(priest)) ? "" : " strange"; +*/ + msg2 = (!shrined || !p_coaligned(priest)) ? "" : "Šï–­‚È"; this_time = &epri_p->hostile_time; other_time = &epri_p->peaceful_time; } else { +/*JP msg1 = "experience %s sense of peace."; +*/ + msg1 = "%s–ž‚¿‘«‚肽‹CŽ‚¿‚É‚È‚Á‚½D"; +/*JP msg2 = (u.ualign.record >= ALGN_PIOUS) ? "a" : "an unusual"; +*/ + msg2 = (u.ualign.record >= ALGN_PIOUS) ? "a" : "‚¢‚‚ɂȂ­"; this_time = &epri_p->peaceful_time; other_time = &epri_p->hostile_time; } @@ -475,13 +554,22 @@ int roomno; switch (rn2(4)) { case 0: +/*JP You("have an eerie feeling..."); +*/ + You("‚¼‚Á‚Æ‚µ‚½DDD"); break; case 1: +/*JP You_feel("like you are being watched."); +*/ + You("Œ©‚‚߂ç‚ê‚Ä‚¢‚é‚悤‚È‹C‚ª‚µ‚½D"); break; case 2: +/*JP pline("A shiver runs down your %s.", body_part(SPINE)); +*/ + pline("‚ ‚È‚½‚Ì%s‚ðk‚¦‚ª‘–‚Á‚½D", body_part(SPINE)); break; default: break; /* no message; unfortunately there's no @@ -495,16 +583,28 @@ int roomno; an exclamation to a simple declaration) if hero has already killed enough ghosts.] */ if (canspotmon(mtmp)) +/*JP pline("An enormous ghost appears next to you!"); +*/ + pline("‹‘å‚È—H—삪‚ ‚È‚½‚Ì‚·‚®‚»‚΂Ɍ»‚í‚ꂽI"); else +/*JP You("sense a presence close by!"); +*/ + You("‚·‚®‚»‚΂ɉ½‚©‚ª‚¢‚é‚Ì‚ðŠ´‚¶‚½I"); mtmp->mpeaceful = 0; set_malign(mtmp); if (flags.verbose) +/*JP You("are frightened to death, and unable to move."); +*/ + You("‚Ü‚Á‚³‚¨‚É‚È‚Á‚Ä‹Á‚«C“®‚¯‚È‚­‚È‚Á‚½D"); nomul(-3); multi_reason = "being terrified of a demon"; +/*JP nomovemsg = "You regain your composure."; +*/ + nomovemsg = "‚ ‚È‚½‚Í•½Ã‚ðŽæ‚è–ß‚µ‚½D"; } } } @@ -536,7 +636,10 @@ register struct monst *priest; u.uconduct.gnostic++; if (priest->mflee || (!priest->ispriest && coaligned && strayed)) { +/*JP pline("%s doesn't want anything to do with you!", Monnam(priest)); +*/ + pline("%s‚Í‚ ‚È‚½‚ɍ\‚¢‚½‚­‚È‚¢‚悤‚¾I", Monnam(priest)); priest->mpeaceful = 0; return; } @@ -545,14 +648,27 @@ register struct monst *priest; if (!inhistemple(priest) || !priest->mpeaceful || !priest->mcanmove || priest->msleeping) { static const char *cranky_msg[3] = { +/*JP "Thou wouldst have words, eh? I'll give thee a word or two!", +*/ + "“ðŒ¾—t‚ð–]‚Þ‚Ì‚©H", +/*JP "Talk? Here is what I have to say!", +*/ + "˜b‚·H‰½‚ðŒ¾‚¦‚΂悢‚Ì‚¾I", +/*JP "Pilgrim, I would speak no longer with thee." +*/ + "„—çŽÒ‚æC“ð‚ÉŒê‚邱‚Æ‚È‚Ç‚È‚¢D" }; if (!priest->mcanmove || priest->msleeping) { +#if 0 /*JP*/ pline("%s breaks out of %s reverie!", Monnam(priest), mhis(priest)); +#else + pline("%s‚Íáґz‚ð’†’f‚µ‚½I", Monnam(priest)); +#endif priest->mfrozen = priest->msleeping = 0; priest->mcanmove = 1; } @@ -565,7 +681,10 @@ register struct monst *priest; if (priest->mpeaceful && *in_rooms(priest->mx, priest->my, TEMPLE) && !has_shrine(priest)) { verbalize( +/*JP "Begone! Thou desecratest this holy place with thy presence."); +*/ + "—§‚¿‹Ž‚êI“ð‚Í‚±‚̐_¹‚È‚éêŠ‚ð‰˜‚µ‚Ä‚¢‚éD"); priest->mpeaceful = 0; return; } @@ -574,38 +693,67 @@ register struct monst *priest; long pmoney = money_cnt(priest->minvent); if (pmoney > 0L) { /* Note: two bits is actually 25 cents. Hmm. */ +#if 0 /*JP*/ pline("%s gives you %s for an ale.", Monnam(priest), (pmoney == 1L) ? "one bit" : "two bits"); +#else + pline("%s‚Í‚ ‚È‚½‚ªƒG[ƒ‹Žð‚ðˆù‚ß‚é‚悤‚ɁC%s‚ð—^‚¦‚½D", Monnam(priest), + (pmoney == 1L) ? "‹à‰Ý1–‡" : "‹à‰Ý2–‡"); +#endif money2u(priest, pmoney > 1L ? 2 : 1); } else +/*JP pline("%s preaches the virtues of poverty.", Monnam(priest)); +*/ + pline("%s‚͐´•n‚Ì”ü“¿‚ɂ‚¢‚Äà‹³‚µ‚½D", Monnam(priest)); exercise(A_WIS, TRUE); } else +/*JP pline("%s is not interested.", Monnam(priest)); +*/ + pline("%s‚Í‹»–¡‚ðŽ¦‚³‚È‚¢D", Monnam(priest)); return; } else { long offer; +/*JP pline("%s asks you for a contribution for the temple.", +*/ + pline("%s‚Í‚ ‚È‚½‚ÉŽ›‰@‚Ö‚ÌŠñ‘¡‚ð‹‚ß‚½D", Monnam(priest)); if ((offer = bribe(priest)) == 0) { +/*JP verbalize("Thou shalt regret thine action!"); +*/ + verbalize("“ð‚̍sˆ×‚͐_‚ð–`“À‚·‚é‚à‚Ì‚È‚èI"); if (coaligned) adjalign(-1); } else if (offer < (u.ulevel * 200)) { if (money_cnt(invent) > (offer * 2L)) { +/*JP verbalize("Cheapskate."); +*/ + verbalize("ƒPƒ`‚߁D"); } else { +/*JP verbalize("I thank thee for thy contribution."); +*/ + verbalize("“ð‚ÌŠñ‘¡‚É•ñ‚¢‚悤‚¼D"); /* give player some token */ exercise(A_WIS, TRUE); } } else if (offer < (u.ulevel * 400)) { +/*JP verbalize("Thou art indeed a pious individual."); +*/ + verbalize("“ðC‚Ü‚³‚ÉŒhåi‚È‚èD"); if (money_cnt(invent) < (offer * 2L)) { if (coaligned && u.ualign.record <= ALGN_SINNED) adjalign(1); +/*JP verbalize("I bestow upon thee a blessing."); +*/ + verbalize("“ð‚ɏj•Ÿ‚ðD"); incr_itimeout(&HClairvoyant, rn1(500, 500)); } } else if (offer < (u.ulevel * 600) @@ -616,7 +764,10 @@ register struct monst *priest; && (!(HProtection & INTRINSIC) || (u.ublessed < 20 && (u.ublessed < 9 || !rn2(u.ublessed))))) { +/*JP verbalize("Thy devotion has been rewarded."); +*/ + verbalize("“ð‚ªŒ£g‚É•ñ‚í‚ñD"); if (!(HProtection & INTRINSIC)) { HProtection |= FROMOUTSIDE; if (!u.ublessed) @@ -624,7 +775,10 @@ register struct monst *priest; } else u.ublessed++; } else { +/*JP verbalize("Thy selfless generosity is deeply appreciated."); +*/ + verbalize("“ðŽ©g‚̐^‰¿‚Í‘å‚¢‚É”F‚ß‚ç‚ꂽD"); if (money_cnt(invent) < (offer * 2L) && coaligned) { if (strayed && (moves - u.ucleansed) > 5000L) { u.ualign.record = 0; /* cleanse thee */ @@ -768,15 +922,24 @@ struct monst *priest; switch (rn2(3)) { case 0: +/*JP pline("%s roars in anger: \"Thou shalt suffer!\"", +*/ + pline("%s‚Í“{‚è‚̐º‚ð‚ ‚°‚½Fu“ðC‹ê‚µ‚Þ‚ª‚æ‚¢Iv", a_gname_at(ax, ay)); break; case 1: +/*JP pline("%s voice booms: \"How darest thou harm my servant!\"", +*/ + pline("%s‚̐º‚ª‹¿‚¢‚½Fu‚킪‰º–l‚ɋꂵ‚Þ‚ª‚æ‚¢Iv", s_suffix(a_gname_at(ax, ay))); break; default: +/*JP pline("%s roars: \"Thou dost profane my shrine!\"", +*/ + pline("%s‚̐º‚ª•·‚±‚¦‚éFu“ðC‰ä‚ª¹“°‚ð‰˜‚µ‚½‚èIv", a_gname_at(ax, ay)); break; } diff --git a/src/quest.c b/src/quest.c index f1222fc..7bbd1d8 100644 --- a/src/quest.c +++ b/src/quest.c @@ -2,6 +2,11 @@ /* Copyright 1991, M. Stephenson */ /* 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" /* quest dungeon branch routines. */ @@ -138,14 +143,30 @@ boolean talk; if (wizard && talk) { if (u.ualign.type != original_alignment) { +#if 0 /*JP*/ You("are currently %s instead of %s.", align_str(u.ualign.type), align_str(original_alignment)); +#else + You("%s‚Å‚Í‚È‚­%s‚Ì‘®«‚Å‚ ‚éD", align_str(original_alignment), + align_str(u.ualign.type)); +#endif } else if (u.ualignbase[A_CURRENT] != original_alignment) { +/*JP You("have converted."); +*/ + You("“]Œü‚µ‚Ä‚¢‚éD"); } else if (u.ualign.record < MIN_QUEST_ALIGN) { +#if 0 /*JP*/ You("are currently %d and require %d.", u.ualign.record, MIN_QUEST_ALIGN); +#else + Your("‘®«’l‚ÍŒ»Ý%d‚Å%d•K—v‚¾D", u.ualign.record, + MIN_QUEST_ALIGN); +#endif +/*JP if (yn_function("adjust?", (char *) 0, 'y') == 'y') +*/ + if (yn_function("’¼‚·H", (char *) 0, 'y') == 'y') u.ualign.record = MIN_QUEST_ALIGN; } } @@ -172,7 +193,10 @@ boolean seal; struct trap *t; int portal_flag; +/*JP br = dungeon_branch("The Quest"); +*/ + br = dungeon_branch("ƒNƒGƒXƒg"); dest = (br->end1.dnum == u.uz.dnum) ? &br->end2 : &br->end1; portal_flag = u.uevent.qexpelled ? 0 /* returned via artifact? */ : !seal ? 1 : -1; @@ -371,8 +395,14 @@ struct monst *mtmp; && (mtmp->mstrategy & STRAT_WAITMASK)) { /* Awaken the prisoner */ if (canseemon(mtmp)) +/*JP pline("%s speaks:", Monnam(mtmp)); +*/ + pline("%s‚͘b‚µ‚½F", Monnam(mtmp)); +/*JP verbalize("I'm finally free!"); +*/ + verbalize("‚‚¢‚ÉŽ©—R‚¾I"); mtmp->mstrategy &= ~STRAT_WAITMASK; mtmp->mpeaceful = 1; diff --git a/src/questpgr.c b/src/questpgr.c index ed936d9..f0e17e1 100644 --- a/src/questpgr.c +++ b/src/questpgr.c @@ -177,8 +177,12 @@ ldrname() { int i = urole.ldrnum; +#if 0 /*JP*/ Sprintf(nambuf, "%s%s", type_is_pname(&mons[i]) ? "" : "the ", mons[i].mname); +#else + Strcpy(nambuf, mons[i].mname); +#endif return nambuf; } @@ -202,8 +206,12 @@ neminame() { int i = urole.neminum; +#if 0 /*JP*/ Sprintf(nambuf, "%s%s", type_is_pname(&mons[i]) ? "" : "the ", mons[i].mname); +#else + Strcpy(nambuf, mons[i].mname); +#endif return nambuf; } @@ -294,10 +302,16 @@ char c; str = rank_of(MIN_QUEST_LEVEL, Role_switch, flags.female); break; case 's': +/*JP str = (flags.female) ? "sister" : "brother"; +*/ + str = (flags.female) ? "–…" : "’í"; break; case 'S': +/*JP str = (flags.female) ? "daughter" : "son"; +*/ + str = (flags.female) ? "–º" : "‘§Žq"; break; case 'l': str = ldrname(); @@ -342,16 +356,28 @@ char c; str = align_gname(A_LAWFUL); break; case 'C': +/*JP str = "chaotic"; +*/ + str = "¬“×"; break; case 'N': +/*JP str = "neutral"; +*/ + str = "’†—§"; break; case 'L': +/*JP str = "lawful"; +*/ + str = "’˜"; break; case 'x': +/*JP str = Blind ? "sense" : "see"; +*/ + str = Blind ? "Š´‚¶" : "Œ©"; break; case 'Z': str = dungeons[0].dname; diff --git a/src/read.c b/src/read.c index 6f9b39a..2978023 100644 --- a/src/read.c +++ b/src/read.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" #define Your_Own_Role(mndx) \ @@ -182,7 +187,10 @@ doread() /* outrumor has its own blindness check */ if (scroll->otyp == FORTUNE_COOKIE) { if (flags.verbose) +/*JP You("break up the cookie and throw away the pieces."); +*/ + You("ƒNƒbƒL[‚ðŠ„‚èC‚©‚¯‚ç‚ð“Š‚°‚·‚Ä‚½D"); outrumor(bcsign(scroll), BY_COOKIE); if (!Blind) u.uconduct.literate++; @@ -191,21 +199,37 @@ doread() } else if (scroll->otyp == T_SHIRT || scroll->otyp == ALCHEMY_SMOCK) { char buf[BUFSZ]; if (Blind) { +/*JP You_cant("feel any Braille writing."); +*/ + You("“_Žš‚Í‚Ç‚¤‚à‘‚¢‚Ä‚È‚¢‚悤‚¾D"); return 0; } /* can't read shirt worn under suit (under cloak is ok though) */ if (scroll->otyp == T_SHIRT && uarm && scroll == uarmu) { +#if 0 /*JP*/ pline("%s shirt is obscured by %s%s.", scroll->unpaid ? "That" : "Your", shk_your(buf, uarm), suit_simple_name(uarm)); +#else + pline("ƒVƒƒƒc‚Í%s‚ʼnB‚³‚ê‚Ä‚¢‚éD", + suit_simple_name(uarm)); +#endif return 0; } u.uconduct.literate++; if (flags.verbose) +/*JP pline("It reads:"); +*/ + pline("‚»‚ê‚ð“Ç‚ñ‚¾F"); +#if 0 /*JP*/ pline("\"%s\"", (scroll->otyp == T_SHIRT) ? tshirt_text(scroll, buf) : apron_text(scroll, buf)); +#else + pline("u%sv", (scroll->otyp == T_SHIRT) ? tshirt_text(scroll, buf) + : apron_text(scroll, buf)); +#endif return 1; } else if (scroll->otyp == CREDIT_CARD) { static const char *card_msgs[] = { @@ -225,11 +249,20 @@ doread() }; if (Blind) { +/*JP You("feel the embossed numbers:"); +*/ + You("•‚‚«’¤‚è‚É‚³‚ê‚Ä‚¢‚é”ԍ†‚ðŠ´‚¶‚½:"); } else { if (flags.verbose) +/*JP pline("It reads:"); +*/ + pline("‚»‚ê‚ð“Ç‚ñ‚¾F"); +/*JP pline("\"%s\"", +*/ + pline("u%sv", scroll->oartifact ? card_msgs[SIZE(card_msgs) - 1] : card_msgs[scroll->o_id % (SIZE(card_msgs) - 1)]); @@ -242,32 +275,59 @@ doread() u.uconduct.literate++; return 1; } else if (scroll->otyp == CAN_OF_GREASE) { +/*JP pline("This %s has no label.", singular(scroll, xname)); +*/ + pline("‚±‚Ì%s‚ɂ̓‰ƒxƒ‹‚ª‚È‚¢D", singular(scroll, xname)); return 0; } else if (scroll->otyp == MAGIC_MARKER) { if (Blind) { +/*JP You_cant("feel any Braille writing."); +*/ + You("“_Žš‚Í‚Ç‚¤‚à‘‚¢‚Ä‚È‚¢‚悤‚¾D"); return 0; } if (flags.verbose) +/*JP pline("It reads:"); +*/ + pline("‚»‚ê‚ð“Ç‚ñ‚¾F"); +/*JP pline("\"Magic Marker(TM) Red Ink Marker Pen. Water Soluble.\""); +*/ + pline("u–‚–@‚̃}[ƒJ(TM) ÔƒCƒ“ƒNƒ}[ƒJƒyƒ“D…«Dv"); u.uconduct.literate++; return 1; } else if (scroll->oclass == COIN_CLASS) { if (Blind) +/*JP You("feel the embossed words:"); +*/ + You("•‚‚«’¤‚è‚É‚³‚ê‚Ä‚¢‚镶Žš‚ðŠ´‚¶‚½:"); else if (flags.verbose) +/*JP You("read:"); +*/ + pline("‚»‚ê‚ð“Ç‚ñ‚¾F"); pline("\"1 Zorkmid. 857 GUE. In Frobs We Trust.\""); u.uconduct.literate++; return 1; } else if (scroll->oartifact == ART_ORB_OF_FATE) { if (Blind) +/*JP You("feel the engraved signature:"); +*/ + You("’¤‚荞‚Ü‚ê‚Ä‚¢‚éƒTƒCƒ“‚ðŠ´‚¶‚½F"); else +/*JP pline("It is signed:"); +*/ + pline("ƒTƒCƒ“‚ª‚ ‚éF"); +/*JP pline("\"Odin.\""); +*/ + pline("uƒI[ƒfƒBƒ“v"); u.uconduct.literate++; return 1; } else if (scroll->otyp == CANDY_BAR) { @@ -282,25 +342,43 @@ doread() }; if (Blind) { +/*JP You_cant("feel any Braille writing."); +*/ + You("“_Žš‚Í‚Ç‚¤‚à‘‚¢‚Ä‚È‚¢‚悤‚¾D"); return 0; } +/*JP pline("The wrapper reads: \"%s\"", +*/ + pline("•ï‚ÝŽ†‚Ì•¶Žš‚ð“Ç‚ñ‚¾Fu%sv", wrapper_msgs[scroll->o_id % SIZE(wrapper_msgs)]); u.uconduct.literate++; return 1; } else if (scroll->oclass != SCROLL_CLASS && scroll->oclass != SPBOOK_CLASS) { +/*JP pline(silly_thing_to, "read"); +*/ + pline(silly_thing_to, "“Ç‚Þ"); return 0; } else if (Blind && (scroll->otyp != SPE_BOOK_OF_THE_DEAD)) { const char *what = 0; if (scroll->oclass == SPBOOK_CLASS) +/*JP what = "mystic runes"; +*/ + what = "_”é“I‚ȃ‹[ƒ“•¶Žš"; else if (!scroll->dknown) +/*JP what = "formula on the scroll"; +*/ + what = "Šª•¨‚ÌŽô•¶"; if (what) { +/*JP pline("Being blind, you cannot read the %s.", what); +*/ + pline("–Ú‚ªŒ©‚¦‚È‚¢‚̂ŁC‚ ‚È‚½‚Í%s‚ð“Ç‚Þ‚±‚Æ‚ª‚Å‚«‚È‚¢D", what); return 0; } } @@ -343,20 +421,39 @@ doread() || (scroll->otyp == SCR_REMOVE_CURSE && scroll->cursed)); if (Blind) +#if 0 /*JP*/ pline(nodisappear ? "You %s the formula on the scroll." : "As you %s the formula on it, the scroll disappears.", is_silent(youmonst.data) ? "cogitate" : "pronounce"); +#else + pline(nodisappear + ? "‚ ‚È‚½‚ÍŽô•¶‚ð%s‚½D" + : "Žô•¶‚ð%s‚é‚ƁCŠª•¨‚͏Á‚¦‚½D", + is_silent(youmonst.data) ? "”O‚¶" : "¥‚¦"); +#endif else +#if 0 /*JP*/ pline(nodisappear ? "You read the scroll." : "As you read the scroll, it disappears."); +#else + pline(nodisappear ? "‚ ‚È‚½‚ÍŠª•¨‚ð“Ç‚ñ‚¾D" + : "Šª•¨‚ð“ǂނƁC‚»‚ê‚͏Á‚¦‚½D"); +#endif if (confused) { if (Hallucination) +/*JP pline("Being so trippy, you screw up..."); +*/ + pline("‚Æ‚Ä‚à‚Ö‚ë‚Ö‚ë‚Ȃ̂ŁC‚­‚µ‚á‚­‚µ‚á‚É‚µ‚Ä‚µ‚Ü‚Á‚½DDD"); else +#if 0 /*JP*/ pline("Being confused, you %s the magic words...", is_silent(youmonst.data) ? "misunderstand" : "mispronounce"); +#else + pline("¬—‚µ‚Ä‚¢‚é‚̂ŁCŽô•¶‚ðŠÔˆá‚Á‚Ä‚µ‚Ü‚Á‚½DDD"); +#endif } } if (!seffects(scroll)) { @@ -381,7 +478,10 @@ register struct obj *obj; pline1(nothing_happens); } else { /* order matters: message, shop handling, actual transformation */ +/*JP pline("%s briefly.", Yobjnam2(obj, "vibrate")); +*/ + Your("%s‚͏¬‚݂ɐU“®‚µ‚½D",xname(obj)); costly_alteration(obj, COST_UNCHRG); obj->spe = 0; if (obj->otyp == OIL_LAMP || obj->otyp == BRASS_LANTERN) @@ -393,7 +493,10 @@ STATIC_OVL void p_glow1(otmp) register struct obj *otmp; { +/*JP pline("%s briefly.", Yobjnam2(otmp, Blind ? "vibrate" : "glow")); +*/ + Your("%s‚͏¬‚Ý‚É%sD", xname(otmp), Blind ? "U“®‚µ‚½" : "‹P‚¢‚½"); } STATIC_OVL void @@ -401,8 +504,14 @@ p_glow2(otmp, color) register struct obj *otmp; register const char *color; { +#if 0 /*JP*/ pline("%s%s%s for a moment.", Yobjnam2(otmp, Blind ? "vibrate" : "glow"), Blind ? "" : " ", Blind ? "" : hcolor(color)); +#else + Your("%s‚͈êu%s%sD", xname(otmp), + Blind ? "" : jconj_adj(hcolor(color)), + Blind ? "U“®‚µ‚½" : "‹P‚¢‚½"); +#endif } /* Is the object chargeable? For purposes of inventory display; it is @@ -505,18 +614,30 @@ int curse_bless; /* destruction depends on current state, not adjustment */ if (obj->spe > rn2(7) || obj->spe <= -5) { +#if 0 /*JP*/ pline("%s momentarily, then %s!", Yobjnam2(obj, "pulsate"), otense(obj, "explode")); +#else + Your("%s‚͈êu–¬“®‚µC”š”­‚µ‚½I", xname(obj)); +#endif if (is_on) Ring_gone(obj); s = rnd(3 * abs(obj->spe)); /* amount of damage */ useup(obj); +/*JP losehp(Maybe_Half_Phys(s), "exploding ring", KILLED_BY_AN); +*/ + losehp(Maybe_Half_Phys(s), "Žw—Ö‚Ì”š”­‚Å", KILLED_BY_AN); } else { long mask = is_on ? (obj == uleft ? LEFT_RING : RIGHT_RING) : 0L; +#if 0 /*JP*/ pline("%s spins %sclockwise for a moment.", Yname2(obj), s < 0 ? "counter" : ""); +#else + Your("%s‚͈êu%sŽžŒv‰ñ‚è‚ɉñ“]‚µ‚½D", xname(obj), + s < 0 ? "”½" : ""); +#endif if (s < 0) costly_alteration(obj, COST_DECHNT); /* cause attributes and/or properties to be updated */ @@ -561,7 +682,10 @@ int curse_bless; == MAGIC_MARKER) { /* previously recharged */ obj->recharged = 1; /* override increment done above */ if (obj->spe < 3) +/*JP Your("marker seems permanently dried out."); +*/ + Your("ƒ}[ƒJ‚ÍŠ®‘S‚ÉŠ£‚«‚«‚Á‚Ä‚µ‚Ü‚Á‚½D"); else pline1(nothing_happens); } else if (is_blessed) { @@ -598,7 +722,11 @@ int curse_bless; stripspe(obj); if (obj->lamplit) { if (!Blind) +#if 0 /*JP*/ pline("%s out!", Tobjnam(obj, "go")); +#else + pline("%s‚͏Á‚¦‚½I", xname(obj)); +#endif end_burn(obj, TRUE); } } else if (is_blessed) { @@ -674,7 +802,10 @@ int curse_bless; } else { not_chargable: +/*JP You("have a feeling of loss."); +*/ + You("‚È‚É‚©‘¹‚µ‚½‹C•ª‚É‚È‚Á‚½D"); } } @@ -921,7 +1052,10 @@ boolean showmsg; { if (!cansee(x, y) || !ACCESSIBLE(levl[x][y].typ) || distu(x, y) >= 32) { if (showmsg) +/*JP You("smell rotten eggs."); +*/ + pline("‚­‚³‚Á‚½—‘‚Ì‚É‚¨‚¢‚ª‚µ‚½D"); return FALSE; } return TRUE; @@ -972,7 +1106,10 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */ known = TRUE; if (sobj->spe) pline( +/*JP "This seems to be junk mail addressed to the finder of the Eye of Larn."); +*/ + "Eye of Larn‚Ì”­Œ©ŽÒ‚Ɉ¶‚Ä‚ç‚ꂽƒSƒ~ƒƒCƒ‹‚̂悤‚¾D"); /* note to the puzzled: the game Larn actually sends you junk * mail if you win! */ @@ -987,9 +1124,15 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */ otmp = some_armor(&youmonst); if (!otmp) { +#if 0 /*JP*/ strange_feeling(sobj, !Blind ? "Your skin glows then fades." : "Your skin feels warm for a moment."); +#else + strange_feeling(sobj, !Blind + ? "‚ ‚È‚½‚͈̑̂êu‹P‚¢‚½D" + : "‚ ‚È‚½‚͈̑̂êu’g‚©‚­‚È‚Á‚½D"); +#endif sobj = 0; /* useup() in strange_feeling() */ exercise(A_CON, !scursed); exercise(A_STR, !scursed); @@ -1001,19 +1144,35 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */ otmp->oerodeproof = 0; /* for messages */ if (Blind) { otmp->rknown = FALSE; +/*JP pline("%s warm for a moment.", Yobjnam2(otmp, "feel")); +*/ + Your("%s‚͈êu’g‚©‚­‚È‚Á‚½D", xname(otmp)); } else { otmp->rknown = TRUE; +#if 0 /*JP*/ pline("%s covered by a %s %s %s!", Yobjnam2(otmp, "are"), scursed ? "mottled" : "shimmering", hcolor(scursed ? NH_BLACK : NH_GOLDEN), scursed ? "glow" : (is_shield(otmp) ? "layer" : "shield")); +#else + Your("%s‚Í%s%s%s‚Å•¢‚í‚ꂽI", xname(otmp), + jconj_adj(hcolor(scursed ? NH_BLACK : NH_GOLDEN)), + scursed ? "Œõ‚é‚Ü‚¾‚ç‚Ì" : "‚ä‚ç‚ß‚­", + scursed ? "‹P‚«" + : "ƒoƒŠƒA"); +#endif } if (new_erodeproof && (otmp->oeroded || otmp->oeroded2)) { otmp->oeroded = otmp->oeroded2 = 0; +#if 0 /*JP*/ pline("%s as good as new!", Yobjnam2(otmp, Blind ? "feel" : "look")); +#else + Your("%s‚͐V•i“¯—l‚É‚È‚Á‚½I", + xname(otmp)); +#endif } if (old_erodeproof && !new_erodeproof) { /* restore old_erodeproof before shop charges */ @@ -1040,12 +1199,18 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */ s = scursed ? -otmp->spe : otmp->spe; if (s > (special_armor ? 5 : 3) && rn2(s)) { otmp->in_use = TRUE; +#if 0 /*JP*/ pline("%s violently %s%s%s for a while, then %s.", Yname2(otmp), otense(otmp, Blind ? "vibrate" : "glow"), (!Blind && !same_color) ? " " : "", (Blind || same_color) ? "" : hcolor(scursed ? NH_BLACK : NH_SILVER), otense(otmp, "evaporate")); +#else + Your("%s‚Í‚µ‚΂炭‚ÌŠÔŒƒ‚µ‚­%s%sCö”­‚µ‚½D", xname(otmp), + (Blind || same_color) ? "" : jconj_adj(hcolor(scursed ? NH_BLACK : NH_SILVER)), + Blind ? "U“®‚µ" : "‹P‚«"); +#endif remove_worn_item(otmp, FALSE); useup(otmp); break; @@ -1055,7 +1220,10 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */ : sblessed ? rnd(3 - otmp->spe / 3) : 1; if (s >= 0 && Is_dragon_scales(otmp)) { /* dragon scales get turned into dragon scale mail */ +/*JP pline("%s merges and hardens!", Yname2(otmp)); +*/ + Your("%s‚Í—Z‡‚µŒÅ‚­‚È‚Á‚½I", xname(otmp)); setworn((struct obj *) 0, W_ARM); /* assumes same order */ otmp->otyp += GRAY_DRAGON_SCALE_MAIL - GRAY_DRAGON_SCALES; @@ -1071,6 +1239,7 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */ alter_cost(otmp, 0L); /* shop bill */ break; } +#if 0 /*JP*/ pline("%s %s%s%s%s for a %s.", Yname2(otmp), s == 0 ? "violently " : "", otense(otmp, Blind ? "vibrate" : "glow"), @@ -1078,6 +1247,14 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */ (Blind || same_color) ? "" : hcolor(scursed ? NH_BLACK : NH_SILVER), (s * s > 1) ? "while" : "moment"); +#else + Your("%s‚Í%s%s%s%sD", xname(otmp), + (s * s > 1) ? "‚µ‚΂炭‚ÌŠÔ" : "ˆêu", + s == 0 ? "Œƒ‚µ‚­" : "", + (Blind || same_color) ? "" + : jconj_adj(hcolor(sobj->cursed ? NH_BLACK : NH_SILVER)), + Blind ? "U“®‚µ‚½" : "‹P‚¢‚½"); +#endif /* [this cost handling will need updating if shop pricing is ever changed to care about curse/bless status of armor] */ if (s < 0) @@ -1097,15 +1274,23 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */ if ((otmp->spe > (special_armor ? 5 : 3)) && (special_armor || !rn2(7))) +#if 0 /*JP*/ pline("%s %s.", Yobjnam2(otmp, "suddenly vibrate"), Blind ? "again" : "unexpectedly"); +#else + Your("%s‚Í“Ë‘R%sU“®‚µ‚½D", xname(otmp), + Blind ? "‚Ü‚½" : "Žv‚¢‚à‚æ‚炸"); +#endif break; } case SCR_DESTROY_ARMOR: { otmp = some_armor(&youmonst); if (confused) { if (!otmp) { +/*JP strange_feeling(sobj, "Your bones itch."); +*/ + strange_feeling(sobj, "œ‚ªƒ€ƒYƒ€ƒY‚·‚éD"); sobj = 0; /* useup() in strange_feeling() */ exercise(A_STR, FALSE); exercise(A_CON, FALSE); @@ -1125,7 +1310,10 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */ } if (!scursed || !otmp || !otmp->cursed) { if (!destroy_arm(otmp)) { +/*JP strange_feeling(sobj, "Your skin itches."); +*/ + strange_feeling(sobj,"”畆‚ªƒ€ƒYƒ€ƒY‚·‚éD"); sobj = 0; /* useup() in strange_feeling() */ exercise(A_STR, FALSE); exercise(A_CON, FALSE); @@ -1133,7 +1321,10 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */ } else known = TRUE; } else { /* armor and scroll both cursed */ +/*JP pline("%s.", Yobjnam2(otmp, "vibrate")); +*/ + Your("%s‚͐U“®‚µ‚½D", xname(otmp)); if (otmp->spe >= -6) { otmp->spe += -1; adj_abon(otmp, -1); @@ -1145,35 +1336,69 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */ case SPE_CONFUSE_MONSTER: if (youmonst.data->mlet != S_HUMAN || scursed) { if (!HConfusion) +/*JP + You_feel("confused."); +*/ You_feel("confused."); make_confused(HConfusion + rnd(100), FALSE); } else if (confused) { if (!sblessed) { +#if 0 /*JP*/ Your("%s begin to %s%s.", makeplural(body_part(HAND)), Blind ? "tingle" : "glow ", Blind ? "" : hcolor(NH_PURPLE)); +#else + Your("%s‚Í%s%s‚Í‚¶‚ß‚½D", makeplural(body_part(HAND)), + Blind ? "" : jconj_adj(hcolor(NH_PURPLE)), + Blind ? "ƒqƒŠƒqƒŠ‚µ" : "‹P‚«"); +#endif make_confused(HConfusion + rnd(100), FALSE); } else { +#if 0 /*JP*/ pline("A %s%s surrounds your %s.", Blind ? "" : hcolor(NH_RED), Blind ? "faint buzz" : " glow", body_part(HEAD)); +#else + pline("%s%s‚ª‚ ‚È‚½‚Ì%s‚ðŽæ‚芪‚¢‚½D", + Blind ? "" : jconj_adj(hcolor(NH_RED)), + Blind ? "‚©‚·‚©‚Ƀu[ƒ“‚Ɩ‚é‚à‚Ì" : "‹P‚­‚à‚Ì", + body_part(HEAD)); +#endif make_confused(0L, TRUE); } } else { if (!sblessed) { +#if 0 /*JP*/ Your("%s%s %s%s.", makeplural(body_part(HAND)), Blind ? "" : " begin to glow", Blind ? (const char *) "tingle" : hcolor(NH_RED), u.umconf ? " even more" : ""); +#else + Your("%s‚Í%s%s%sD", makeplural(body_part(HAND)), + u.umconf ? "­‚µ" : "", + Blind ? (const char *) "ƒqƒŠƒqƒŠ‚µ‚½" : jconj_adj(hcolor(NH_RED)), + Blind ? "" : "‹P‚«‚Í‚¶‚ß‚½"); +#endif u.umconf++; } else { if (Blind) +#if 0 /*JP*/ Your("%s tingle %s sharply.", makeplural(body_part(HAND)), u.umconf ? "even more" : "very"); +#else + Your("%s‚Í%sƒsƒŠƒsƒŠ‚·‚éD", makeplural(body_part(HAND)), + u.umconf ? "­‚µ" : "‚Æ‚Ä‚à"); +#endif else +#if 0 /*JP*/ Your("%s glow a%s brilliant %s.", makeplural(body_part(HAND)), u.umconf ? "n even more" : "", hcolor(NH_RED)); +#else + Your("%s‚Í%s%s–¾‚é‚­‹P‚¢‚½D", + makeplural(body_part(HAND)), + u.umconf ? "­‚µ" : "", jconj_adj(hcolor(NH_RED))); +#endif /* after a while, repeated uses become less effective */ if (u.umconf >= 40) u.umconf++; @@ -1201,30 +1426,53 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */ } } if (otyp == SCR_SCARE_MONSTER || !ct) +#if 0 /*JP*/ You_hear("%s %s.", (confused || scursed) ? "sad wailing" : "maniacal laughter", !ct ? "in the distance" : "close by"); +#else + You_hear("‰“‚­‚Å%s‚ð•·‚¢‚½D", + (confused || sobj->cursed) ? "”ß‚µ‚­‹ƒ‚«‹©‚Ԑº" + : "‹¶‚Á‚½‚悤‚ɏ΂¤º"); +#endif break; } case SCR_BLANK_PAPER: if (Blind) +/*JP You("don't remember there being any magic words on this scroll."); +*/ + You("Šª•¨‚ÉŽô•¶‚ª‘‚¢‚Ä‚È‚©‚Á‚½‚±‚Æ‚ðŽv‚¢‚¾‚µ‚½D"); else +/*JP pline("This scroll seems to be blank."); +*/ + pline("‚±‚ÌŠª•¨‚ɂ͉½‚à‘‚¢‚Ä‚È‚¢‚悤‚ÉŒ©‚¦‚éD"); known = TRUE; break; case SCR_REMOVE_CURSE: case SPE_REMOVE_CURSE: { register struct obj *obj; +#if 0 /*JP*/ You_feel(!Hallucination ? (!confused ? "like someone is helping you." : "like you need some help.") : (!confused ? "in touch with the Universal Oneness." : "the power of the Force against you!")); +#else + You(!Hallucination + ? (!confused ? "’N‚©‚ª‚ ‚È‚½‚ð•‚¯‚Ä‚¢‚é‚悤‚È‹C‚ª‚µ‚½D" + : "Ž©•ª‚ª•‚¯‚ð•K—v‚Æ‚µ‚Ä‚¢‚é‚悤‚È‹C‚ª‚µ‚½D") + : (!confused ? "‰F’ˆ’²˜a‚ÌŒ´—‚ɐG‚ê‚Ä‚¢‚é‚悤‚È‹C‚ª‚µ‚½D" + : "ƒtƒH[ƒX‚Ì—Í‚ª‚ ‚È‚½‚É‚Í‚Þ‚©‚Á‚Ä‚¢‚é‚悤‚ÉŠ´‚¶‚½I")); +#endif if (scursed) { +/*JP pline_The("scroll disintegrates."); +*/ + pline("Šª•¨‚Í•²X‚É‚È‚Á‚½D"); } else { for (obj = invent; obj; obj = obj->nobj) { long wornmask; @@ -1285,7 +1533,10 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */ unpunish(); if (u.utrap && u.utraptype == TT_BURIEDBALL) { buried_ball_to_freedom(); +/*JP pline_The("clasp on your %s vanishes.", body_part(LEG)); +*/ + pline_The("%s‚Ì‹à‹ï‚ªÁ‚¦‚½D", body_part(LEG)); } update_inventory(); break; @@ -1310,18 +1561,32 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */ uwep->oerodeproof = 0; /* for messages */ if (Blind) { uwep->rknown = FALSE; +/*JP Your("weapon feels warm for a moment."); +*/ + pline("•Ší‚ªˆêu’g‚©‚­‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½D"); } else { uwep->rknown = TRUE; +#if 0 /*JP*/ pline("%s covered by a %s %s %s!", Yobjnam2(uwep, "are"), scursed ? "mottled" : "shimmering", hcolor(scursed ? NH_PURPLE : NH_GOLDEN), scursed ? "glow" : "shield"); +#else + Your("%s‚Í%s%s%s‚Å•¢‚í‚ꂽI", xname(uwep), + jconj_adj(hcolor(scursed ? NH_PURPLE : NH_GOLDEN)), + scursed ? "Œõ‚é‚Ü‚¾‚ç‚Ì" : "‚ä‚ç‚ß‚­", + scursed ? "‹P‚«" : "ƒoƒŠƒA"); +#endif } if (new_erodeproof && (uwep->oeroded || uwep->oeroded2)) { uwep->oeroded = uwep->oeroded2 = 0; +#if 0 /*JP*/ pline("%s as good as new!", Yobjnam2(uwep, Blind ? "feel" : "look")); +#else + pline("%s‚͐V•i“¯—l‚É‚È‚Á‚½I", xname(uwep)); +#endif } if (old_erodeproof && !new_erodeproof) { /* restore old_erodeproof before shop charges */ @@ -1381,7 +1646,10 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */ } break; case SCR_GENOCIDE: if (!already_known) +/*JP You("have found a scroll of genocide!"); +*/ + pline("‚±‚ê‚Í‹sŽE‚ÌŠª•¨‚¾I"); known = TRUE; if (sblessed) do_class_genocide(); @@ -1429,11 +1697,17 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */ useup(sobj); sobj = 0; /* it's gone */ if (confused) +/*JP You("identify this as an identify scroll."); +*/ + You("‚±‚ê‚ÍŽ¯•Ê‚ÌŠª•¨‚¾‚ÆŽ¯•Ê‚µ‚½D"); else if (!already_known || !invent) /* force feedback now if invent became empty after using up this scroll */ +/*JP pline("This is an identify scroll."); +*/ + pline("‚±‚ê‚ÍŽ¯•Ê‚ÌŠª•¨‚¾D"); if (!already_known) (void) learnscrolltyp(SCR_IDENTIFY); /*FALLTHRU*/ @@ -1457,10 +1731,16 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */ case SCR_CHARGING: if (confused) { if (scursed) { +/*JP You_feel("discharged."); +*/ + You_feel("•úo‚³‚ꂽ‹C‚ª‚·‚éD"); u.uen = 0; } else { +/*JP You_feel("charged up!"); +*/ + You_feel("[“U‚³‚ꂽ‚悤‚È‹C‚ª‚·‚éI"); u.uen += d(sblessed ? 6 : 4, 4); if (u.uen > u.uenmax) /* if current energy is already at */ u.uenmax = u.uen; /* or near maximum, increase maximum */ @@ -1472,7 +1752,10 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */ } /* known = TRUE; -- handled inline here */ if (!already_known) { +/*JP pline("This is a charging scroll."); +*/ + pline("‚±‚ê‚͏[“U‚ÌŠª•¨‚¾I"); learnscroll(sobj); } /* use it up now to prevent it from showing in the @@ -1486,11 +1769,20 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */ break; case SCR_MAGIC_MAPPING: if (level.flags.nommap) { +/*JP Your("mind is filled with crazy lines!"); +*/ + Your("S‚É‚½‚¾‚È‚ç‚ʐüIüIüI‚ª•‚‚Ñ‚ ‚ª‚Á‚½I"); if (Hallucination) +/*JP pline("Wow! Modern art."); +*/ + pline("ƒƒHIƒ‚ƒ_ƒ“ƒA[ƒg‚¾I"); else +/*JP Your("%s spins in bewilderment.", body_part(HEAD)); +*/ + You("“–˜f‚µ‚Ä–Ú‚ª‚Ü‚í‚Á‚½D"); make_confused(HConfusion + rnd(30), FALSE); break; } @@ -1506,19 +1798,29 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */ known = TRUE; case SPE_MAGIC_MAPPING: if (level.flags.nommap) { +#if 0 /*JP*/ Your("%s spins as %s blocks the spell!", body_part(HEAD), something); +#else + You("‰½‚©‚ªŽô•¶‚ð‚³‚¦‚¬‚èC–Ú‚ª‚Ü‚í‚Á‚½I"); +#endif make_confused(HConfusion + rnd(30), FALSE); break; } +/*JP pline("A map coalesces in your mind!"); +*/ + pline("’n}‚ª‚ ‚È‚½‚̐S‚É—Z‡‚µ‚½I"); cval = (scursed && !confused); if (cval) HConfusion = 1; /* to screw up map */ do_mapping(); if (cval) { HConfusion = 0; /* restore */ +/*JP pline("Unfortunately, you can't grasp the details."); +*/ + pline("Žc”O‚È‚ª‚çC‚ ‚È‚½‚͏ڍׂ𓾂邱‚Æ‚ª‚Å‚«‚È‚©‚Á‚½D"); } break; case SCR_AMNESIA: @@ -1526,14 +1828,26 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */ forget((!sblessed ? ALL_SPELLS : 0) | (!confused || scursed ? ALL_MAP : 0)); if (Hallucination) /* Ommmmmm! */ +/*JP Your("mind releases itself from mundane concerns."); +*/ + Your("S‚Í•½–}‚È—˜ŠQŠÖŒW‚©‚ç‰ð•ú‚³‚ꂽD"); else if (!strncmpi(plname, "Maud", 4)) pline( +/*JP "As your mind turns inward on itself, you forget everything else."); +*/ + "‚ ‚È‚½‚̐S‚Í“à‘¤‚ÉŒü‚«C‘S‚Ä‚ð–Y‚ê‚Ä‚µ‚Ü‚Á‚½D"); else if (rn2(2)) +/*JP pline("Who was that Maud person anyway?"); +*/ + pline("Maud‚Á‚Ä–º‚Í‚¢‚Á‚½‚¢’N‚¾‚¢H"); else +/*JP pline("Thinking of Maud you forget everything else."); +*/ + pline("Maud‚ðl‚¦‚邱‚ƈȊOC‚ ‚È‚½‚Í‘S‚Ä‚ð–Y‚ê‚Ä‚µ‚Ü‚Á‚½D"); exercise(A_WIS, FALSE); break; case SCR_FIRE: @@ -1546,22 +1860,40 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */ if (Fire_resistance) { shieldeff(u.ux, u.uy); if (!Blind) +/*JP pline("Oh, look, what a pretty fire in your %s.", +*/ + pline("‚í‚Ÿ‚²‚ç‚ñD¬‚³‚ȉ΂ª%s‚É‚ ‚éD", makeplural(body_part(HAND))); else +/*JP You_feel("a pleasant warmth in your %s.", +*/ + You_feel("%s‚Ì’†‚ɉõ“K‚È’g‚©‚³‚ðŠ´‚¶‚½D", makeplural(body_part(HAND))); } else { +/*JP pline_The("scroll catches fire and you burn your %s.", +*/ + pline("Šª•¨‚ɉ΂ª”R‚¦‚¤‚‚èC‚ ‚È‚½‚Ì%s‚ðÄ‚¢‚½D", makeplural(body_part(HAND))); +/*JP losehp(1, "scroll of fire", KILLED_BY_AN); +*/ + losehp(1, "‰Š‚ÌŠª•¨‚Å", KILLED_BY_AN); } break; } if (Underwater) { +/*JP pline_The("water around you vaporizes violently!"); +*/ + pline("‚ ‚È‚½‚̉ñ‚è‚̐…‚Í•¦“«‚µ‚½I"); } else { +/*JP pline_The("scroll erupts in a tower of flame!"); +*/ + pline("Šª•¨‚©‚ç‰Î’Œ‚ª—§‚¿¸‚Á‚½I"); iflags.last_msg = PLNMSG_TOWER_OF_FLAME; /* for explode() */ burn_away_slime(); } @@ -1577,10 +1909,18 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */ /* Identify the scroll */ if (u.uswallow) +/*JP You_hear("rumbling."); +*/ + You_hear("ƒSƒƒSƒ‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D"); else +#if 0 /*JP*/ pline_The("%s rumbles %s you!", ceiling(u.ux, u.uy), sblessed ? "around" : "above"); +#else + pline("‚ ‚È‚½‚Ì%s‚Ì%s‚©‚çƒSƒƒSƒ‚Ɖ¹‚ª•·‚±‚¦‚Ä‚«‚½I", + sblessed ? "‚Ü‚í‚è" : "^ã", ceiling(u.ux,u.uy)); +#endif known = 1; sokoban_guilt(); @@ -1608,7 +1948,10 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */ case SCR_PUNISHMENT: known = TRUE; if (confused || sblessed) { +/*JP You_feel("guilty."); +*/ + You("ß‚ðŠ´‚¶‚½D"); break; } punish(sobj); @@ -1617,14 +1960,24 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */ coord cc; if (!already_known) +/*JP You("have found a scroll of stinking cloud!"); +*/ + You("ˆ«L‰_‚ÌŠª•¨‚ð”­Œ©‚µ‚½I"); known = TRUE; +#if 0 /*JP*/ pline("Where do you want to center the %scloud?", already_known ? "stinking " : ""); +#else + pline("‰_‚Ì’†S‚ð‚Ç‚±‚É‚µ‚Ü‚·‚©H"); +#endif cc.x = u.ux; cc.y = u.uy; getpos_sethilite(display_stinking_cloud_positions); +/*JP if (getpos(&cc, TRUE, "the desired position") < 0) { +*/ + if (getpos(&cc, TRUE, "‘_‚¤êŠ") < 0) { pline1(Never_mind); break; } @@ -1660,27 +2013,42 @@ boolean confused, helmet_protects, byu, skip_uswallow; otmp2->owt = weight(otmp2); if (!amorphous(youmonst.data) && !Passes_walls && !noncorporeal(youmonst.data) && !unsolid(youmonst.data)) { +/*JP You("are hit by %s!", doname(otmp2)); +*/ + pline("%s‚ª–½’†‚µ‚½I", doname(otmp2)); dmg = dmgval(otmp2, &youmonst) * otmp2->quan; if (uarmh && helmet_protects) { if (is_metallic(uarmh)) { +/*JP pline("Fortunately, you are wearing a hard helmet."); +*/ + pline("K‰^‚É‚àC‚ ‚È‚½‚͌ł¢Š•‚ðg‚ɂ‚¯‚Ä‚¢‚éD"); if (dmg > 2) dmg = 2; } else if (flags.verbose) { +/*JP pline("%s does not protect you.", Yname2(uarmh)); +*/ + Your("%s‚Å‚ÍŽç‚ê‚È‚¢D", xname(uarmh)); } } } else dmg = 0; /* Must be before the losehp(), for bones files */ +/*JP if (!flooreffects(otmp2, u.ux, u.uy, "fall")) { +*/ + if (!flooreffects(otmp2, u.ux, u.uy, "—Ž‚¿‚é")) { place_object(otmp2, u.ux, u.uy); stackobj(otmp2); newsym(u.ux, u.uy); } if (dmg) +/*JP losehp(Maybe_Half_Phys(dmg), "scroll of earth", KILLED_BY_AN); +*/ + losehp(Maybe_Half_Phys(dmg), "‘å’n‚ÌŠª•¨‚Å", KILLED_BY_AN); } boolean @@ -1706,7 +2074,10 @@ boolean confused, byu; int mdmg; if (cansee(mtmp->mx, mtmp->my)) { +/*JP pline("%s is hit by %s!", Monnam(mtmp), doname(otmp2)); +*/ + pline("%s‚ª%s‚É–½’†‚µ‚½I", doname(otmp2), Monnam(mtmp)); if (mtmp->minvis && !canspotmon(mtmp)) map_invisible(mtmp->mx, mtmp->my); } else if (u.uswallow && mtmp == u.ustuck) @@ -1718,16 +2089,27 @@ boolean confused, byu; if (helmet) { if (is_metallic(helmet)) { if (canspotmon(mtmp)) +/*JP pline("Fortunately, %s is wearing a hard helmet.", +*/ + pline("K‰^‚É‚àC%s‚͌ł¢Š•‚ðg‚ɂ‚¯‚Ä‚¢‚éD", mon_nam(mtmp)); else if (!Deaf) +/*JP You_hear("a clanging sound."); +*/ + You_hear("ƒKƒ‰ƒ“ƒKƒ‰ƒ“‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D"); if (mdmg > 2) mdmg = 2; } else { if (canspotmon(mtmp)) +#if 0 /*JP*/ pline("%s's %s does not protect %s.", Monnam(mtmp), xname(helmet), mhim(mtmp)); +#else + pline("%s‚Ì%s‚Å‚ÍŽç‚ê‚È‚¢D", Monnam(mtmp), + xname(helmet)); +#endif } } mtmp->mhp -= mdmg; @@ -1746,7 +2128,10 @@ boolean confused, byu; return 1; } /* Drop the rock/boulder to the floor */ +/*JP if (!flooreffects(otmp2, x, y, "fall")) { +*/ + if (!flooreffects(otmp2, x, y, "—Ž‚¿‚é")) { place_object(otmp2, x, y); stackobj(otmp2); newsym(x, y); /* map the rock */ @@ -1760,7 +2145,10 @@ wand_explode(obj, chg) struct obj *obj; int chg; /* recharging */ { +/*JP const char *expl = !chg ? "suddenly" : "vibrates violently and"; +*/ + const char *expl = !chg ? "“Ë‘R" : "Œƒ‚µ‚­U“®‚µC"; int dmg, n, k; /* number of damage dice */ @@ -1796,8 +2184,15 @@ int chg; /* recharging */ /* inflict damage and destroy the wand */ dmg = d(n, k); obj->in_use = TRUE; /* in case losehp() is fatal (or --More--^C) */ +#if 0 /*JP*/ pline("%s %s explodes!", Yname2(obj), expl); +#else + pline("%s‚Í%s”š”­‚µ‚½I", xname(obj), expl); +#endif +/*JP losehp(Maybe_Half_Phys(dmg), "exploding wand", KILLED_BY_AN); +*/ + losehp(Maybe_Half_Phys(dmg), "ñ‚Ì”š”­‚Å", KILLED_BY_AN); useup(obj); /* obscure side-effect */ exercise(A_STR, FALSE); @@ -1850,13 +2245,22 @@ struct obj *obj; if (!Blind) { if (u.uswallow) { +/*JP pline("It seems even darker in here than before."); +*/ + pline("‘O‚æ‚èˆÃ‚­‚È‚Á‚½‚悤‚ÉŒ©‚¦‚éD"); } else { if (uwep && artifact_light(uwep) && uwep->lamplit) +/*JP pline("Suddenly, the only light left comes from %s!", +*/ + pline("“Ë‘RC–¾‚©‚肪%s‚¾‚¯‚É‚È‚Á‚½I", the(xname(uwep))); else +/*JP You("are surrounded by darkness!"); +*/ + You("ˆÃˆÅ‚É•¢‚í‚ꂽI"); } } @@ -1869,14 +2273,28 @@ struct obj *obj; if (Blind) ; /* no feedback */ else if (is_animal(u.ustuck->data)) +#if 0 /*JP*/ pline("%s %s is lit.", s_suffix(Monnam(u.ustuck)), mbodypart(u.ustuck, STOMACH)); +#else + pline("%s‚Ì%s‚Í–¾‚é‚­‚È‚Á‚½D", Monnam(u.ustuck), + mbodypart(u.ustuck, STOMACH)); +#endif else if (is_whirly(u.ustuck->data)) +/*JP pline("%s shines briefly.", Monnam(u.ustuck)); +*/ + pline("%s‚Í‚¿‚å‚Á‚Æ‹P‚¢‚½D", Monnam(u.ustuck)); else +/*JP pline("%s glistens.", Monnam(u.ustuck)); +*/ + pline("%s‚Í‚«‚ç‚«‚ç‹P‚¢‚½D", Monnam(u.ustuck)); } else if (!Blind) +/*JP pline("A lit field surrounds you!"); +*/ + pline("“”‚肪‚ ‚È‚½‚ðŽæ‚èˆÍ‚ñ‚¾I"); } /* No-op when swallowed or in water */ @@ -1954,12 +2372,20 @@ do_class_genocide() return; } do { +/*JP getlin("What class of monsters do you wish to genocide?", buf); +*/ + getlin("‚ǂ̃Nƒ‰ƒX‚É‘®‚·‚é‰ö•¨‚ð‹sŽE‚µ‚Ü‚·‚©H[•¶Žš‚ð“ü‚ê‚Ä‚Ë]", buf); (void) mungspaces(buf); } while (!*buf); /* choosing "none" preserves genocideless conduct */ +#if 0 /*JP*/ if (*buf == '\033' || !strcmpi(buf, "none") || !strcmpi(buf, "nothing")) +#else + if (*buf == '\033' || !strcmpi(buf, "‚È‚µ") + || !strcmpi(buf, "–³‚µ")) +#endif return; class = name_to_monclass(buf, (int *) 0); @@ -1979,9 +2405,15 @@ do_class_genocide() if (!goodcnt && class != mons[urole.malenum].mlet && class != mons[urace.malenum].mlet) { if (gonecnt) +/*JP pline("All such monsters are already nonexistent."); +*/ + pline("‚»‚̉ö•¨‚Í‚à‚¤‚¢‚È‚¢D"); else if (immunecnt || class == S_invisible) +/*JP You("aren't permitted to genocide such monsters."); +*/ + You("‚»‚̉ö•¨‚ð‹sŽE‚·‚邱‚Æ‚Í‚Å‚«‚È‚¢D"); else if (wizard && buf[0] == '*') { register struct monst *mtmp, *mtmp2; @@ -1993,11 +2425,18 @@ do_class_genocide() mongone(mtmp); gonecnt++; } +/*JP pline("Eliminated %d monster%s.", gonecnt, plur(gonecnt)); +*/ + pline("%d‚̉ö•¨‚ðœ‚¢‚½D", gonecnt); return; } else +#if 0 /*JP*/ pline("That %s does not represent any monster.", strlen(buf) == 1 ? "symbol" : "response"); +#else + pline("‚»‚̂悤‚ȉö•¨‚Í‚¢‚È‚¢D"); +#endif continue; } @@ -2019,12 +2458,18 @@ do_class_genocide() reset_rndmonst(i); kill_genocided_monsters(); update_inventory(); /* eggs & tins */ +/*JP pline("Wiped out all %s.", nam); +*/ + pline("%s‚ð‘S‚Ä”rœ‚µ‚½D", nam); if (Upolyd && i == u.umonnum) { u.mh = -1; if (Unchanging) { if (!feel_dead++) +/*JP You("die."); +*/ + You("Ž€‚É‚Ü‚µ‚½DDD"); /* finish genociding this class of monsters before ultimately dying */ gameover = TRUE; @@ -2038,16 +2483,25 @@ do_class_genocide() u.uhp = -1; if (Upolyd) { if (!feel_dead++) +/*JP You_feel("dead inside."); +*/ + You("°‚ªŽ€‚ñ‚¾‚悤‚È‹C‚ª‚µ‚½D"); } else { if (!feel_dead++) +/*JP You("die."); +*/ + You("Ž€‚É‚Ü‚µ‚½DDD"); gameover = TRUE; } } } else if (mvitals[i].mvflags & G_GENOD) { if (!gameover) +/*JP pline("All %s are already nonexistent.", nam); +*/ + pline("%s‚ÍŠù‚É‚¢‚È‚¢D", nam); } else if (!gameover) { /* suppress feedback about quest beings except for those applicable to our own role */ @@ -2069,16 +2523,24 @@ do_class_genocide() if (i == PM_HIGH_PRIEST) uniq = FALSE; +#if 0 /*JP*/ You("aren't permitted to genocide %s%s.", (uniq && !named) ? "the " : "", (uniq || named) ? mons[i].mname : nam); +#else + You("%s‚ð‹sŽE‚Å‚«‚È‚¢D", + (uniq || named) ? mons[i].mname : nam); +#endif } } } } if (gameover || u.uhp == -1) { killer.format = KILLED_BY_AN; +/*JP Strcpy(killer.name, "scroll of genocide"); +*/ + Strcpy(killer.name, "‹sŽE‚ÌŠª•¨‚Å"); if (gameover) done(GENOCIDED); } @@ -2114,11 +2576,17 @@ int how; pline1(thats_enough_tries); return; } +/*JP getlin("What monster do you want to genocide? [type the name]", +*/ + getlin("‚ǂ̉ö•¨‚ð‹sŽE‚µ‚Ü‚·‚©H[–¼‘O‚ð“ü‚ê‚Ä‚Ë]", buf); (void) mungspaces(buf); /* choosing "none" preserves genocideless conduct */ +/*JP if (!strcmpi(buf, "none") || !strcmpi(buf, "nothing")) { +*/ + if (!strcmpi(buf, "‚È‚µ") || !strcmpi(buf, "–³‚µ")) { /* ... but no free pass if cursed */ if (!(how & REALLY)) { ptr = rndmonst(); @@ -2132,8 +2600,13 @@ int how; mndx = name_to_mon(buf); if (mndx == NON_PM || (mvitals[mndx].mvflags & G_GENOD)) { +#if 0 /*JP*/ pline("Such creatures %s exist in this world.", (mndx == NON_PM) ? "do not" : "no longer"); +#else + pline("‚»‚̂悤‚Ȑ¶‚«•¨‚Í%s‚±‚̐¢ŠE‚É‘¶Ý‚µ‚È‚¢D", + (mndx == NON_PM) ? "" : "‚à‚Í‚â"); +#endif continue; } ptr = &mons[mndx]; @@ -2155,8 +2628,14 @@ int how; * circumstances */ if (flags.verbose) pline( +/*JP "A thunderous voice booms through the caverns:"); +*/ + "—‹‚̂悤‚Ȑº‚ª“´ŒA‚É‹¿‚¢‚½F"); +/*JP verbalize("No, mortal! That will not be done."); +*/ + pline("u’è–½‚ÌŽÒ‚æI‚»‚Ì–]‚Ý‚Í‚©‚È‚¤‚Ü‚¢Dv"); } continue; } @@ -2167,7 +2646,10 @@ int how; } } +/*JP which = "all "; +*/ + which = "‘S‚Ä"; if (Hallucination) { if (Upolyd) Strcpy(buf, youmonst.data->mname); @@ -2179,13 +2661,20 @@ int how; } else { Strcpy(buf, ptr->mname); /* make sure we have standard singular */ if ((ptr->geno & G_UNIQ) && ptr != &mons[PM_HIGH_PRIEST]) +/*JP which = !type_is_pname(ptr) ? "the " : ""; +*/ + which = !type_is_pname(ptr) ? "" : ""; } if (how & REALLY) { /* setting no-corpse affects wishing and random tin generation */ mvitals[mndx].mvflags |= (G_GENOD | G_NOCORPSE); +#if 0 /*JP*/ pline("Wiped out %s%s.", which, (*which != 'a') ? buf : makeplural(buf)); +#else + pline("%s‚ð%sˆê‘|‚µ‚½D", buf, which); +#endif if (killplayer) { /* might need to wipe out dual role */ @@ -2201,14 +2690,23 @@ int how; u.uhp = -1; if (how & PLAYER) { killer.format = KILLED_BY; +/*JP Strcpy(killer.name, "genocidal confusion"); +*/ + Strcpy(killer.name, "¬—‚É‚æ‚鎩‹s“I‹sŽE‚Å"); } else if (how & ONTHRONE) { /* player selected while on a throne */ killer.format = KILLED_BY_AN; +/*JP Strcpy(killer.name, "imperious order"); +*/ + Strcpy(killer.name, "˜ü–‚È–½—ß‚Å"); } else { /* selected player deliberately, not confused */ killer.format = KILLED_BY_AN; +/*JP Strcpy(killer.name, "scroll of genocide"); +*/ + Strcpy(killer.name, "‹sŽE‚ÌŠª•¨‚Å"); } /* Polymorphed characters will die as soon as they're rehumanized. @@ -2216,7 +2714,10 @@ int how; /* KMH -- Unchanging prevents rehumanization */ if (Upolyd && ptr != youmonst.data) { delayed_killer(POLYMORPH, killer.format, killer.name); +/*JP You_feel("dead inside."); +*/ + You("°‚ªŽ€‚ñ‚¾‚悤‚È‹C‚ª‚µ‚½D"); } else done(GENOCIDED); } else if (ptr == youmonst.data) { @@ -2241,8 +2742,12 @@ int how; /* accumulated 'cnt' doesn't take groups into account; assume bringing in new mon(s) didn't remove any old ones */ cnt = monster_census(FALSE) - census; +#if 0 /*JP*/ pline("Sent in %s%s.", (cnt > 1) ? "some " : "", (cnt > 1) ? makeplural(buf) : an(buf)); +#else + pline("%s‚ª‘—‚ç‚ê‚Ä‚«‚½D", buf); +#endif } else pline1(nothing_happens); } @@ -2257,16 +2762,25 @@ struct obj *sobj; /* KMH -- Punishment is still okay when you are riding */ if (!reuse_ball) +/*JP You("are being punished for your misbehavior!"); +*/ + You("•sì–@‚Ì‚½‚ß”±‚ðŽó‚¯‚½I"); if (Punished) { +/*JP Your("iron ball gets heavier."); +*/ + Your("“S‹…‚Í‚³‚ç‚ɏd‚­‚È‚Á‚½D"); uball->owt += 160 * (1 + sobj->cursed); return; } if (amorphous(youmonst.data) || is_whirly(youmonst.data) || unsolid(youmonst.data)) { if (!reuse_ball) { +/*JP pline("A ball and chain appears, then falls away."); +*/ + pline("“S‹…‚ƍ½‚ªŒ»‚í‚ꂽ‚ªC‚·‚é‚Á‚Æ”²‚¯‚½D"); dropy(mkobj(BALL_CLASS, TRUE)); } else { dropy(reuse_ball); @@ -2363,23 +2877,44 @@ create_particular() monclass = MAXMCLASSES; which = urole.malenum; /* an arbitrary index into mons[] */ maketame = makepeaceful = makehostile = FALSE; +/*JP getlin("Create what kind of monster? [type the name or symbol]", buf); +*/ + getlin("‚Ç‚ÌŽí‚̉ö•¨‚ðì‚è‚Ü‚·‚©H[–¼‘O‚ð“ü‚ê‚Ä‚Ë]", buf); bufp = mungspaces(buf); if (*bufp == '\033') return FALSE; /* allow the initial disposition to be specified */ +#if 0 /*JP*/ if (!strncmpi(bufp, "tame ", 5)) { bufp += 5; +#else + if (!strncmpi(bufp, "Žè‚È‚¸‚¯‚ç‚ꂽ", 14)) { + bufp += 14; +#endif maketame = TRUE; +#if 0 /*JP*/ } else if (!strncmpi(bufp, "peaceful ", 9)) { bufp += 9; +#else + } else if (!strncmpi(bufp, "—FD“I‚È", 8)) { + bufp += 8; +#endif makepeaceful = TRUE; +#if 0 /*JP*/ } else if (!strncmpi(bufp, "hostile ", 8)) { bufp += 8; +#else + } else if (!strncmpi(bufp, "“G‘ΓI‚È", 8)) { + bufp += 8; +#endif makehostile = TRUE; } /* decide whether a valid monster was chosen */ +/*JP if (wizard && (!strcmp(bufp, "*") || !strcmp(bufp, "random"))) { +*/ + if (wizard && (!strcmp(bufp, "*") || !strcmp(bufp, "ƒ‰ƒ“ƒ_ƒ€"))) { randmonst = TRUE; break; } @@ -2395,7 +2930,10 @@ create_particular() break; } /* no good; try again... */ +/*JP pline("I've never heard of such monsters."); +*/ + pline("‚»‚̂悤‚ȉö•¨‚Í•·‚¢‚½‚±‚Æ‚ª‚È‚¢D"); } while (--tryct > 0); if (!tryct) { @@ -2405,8 +2943,13 @@ create_particular() firstchoice = which; if (cant_revive(&which, FALSE, (struct obj *) 0)) { /* wizard mode can override handling of special monsters */ +#if 0 /*JP*/ Sprintf(buf, "Creating %s instead; force %s?", mons[which].mname, mons[firstchoice].mname); +#else + Sprintf(buf, "‘ã‚í‚è‚É%s‚ªì‚ç‚ê‚Ü‚·G%s‚É‚·‚éH", + mons[which].mname, mons[firstchoice].mname); +#endif if (yn(buf) == 'y') which = firstchoice; } diff --git a/src/region.c b/src/region.c index 6699716..8589100 100644 --- a/src/region.c +++ b/src/region.c @@ -931,13 +931,26 @@ genericptr_t p2; make_blinded(1L, FALSE); } if (!Poison_resistance) { +#if 0 /*JP*/ pline("%s is burning your %s!", Something, makeplural(body_part(LUNG))); +#else + pline("‰½‚©–­‚È‚à‚Ì‚ð‹z‚¢‚±‚ñ‚¾I"); +#endif +/*JP You("cough and spit blood!"); +*/ + You("ŠP‚«‚±‚݁CŒŒ‚ð“f‚¢‚½I"); +/*JP losehp(Maybe_Half_Phys(rnd(dam) + 5), "gas cloud", KILLED_BY_AN); +*/ + losehp(Maybe_Half_Phys(rnd(dam) + 5), "ƒKƒX‰_‚Å", KILLED_BY_AN); return FALSE; } else { +/*JP You("cough!"); +*/ + You("ŠP‚«‚±‚ñ‚¾I"); return FALSE; } } else { /* A monster is inside the cloud */ @@ -947,7 +960,10 @@ genericptr_t p2; if (!(nonliving(mtmp->data) || is_vampshifter(mtmp)) && !breathless(mtmp->data)) { if (cansee(mtmp->mx, mtmp->my)) +/*JP pline("%s coughs!", Monnam(mtmp)); +*/ + pline("%s‚ÍŠP‚«‚±‚ñ‚¾I", Monnam(mtmp)); if (heros_fault(reg)) setmangry(mtmp); if (haseyes(mtmp->data) && mtmp->mcansee) { @@ -961,7 +977,10 @@ genericptr_t p2; if (heros_fault(reg)) killed(mtmp); else +/*JP monkilled(mtmp, "gas cloud", AD_DRST); +*/ + monkilled(mtmp, "ƒKƒX‰_", AD_DRST); if (mtmp->mhp <= 0) { /* not lifesaved */ return TRUE; } diff --git a/src/restore.c b/src/restore.c index fdd76a0..d5d1d39 100644 --- a/src/restore.c +++ b/src/restore.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" #include "lev.h" #include "tcap.h" /* for TERMLIB and ASCIIGRAPH */ @@ -133,7 +138,10 @@ boolean quietly; otmp2 = otmp->nobj; if (otmp->in_use) { if (!quietly) +/*JP pline("Finishing off %s...", xname(otmp)); +*/ + pline("%s‚ðŽg‚¢I‚¦‚½DDD", xname(otmp)); useup(otmp); } } @@ -526,7 +534,10 @@ unsigned int *stuckid, *steedid; && uid != (unsigned long) getuid()) { /* strange ... */ /* for wizard mode, issue a reminder; for others, treat it as an attempt to cheat and refuse to restore this file */ +/*JP pline("Saved game was not yours."); +*/ + pline("ƒZ[ƒu‚³‚ꂽƒQ[ƒ€‚Í‚ ‚È‚½‚Ì‚à‚Ì‚Å‚Í‚È‚¢D"); if (!wizard) return FALSE; } @@ -579,7 +590,11 @@ unsigned int *stuckid, *steedid; #endif if (u.uhp <= 0 && (!Upolyd || u.mh <= 0)) { u.ux = u.uy = 0; /* affects pline() [hence You()] */ +#if 0 /*JP*/ You("were not healthy enough to survive restoration."); +#else + You("ÄŠJ‚Å‚«‚é‚Ù‚ÇŒ’N‚Å‚Í‚È‚©‚Á‚½D"); +#endif /* wiz1_level.dlevel is used by mklev.c to see if lots of stuff is * uninitialized, so we only have to set it and not the other stuff. */ @@ -718,7 +733,10 @@ xchar ltmp; /* The savelev can't proceed because the size required * is greater than the available disk space. */ +/*JP pline("Not enough space on `%s' to restore your game.", levels); +*/ + pline("ƒQ[ƒ€‚ðÄŠJ‚·‚邽‚ß‚Ì'%s'‚Ì‚½‚߂̃Xƒy[ƒX‚ª‚È‚¢D", levels); /* Remove levels and bones that may have been created. */ @@ -743,7 +761,10 @@ xchar ltmp; return dorecover(fd); /* 0 or 1 */ } #endif /* ?AMIGA */ +/*JP pline("Be seeing you..."); +*/ + pline("‚Ü‚½‰ï‚¢‚Ü‚µ‚傤DDD"); terminate(EXIT_SUCCESS); } #endif /* MFLOPPY */ @@ -802,10 +823,17 @@ register int fd; clear_nhwindow(WIN_MAP); #endif clear_nhwindow(WIN_MESSAGE); +#if 0 /*JP*/ You("return to level %d in %s%s.", depth(&u.uz), dungeons[u.uz.dnum].dname, flags.debug ? " while in debug mode" : flags.explore ? " while in explore mode" : ""); +#else + You("%s%s‚Ì’n‰º%dŠK‚É–ß‚Á‚Ä‚«‚½D", + flags.debug ? "ƒEƒBƒU[ƒhƒ‚[ƒh’†‚Ì" + : flags.explore ? "’TŒŸƒ‚[ƒh’†‚Ì" : "", + dungeons[u.uz.dnum].dname, depth(&u.uz)); +#endif curs(WIN_MAP, 1, 1); dotcnt = 0; dotrow = 2; @@ -959,9 +987,18 @@ void trickery(reason) char *reason; { +/*JP pline("Strange, this map is not as I remember it."); +*/ + pline("–­‚¾C‚±‚Ì’n}‚ÍŽ„‚ªŠo‚¦‚Ä‚¢‚½‚à‚̂ƈႤD"); +/*JP pline("Somebody is trying some trickery here..."); +*/ + pline("‚¾‚ê‚©‚ª‚±‚±‚Å‚¢‚©‚³‚Ü‚ð‚µ‚æ‚¤‚Æ‚µ‚½‚悤‚¾DDD"); +/*JP pline("This game is void."); +*/ + pline("‚±‚̃Q[ƒ€‚Í–³Œø‚Æ‚È‚éD"); Strcpy(killer.name, reason ? reason : ""); done(TRICKED); } diff --git a/src/rip.c b/src/rip.c index 80791cb..2ca5cad 100644 --- a/src/rip.c +++ b/src/rip.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" STATIC_DCL void FDECL(center, (int, char *)); @@ -118,13 +123,39 @@ time_t when; for (line = DEATH_LINE, dpx = buf; line < YEAR_LINE; line++) { register int i, i0; char tmpchar; +#if 1 /*JP*/ + unsigned char *uc; + int jstone_line; + + if ((i0 = strlen(dpx)) <= STONE_LINE_LEN) + jstone_line = STONE_LINE_LEN; + else if (i0 / 2 <= STONE_LINE_LEN ) + jstone_line = ((i0 + 3) / 4) * 2; + else if (i0 / 3 <= STONE_LINE_LEN ) + jstone_line = ((i0 + 5) / 6) * 2; + else + jstone_line = ((i0 + 7) / 8) * 2; +#endif if ((i0 = strlen(dpx)) > STONE_LINE_LEN) { for (i = STONE_LINE_LEN; ((i0 > STONE_LINE_LEN) && i); i--) if (dpx[i] == ' ') i0 = i; if (!i) +#if 0 /*JP*/ i0 = STONE_LINE_LEN; +#else + { + i0 = 0; + while(i0 < jstone_line){ + uc = (unsigned char *)(dpx + i0); + if(*uc < 128) + ++i0; + else + i0 += 2; + } + } +#endif } tmpchar = dpx[i0]; dpx[i0] = 0; diff --git a/src/role.c b/src/role.c index cccf9c4..90be78f 100644 --- a/src/role.c +++ b/src/role.c @@ -47,7 +47,7 @@ const struct Role roles[] = { { "“´ŒAŠwŽÒ", 0 }, { "”üpŽûWŽÒ", 0 }, { "ŠÙ’·", 0 } }, - "Quetzalcoatl", "Camaxtli", "Huhetotl", /* Central American */ + "ƒPƒcƒAƒ‹ƒJƒgƒ‹", "ƒJƒ}ƒLƒVƒgƒŠ", "ƒtƒwƒgƒgƒ‹", /* Central American */ #endif "Arc", #if 0 /*JP*/ @@ -108,7 +108,7 @@ const struct Role roles[] = { { "ŽECŽÒ", 0 }, { "Žñ—Ì", 0 }, { "ª•žŽÒ", 0 } }, - "Mitra", "Crom", "Set", /* Hyborian */ + "ƒ~ƒgƒ‰", "ƒNƒƒ€", "ƒZƒg", /* Hyborian */ #endif "Bar", #if 0 /*JP*/ @@ -169,7 +169,7 @@ const struct Role roles[] = { { "—V–q–¯", 0 }, { "—¬˜QŽÒ", 0 }, { "æ‹ìŽÒ", 0 } }, - "Anu", "_Ishtar", "Anshar", /* Babylonian */ + "ƒAƒk", "_ƒCƒVƒ…ƒ^ƒ‹", "ƒAƒ“ƒVƒƒƒ‹", /* Babylonian */ #endif "Cav", #if 0 /*JP*/ @@ -230,7 +230,7 @@ const struct Role roles[] = { { "ˆãŽtŽå”C", 0 }, { "“à‰Èˆã", 0 }, { "ŠO‰Èˆã", 0 } }, - "_Athena", "Hermes", "Poseidon", /* Greek */ + "_ƒAƒeƒi", "ƒwƒ‹ƒƒX", "ƒ|ƒZƒCƒhƒ“", /* Greek */ #endif "Hea", #if 0 /*JP*/ @@ -290,7 +290,7 @@ const struct Role roles[] = { { "d‹RŽm", 0 }, { "ŒM‹RŽm", 0 }, { "¹‹RŽm", 0 } }, - "Lugh", "_Brigit", "Manannan Mac Lir", /* Celtic */ + "ƒ‹[ƒt", "_ƒuƒŠƒWƒbƒg", "ƒ}ƒiƒ“ƒiƒ“Eƒ}ƒNƒŠ[ƒ‹", /* Celtic */ #endif "Kni", #if 0 /*JP*/ @@ -350,7 +350,7 @@ const struct Role roles[] = { { "–؂̏K‚¢Žè", 0 }, { "‰Î‚̏K‚¢Žè", 0 }, { "–Æ‹–ŠF“`", 0 } }, - "Shan Lai Ching", "Chih Sung-tzu", "Huan Ti", /* Chinese */ + "ŽR—‹¸", "Ô¼Žq", "‰©’é", /* Chinese */ #endif "Mon", #if 0 /*JP*/ @@ -474,7 +474,7 @@ const struct Role roles[] = { { "“D–_", 0 }, { "‹­“", 0 }, { "‘å“D–_", 0 } }, - "Issek", "Mog", "Kos", /* Nehwon */ + "ƒCƒZƒbƒN", "ƒ‚ƒO", "ƒRƒX", /* Nehwon */ #endif "Rog", #if 0 /*JP*/ @@ -609,7 +609,7 @@ const struct Role roles[] = { { "‘å–¼", "˜Œ³" }, /* a samurai lord */ { "Œö‰Æ", 0 }, /* Noble of the Court */ { "Œö‰Æ", "‘剜" } }, /* supreme commander, warlord */ - "_Amaterasu Omikami", "Raijin", "Susanowo", /* Japanese */ + "_“VÆ‘å_", "—‹_", "{²”V’j", /* Japanese */ #endif "Sam", #if 0 /*JP*/ @@ -669,7 +669,7 @@ const struct Role roles[] = { { "qŠCŽÒ", 0 }, { "’TŒŸ‰Æ", 0 }, { "–`Œ¯ŽÒ", 0 } }, - "Blind Io", "_The Lady", "Offler", /* Discworld */ + "–Ӗڂ̃Cƒ", "_ƒ—_„", "ƒIƒtƒ‰[", /* Discworld */ #endif "Tou", #if 0 /*JP*/ @@ -729,7 +729,7 @@ const struct Role roles[] = { { "‰p—Y", 0 }, { "æ“±ŽÒ", 0 }, { "ƒ[ƒh", "ƒŒƒfƒB" } }, - "Tyr", "Odin", "Loki", /* Norse */ + "ƒ`ƒ…[ƒ‹", "ƒI[ƒfƒBƒ“", "ƒƒL", /* Norse */ #endif "Val", #if 0 /*JP*/ @@ -789,7 +789,7 @@ const struct Role roles[] = { { "–‚pŽt", 0 }, { "–‚–@Žg‚¢", 0 }, { "‘å–‚–@Žg‚¢", 0 } }, - "Ptah", "Thoth", "Anhur", /* Egyptian */ + "ƒvƒ^ƒn", "ƒg[ƒg", "ƒAƒ“ƒtƒ‹", /* Egyptian */ #endif "Wiz", #if 0 /*JP*/ @@ -1074,7 +1074,10 @@ STATIC_DCL int FDECL(role_gendercount, (int)); STATIC_DCL int FDECL(race_alignmentcount, (int)); /* used by str2XXX() */ +/*JP static char NEARDATA randomstr[] = "random"; +*/ +static char NEARDATA randomstr[] = "ƒ‰ƒ“ƒ_ƒ€"; boolean validrole(rolenum) @@ -1702,6 +1705,7 @@ promptsep(buf, num_post_attribs) char *buf; int num_post_attribs; { +#if 0 /*JP*/ const char *conjuct = "and "; if (num_post_attribs > 1 && post_attribs < num_post_attribs @@ -1711,6 +1715,13 @@ int num_post_attribs; --post_attribs; if (!post_attribs && num_post_attribs > 1) Strcat(buf, conjuct); +#else + /*JP: “ú–{Œê‚Å‚Í "A, B, and C" ‚Æ‚¢‚¤ˆ—‚Í•s—v */ + if(num_post_attribs > post_attribs){ + Strcat(buf, "C"); + } + --post_attribs; +#endif return buf; } @@ -1756,7 +1767,10 @@ int buflen, rolenum, racenum, gendnum, alignnum; { int k, gendercount = 0, aligncount = 0; char buf[BUFSZ]; +/*JP static char err_ret[] = " character's"; +*/ + static char err_ret[] = "ƒLƒƒƒ‰ƒNƒ^[‚Ì"; boolean donefirst = FALSE; if (!suppliedbuf || buflen < 1) @@ -1777,13 +1791,17 @@ int buflen, rolenum, racenum, gendnum, alignnum; && ok_align(rolenum, racenum, gendnum, alignnum)) { /* if race specified, and multiple choice of alignments for it */ if ((racenum >= 0) && (aligncount > 1)) { +#if 0 /*JP*/ if (donefirst) Strcat(buf, " "); +#endif Strcat(buf, aligns[alignnum].adj); donefirst = TRUE; } else { +#if 0 /*JP*/ if (donefirst) Strcat(buf, " "); +#endif Strcat(buf, aligns[alignnum].adj); donefirst = TRUE; } @@ -1814,14 +1832,18 @@ int buflen, rolenum, racenum, gendnum, alignnum; and name of role itself does not distinguish gender */ if ((rolenum != ROLE_NONE) && (gendercount > 1) && !roles[rolenum].name.f) { +#if 0 /*JP*/ if (donefirst) Strcat(buf, " "); +#endif Strcat(buf, genders[gendnum].adj); donefirst = TRUE; } } else { +#if 0 /*JP*/ if (donefirst) Strcat(buf, " "); +#endif Strcat(buf, genders[gendnum].adj); donefirst = TRUE; } @@ -1840,14 +1862,18 @@ int buflen, rolenum, racenum, gendnum, alignnum; if (racenum != ROLE_NONE && racenum != ROLE_RANDOM) { if (validrole(rolenum) && ok_race(rolenum, racenum, gendnum, alignnum)) { +#if 0 /*JP*/ if (donefirst) Strcat(buf, " "); +#endif Strcat(buf, (rolenum == ROLE_NONE) ? races[racenum].noun : races[racenum].adj); donefirst = TRUE; } else if (!validrole(rolenum)) { +#if 0 /*JP*/ if (donefirst) Strcat(buf, " "); +#endif Strcat(buf, races[racenum].noun); donefirst = TRUE; } else { @@ -1861,8 +1887,10 @@ int buflen, rolenum, racenum, gendnum, alignnum; /* || */ if (validrole(rolenum)) { +#if 0 /*JP*/ if (donefirst) Strcat(buf, " "); +#endif if (gendnum != ROLE_NONE) { if (gendnum == 1 && roles[rolenum].name.f) Strcat(buf, roles[rolenum].name.f); @@ -1884,9 +1912,14 @@ int buflen, rolenum, racenum, gendnum, alignnum; if ((racenum == ROLE_NONE || racenum == ROLE_RANDOM) && !validrole(rolenum)) { +#if 0 /*JP*/ if (donefirst) Strcat(buf, " "); +#endif +/*JP Strcat(buf, "character"); +*/ + Strcat(buf, "ƒLƒƒƒ‰ƒNƒ^["); donefirst = TRUE; } /* || @@ -1904,30 +1937,43 @@ build_plselection_prompt(buf, buflen, rolenum, racenum, gendnum, alignnum) char *buf; int buflen, rolenum, racenum, gendnum, alignnum; { +/*JP const char *defprompt = "Shall I pick a character for you? [ynaq] "; +*/ + const char *defprompt = "“K“–‚ɃLƒƒƒ‰ƒNƒ^[‚ð‘I‚ñ‚Å‚æ‚¢‚Å‚·‚©H[ynaq] "; int num_post_attribs = 0; char tmpbuf[BUFSZ], *p; if (buflen < QBUFSZ) return (char *) defprompt; +#if 0 /*JP*/ Strcpy(tmpbuf, "Shall I pick "); if (racenum != ROLE_NONE || validrole(rolenum)) Strcat(tmpbuf, "your "); else { Strcat(tmpbuf, "a "); } +#else + Strcpy(tmpbuf, ""); +#endif /* */ (void) root_plselection_prompt(eos(tmpbuf), buflen - strlen(tmpbuf), rolenum, racenum, gendnum, alignnum); +#if 0 /*JP*/ Sprintf(buf, "%s", s_suffix(tmpbuf)); +#else + Sprintf(buf, "%s‚Ì", tmpbuf); +#endif +#if 0 /*JP:“ú–{Œê‚Å‚Í•s—v*/ /* don't bother splitting caveman/cavewoman or priest/priestess in order to apply possessive suffix to both halves, but do change "priest/priestess'" to "priest/priestess's" */ if ((p = strstri(buf, "priest/priestess'")) != 0 && p[sizeof "priest/priestess'" - sizeof ""] == '\0') strkitten(buf, 's'); +#endif /* buf should now be: * @@ -1940,22 +1986,37 @@ int buflen, rolenum, racenum, gendnum, alignnum; if (post_attribs) { if (pa[BP_RACE]) { (void) promptsep(eos(buf), num_post_attribs); +/* Strcat(buf, "race"); +*/ + Strcat(buf, "Ží‘°"); } if (pa[BP_ROLE]) { (void) promptsep(eos(buf), num_post_attribs); +/* Strcat(buf, "role"); +*/ + Strcat(buf, "E‹Æ"); } if (pa[BP_GEND]) { (void) promptsep(eos(buf), num_post_attribs); +/*JP Strcat(buf, "gender"); +*/ + Strcat(buf, "«•Ê"); } if (pa[BP_ALIGN]) { (void) promptsep(eos(buf), num_post_attribs); +/*JP Strcat(buf, "alignment"); +*/ + Strcat(buf, "‘®«"); } } +/*JP Strcat(buf, " for you? [ynaq] "); +*/ + Strcat(buf, "‚ð“K“–‚É‘I‚ñ‚Å‚æ‚낵‚¢‚Å‚·‚©H[ynq] "); return buf; } @@ -2023,9 +2084,18 @@ role_selection_prolog(which, where) int which; winid where; { +/*JP static const char NEARDATA choosing[] = " choosing now", +*/ + static const char NEARDATA choosing[] = " Œ»Ý‘I‘ð’†", +/*JP not_yet[] = " not yet specified", +*/ + not_yet[] = " –¢‘I‘ð", +/*JP rand_choice[] = " random"; +*/ + rand_choice[] = " ƒ‰ƒ“ƒ_ƒ€"; char buf[BUFSZ]; int r, c, g, a, allowmask; @@ -2082,26 +2152,39 @@ winid where; Sprintf(eos(buf), "/%s", roles[r].name.f); } putstr(where, 0, buf); +/*JP Sprintf(buf, "%12s ", "race:"); +*/ + Sprintf(buf, "%12s ", "Ží‘°:"); Strcat(buf, (which == RS_RACE) ? choosing : (c == ROLE_NONE) ? not_yet : (c == ROLE_RANDOM) ? rand_choice : races[c].noun); putstr(where, 0, buf); +/*JP Sprintf(buf, "%12s ", "gender:"); +*/ + Sprintf(buf, "%12s ", "«•Ê:"); Strcat(buf, (which == RS_GENDER) ? choosing : (g == ROLE_NONE) ? not_yet : (g == ROLE_RANDOM) ? rand_choice : genders[g].adj); putstr(where, 0, buf); +/*JP Sprintf(buf, "%12s ", "alignment:"); +*/ + Sprintf(buf, "%12s ", "‘®«:"); Strcat(buf, (which == RS_ALGNMNT) ? choosing : (a == ROLE_NONE) ? not_yet : (a == ROLE_RANDOM) ? rand_choice +#if 0 /*JP:“ú–{Œê‚Å‚Í–¼ŽŒ‚ªŽ©‘R*/ : aligns[a].adj); +#else + : aligns[a].noun); +#endif putstr(where, 0, buf); } @@ -2390,6 +2473,7 @@ const char * Hello(mtmp) struct monst *mtmp; { +#if 0 /*JP*/ switch (Role_switch) { case PM_KNIGHT: return "Salutations"; /* Olde English */ @@ -2408,11 +2492,38 @@ struct monst *mtmp; default: return "Hello"; } +#else +/* + ‚ ‚¢‚³‚‚͓ú–{Œê‚Æ‚µ‚ÄŽ©‘R‚É‚È‚é‚悤‘å‚«‚­Žd—l‚ð•ÏX +*/ + static char helo_buf[BUFSZ]; + + switch (Role_switch) { + case PM_KNIGHT: + Sprintf(helo_buf, "‚æ‚­‚¼ŽQ‚Á‚½%s‚æ", plname); + break; + case PM_SAMURAI: + Sprintf(helo_buf, "‚æ‚­‚¼ŽQ‚ç‚ꂽ%s‚æ", plname); + break; + case PM_TOURIST: + Sprintf(helo_buf, "ƒAƒ[ƒn%s", plname); + break; + case PM_VALKYRIE: + Sprintf(helo_buf, "°‚ÌŽçŒìŽÒ%s‚æ", plname); + break; + default: + Sprintf(helo_buf, "‚悤‚±‚»%s", plname); + break; + } + + return helo_buf; +#endif } const char * Goodbye() { +#if 0 /*JP*/ switch (Role_switch) { case PM_KNIGHT: return "Fare thee well"; /* Olde English */ @@ -2425,6 +2536,29 @@ Goodbye() default: return "Goodbye"; } +#else + static char helo_buf[BUFSZ]; + + switch (Role_switch) { + case PM_KNIGHT: + Sprintf(helo_buf, "‚³‚ç‚ÎŒhåi‚È‚é"); + break; + case PM_SAMURAI: + Sprintf(helo_buf, "‚³‚ç‚ŐŽm“¹‚ðŽu‚·"); + break; + case PM_TOURIST: + Sprintf(helo_buf, "ƒAƒ[ƒn"); + break; + case PM_VALKYRIE: + Sprintf(helo_buf, "‚³‚ç‚΍°‚ÌŽçŒìŽÒ"); + break; + default: + Sprintf(helo_buf, "‚³‚悤‚È‚ç"); + break; + } + + return helo_buf; +#endif } /* role.c */ diff --git a/src/rumors.c b/src/rumors.c index 18656e5..4a3b7d2 100644 --- a/src/rumors.c +++ b/src/rumors.c @@ -147,14 +147,21 @@ boolean exclude_cookie; Strcat(rumor_buf, xcrypt(line, xbuf)); } while ( count++ < 50 && exclude_cookie +#if 0 /*JP*/ && (strstri(rumor_buf, "fortune") || strstri(rumor_buf, "pity"))); +#else + && (strstri(rumor_buf, "è") || strstri(rumor_buf, "‚È‚ñ‚Ä‚±‚Æ‚¾"))); +#endif (void) dlb_fclose(rumors); if (count >= 50) impossible("Can't find non-cookie rumor?"); else if (!in_mklev) /* avoid exercizing wisdom for graffiti */ exercise(A_WIS, (adjtruth > 0)); } else { +/*JP pline("Can't open rumors file!"); +*/ + pline("rumorsƒtƒ@ƒCƒ‹‚ªŠJ‚¯‚È‚¢I"); true_rumor_size = -1; /* don't try to open it again */ } /* this is safe either way, so do it always since we can't get the definition @@ -324,7 +331,10 @@ int truth; /* 1=true, -1=false, 0=either */ int mechanism; { static const char fortune_msg[] = +/*JP "This cookie has a scrap of paper inside."; +*/ + "‚±‚̃NƒbƒL[‚É‚ÍŽ†Ø‚ª“ü‚Á‚Ä‚¢‚éD"; const char *line; char buf[BUFSZ]; boolean reading = (mechanism == BY_COOKIE || mechanism == BY_PAPER); @@ -336,20 +346,33 @@ int mechanism; else if (Blind) { if (mechanism == BY_COOKIE) pline(fortune_msg); +/*JP pline("What a pity that you cannot read it!"); +*/ + pline("‚»‚ê‚ð“Ç‚ß‚È‚¢‚È‚ñ‚Ä‹C‚̓łȁI"); return; } } line = getrumor(truth, buf, reading ? FALSE : TRUE); if (!*line) +/*JP line = "NetHack rumors file closed for renovation."; +*/ + line = "‰\‚̐^‘Š‚͍üV‚Ì‚½‚ß‹xŠ§‚µ‚Ä‚¢‚éD"; switch (mechanism) { case BY_ORACLE: /* Oracle delivers the rumor */ +#if 0 /*JP*/ pline("True to her word, the Oracle %ssays: ", (!rn2(4) ? "offhandedly " : (!rn2(3) ? "casually " : (rn2(2) ? "nonchalantly " : "")))); +#else + pline("–ñ‘©‚Ç‚¨‚è‚ɁCŒ«ŽÒ‚Í%sq‚ׂ½:", + (!rn2(4) ? "–³‘¢ì‚É" + : (!rn2(3) ? "‰½‹C‚È‚­" + : (rn2(2) ? "–³“Ú’…‚É" : "")))); +#endif verbalize1(line); /* [WIS exercized by getrumor()] */ return; @@ -357,7 +380,10 @@ int mechanism; pline(fortune_msg); /* FALLTHRU */ case BY_PAPER: +/*JP pline("It reads:"); +*/ + pline("‚»‚ê‚ð“Ç‚ñ‚¾:"); break; } pline1(line); @@ -453,10 +479,19 @@ boolean delphi; if (delphi) putstr(tmpwin, 0, special +/*JP ? "The Oracle scornfully takes all your money and says:" +*/ + ? "Œ«ŽÒ‚ÍŒy•Ì‚µ‚½‚悤‚É‚ ‚È‚½‚Ì‘S‚Ä‚Ì‚¨‹à‚ðŽó‚¯‚Æ‚èCq‚ׂ½F" +/*JP : "The Oracle meditates for a moment and then intones:"); +*/ + : "Œ«ŽÒ‚Í‚µ‚΂炭–»‘z‚µC‰Ì‚¤‚悤‚ɘb‚µ‚½F"); else +/*JP putstr(tmpwin, 0, "The message reads:"); +*/ + putstr(tmpwin, 0, "ƒƒbƒZ[ƒW:"); putstr(tmpwin, 0, ""); while (dlb_fgets(line, COLNO, oracles) && strcmp(line, "---\n")) { @@ -468,7 +503,10 @@ boolean delphi; destroy_nhwindow(tmpwin); (void) dlb_fclose(oracles); } else { +/*JP pline("Can't open oracles file!"); +*/ + pline("oraclesƒtƒ@ƒCƒ‹‚ðŠJ‚¯‚È‚¢I"); oracle_flg = -1; /* don't try to open it again */ } } @@ -486,17 +524,29 @@ struct monst *oracl; umoney = money_cnt(invent); if (!oracl) { +/*JP There("is no one here to consult."); +*/ + pline("‚±‚±‚ɂ͐_‘õ‚ðq‚ׂél‚Í‚¢‚È‚¢D"); return 0; } else if (!oracl->mpeaceful) { +/*JP pline("%s is in no mood for consultations.", Monnam(oracl)); +*/ + pline("Œ«ŽÒ‚͐_‘õ‚ð‚°‚Ä‚­‚ê‚镵ˆÍ‹C‚Å‚Í‚È‚¢D"); return 0; } else if (!umoney) { +/*JP You("have no money."); +*/ + You("‚¨‹à‚ª‚È‚¢D"); return 0; } +/*JP Sprintf(qbuf, "\"Wilt thou settle for a minor consultation?\" (%d %s)", +*/ + Sprintf(qbuf, "u“ðC’áˆÊ‚̐_‘õ‚ðŽó‚¯‚é‚©Hv(%d%s)", minor_cost, currency((long) minor_cost)); switch (ynq(qbuf)) { default: @@ -504,7 +554,10 @@ struct monst *oracl; return 0; case 'y': if (umoney < (long) minor_cost) { +/*JP You("don't even have enough money for that!"); +*/ + You("‚±‚ê‚É•¥‚¦‚邾‚¯‚Ì‚¨‹à‚·‚玝‚Á‚Ä‚¢‚È‚¢I"); return 0; } u_pay = minor_cost; @@ -513,7 +566,7 @@ struct monst *oracl; if (umoney <= (long) minor_cost /* don't even ask */ || (oracle_cnt == 1 || oracle_flg < 0)) return 0; - Sprintf(qbuf, "\"Then dost thou desire a major one?\" (%d %s)", + Sprintf(qbuf, "u‚È‚ç‚ΓðC‚ˆÊ‚̐_‘õ‚ðŽó‚¯‚é‚©Hv(%d%s)", major_cost, currency((long) major_cost)); if (yn(qbuf) != 'y') return 0; diff --git a/src/save.c b/src/save.c index 551eadc..82cada6 100644 --- a/src/save.c +++ b/src/save.c @@ -79,13 +79,19 @@ int dosave() { clear_nhwindow(WIN_MESSAGE); +/*JP if (yn("Really save?") == 'n') { +*/ + if(yn("–{“–‚É•Û‘¶‚·‚éH") == 'n') { clear_nhwindow(WIN_MESSAGE); if (multi > 0) nomul(0); } else { clear_nhwindow(WIN_MESSAGE); +/*JP pline("Saving..."); +*/ + pline("•Û‘¶’†DDD"); #if defined(UNIX) || defined(VMS) || defined(__EMX__) program_state.done_hup = 0; #endif @@ -93,7 +99,10 @@ dosave() u.uhp = -1; /* universal game's over indicator */ /* make sure they see the Saving message */ display_nhwindow(WIN_MESSAGE, TRUE); +/*JP exit_nhwindows("Be seeing you..."); +*/ + exit_nhwindows("‚Ü‚½‰ï‚¢‚Ü‚µ‚傤DDD"); terminate(EXIT_SUCCESS); } else (void) doredraw(); @@ -143,8 +152,14 @@ dosave0() if (fd > 0) { (void) nhclose(fd); clear_nhwindow(WIN_MESSAGE); +/*JP There("seems to be an old save file."); +*/ + pline("‘O‚ɃZ[ƒu‚µ‚½ƒtƒ@ƒCƒ‹‚ª‚ ‚è‚Ü‚·D"); +/*JP if (yn("Overwrite the old file?") == 'n') { +*/ + if (yn("ŒÃ‚¢ƒtƒ@ƒCƒ‹‚ɏ㏑‚«‚µ‚Ü‚·‚©H") == 'n') { nh_compress(fq_save); return 0; } diff --git a/src/shk.c b/src/shk.c index a0cf00e..a913a5d 100644 --- a/src/shk.c +++ b/src/shk.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" #define PAY_SOME 2 @@ -25,7 +30,10 @@ STATIC_DCL void FDECL(kops_gone, (BOOLEAN_P)); extern const struct shclass shtypes[]; /* defined in shknam.c */ STATIC_VAR NEARDATA long int followmsg; /* last time of follow message */ +/*JP STATIC_VAR const char and_its_contents[] = " and its contents"; +*/ +STATIC_VAR const char and_its_contents[] = "’†g‚ð‡‚í‚¹‚Ä"; STATIC_VAR const char the_contents_of[] = "the contents of "; STATIC_DCL void FDECL(append_honorific, (char *)); @@ -73,7 +81,9 @@ STATIC_DCL boolean FDECL(rob_shop, (struct monst *)); STATIC_DCL void FDECL(deserted_shop, (char *)); STATIC_DCL boolean FDECL(special_stock, (struct obj *, struct monst *, BOOLEAN_P)); +#if 0 /*JP*//*Žg‚í‚È‚¢*/ STATIC_DCL const char *FDECL(cad, (BOOLEAN_P)); +#endif /* invariants: obj->unpaid iff onbill(obj) [unless bp->useup] @@ -146,7 +156,10 @@ long amount; obj_extract_self(mongold); if (!merge_choice(invent, mongold) && inv_cnt(FALSE) >= 52) { +/*JP You("have no room for the money!"); +*/ + You("‚¨‹à‚ðŽ‚Â—]—T‚ª‚È‚¢I"); dropy(mongold); } else { addinv(mongold); @@ -333,7 +346,10 @@ register boolean nearshop; return; if (!Deaf) +/*JP pline("An alarm sounds!"); +*/ + pline("Œx•ñ‚ª–‚è‚Ђт¢‚½I"); nokops = ((mvitals[PM_KEYSTONE_KOP].mvflags & G_GONE) && (mvitals[PM_KOP_SERGEANT].mvflags & G_GONE) @@ -342,7 +358,10 @@ register boolean nearshop; if (!angry_guards(!!Deaf) && nokops) { if (flags.verbose && !Deaf) +/*JP pline("But no one seems to respond to it."); +*/ + pline("‚µ‚©‚µ’N‚à‰ž“š‚µ‚È‚©‚Á‚½D"); return; } @@ -355,14 +374,20 @@ register boolean nearshop; if (nearshop) { /* Create swarm around you, if you merely "stepped out" */ if (flags.verbose) +/*JP pline_The("Keystone Kops appear!"); +*/ + pline("Œx”õˆõ‚ªŒ»‚í‚ꂽI"); mm.x = u.ux; mm.y = u.uy; makekops(&mm); return; } if (flags.verbose) +/*JP pline_The("Keystone Kops are after you!"); +*/ + pline("Œx”õˆõ‚ª‚¢‚éI"); /* Create swarm near down staircase (hinders return to level) */ mm.x = xdnstair; mm.y = ydnstair; @@ -419,9 +444,15 @@ boolean newlev; * Player just stepped onto shop-boundary (known from above logic). * Try to intimidate him into paying his bill */ +#if 0 /*JP*/ verbalize(NOTANGRY(shkp) ? "%s! Please pay before leaving." : "%s! Don't you leave without paying!", plname); +#else + verbalize(NOTANGRY(shkp) ? "%s‚³‚ñI‹A‚é‘O‚ɁC‚¨‹à‚𕥂Á‚Ä‚¢‚½‚¾‚¯‚Ü‚¹‚ñ‚©D" + : "%sI‹A‚é‘O‚ɁC‹à‚𕥂¦I", + plname); +#endif return; } @@ -465,11 +496,18 @@ struct monst *shkp; rouse_shk(shkp, TRUE); total = (addupbill(shkp) + eshkp->debit); if (eshkp->credit >= total) { +#if 0 /*JP*/ Your("credit of %ld %s is used to cover your shopping bill.", +#else + Your("—a‚¯‹à‚©‚ç%ld%s‚ªŠ¨’è‚ÌŽx•¥‚¢‚ÉŽg‚í‚ꂽD", +#endif eshkp->credit, currency(eshkp->credit)); total = 0L; /* credit gets cleared by setpaid() */ } else { +/*JP You("escaped the shop without paying!"); +*/ + You("‹à‚𕥂킸‚É“X‚©‚瓦‚°‚½I"); total -= eshkp->credit; } setpaid(shkp); @@ -478,7 +516,10 @@ struct monst *shkp; /* by this point, we know an actual robbery has taken place */ eshkp->robbed += total; +/*JP You("stole %ld %s worth of merchandise.", total, currency(total)); +*/ + You("ŽG‰Ý‚ð%ld%s•ª“‚ñ‚¾D", total, currency(total)); if (!Role_if(PM_ROGUE)) /* stealing is unlawful */ adjalign(-sgn(u.ualign.type)); @@ -511,8 +552,14 @@ deserted_shop(enterstring) if (Blind && !(Blind_telepat || Detect_monsters)) ++n; /* force feedback to be less specific */ +#if 0 /*JP*/ pline("This shop %s %s.", (m < n) ? "seems to be" : "is", !n ? "deserted" : "untended"); +#else + pline("“X‚Í%s%sD", + !n ? "”pšÐ‚Ɖ»‚µ‚Ä‚¢‚é" : "•úŠü‚³‚ê‚Ä‚¢‚é", + (m < n) ? "‚悤‚¾" : "is"); +#endif } void @@ -564,18 +611,32 @@ char *enterstring; return; /* no dialog */ if (Invis) { +/*JP pline("%s senses your presence.", shkname(shkp)); +*/ + pline("%s‚Í‚ ‚È‚½‚Ì‘¶Ý‚É‹C‚ª‚‚¢‚½D", shkname(shkp)); +/*JP verbalize("Invisible customers are not welcome!"); +*/ + verbalize("“§–¾‚È‚¨‹q‚³‚ñ‚Æ‚ÍŠ´S‚µ‚È‚¢‚ȁI"); return; } rt = rooms[*enterstring - ROOMOFFSET].rtype; if (ANGRY(shkp)) { +#if 0 /*JP*/ verbalize("So, %s, you dare return to %s %s?!", plname, s_suffix(shkname(shkp)), shtypes[rt - SHOPBASE].name); +#else + verbalize("%sI‚í‚´‚í‚´%s‚Ì%s‚É–ß‚Á‚Ä‚«‚½‚Ì‚©HI", plname, + s_suffix(shkname(shkp)), shtypes[rt - SHOPBASE].name); +#endif } else if (eshkp->robbed) { +/*JP pline("%s mutters imprecations against shoplifters.", shkname(shkp)); +*/ + pline("%s‚Í“D–_‚ð‚Ì‚Ì‚µ‚Á‚½D", shkname(shkp)); } else { verbalize("%s, %s! Welcome%s to %s %s!", Hello(shkp), plname, eshkp->visitct++ ? " again" : "", s_suffix(shkname(shkp)), @@ -592,16 +653,25 @@ char *enterstring; if (pick || mattock) { cnt = 1; /* so far */ if (pick && mattock) { /* carrying both types */ +/*JP tool = "digging tool"; +*/ + tool = "Œ@‚铹‹ï"; cnt = 2; /* `more than 1' is all that matters */ } else if (pick) { +/*JP tool = "pick-axe"; +*/ + tool = "‚‚é‚Í‚µ"; /* hack: `pick' already points somewhere into inventory */ while ((pick = pick->nobj) != 0) if (pick->otyp == PICK_AXE) ++cnt; } else { /* assert(mattock != 0) */ +/*JP tool = "mattock"; +*/ + tool = "‚‚é‚Í‚µ"; while ((mattock = mattock->nobj) != 0) if (mattock->otyp == DWARVISH_MATTOCK) ++cnt; @@ -609,15 +679,28 @@ char *enterstring; if (!Blind) makeknown(DWARVISH_MATTOCK); } +#if 0 /*JP*/ verbalize(NOTANGRY(shkp) ? "Will you please leave your %s%s outside?" : "Leave the %s%s outside.", tool, plur(cnt)); +#else + verbalize(NOTANGRY(shkp) + ? "%s‚ðŠO‚É’u‚¢‚Ä‚«‚Ä‚¢‚½‚¾‚¯‚Ü‚¹‚ñ‚©H" + : "%s‚ðŠO‚Ö’u‚¢‚Ä‚±‚¢I", + tool); +#endif should_block = TRUE; } else if (u.usteed) { +#if 0 /*JP*/ verbalize(NOTANGRY(shkp) ? "Will you please leave %s outside?" : "Leave %s outside.", y_monnam(u.usteed)); +#else + verbalize(NOTANGRY(shkp) ? "%s‚ðŠO‚É’u‚¢‚Ä‚«‚Ä‚¢‚½‚¾‚¯‚Ü‚¹‚ñ‚©H" + : "%s‚ðŠO‚Ö’u‚¢‚Ä‚±‚¢I", + y_monnam(u.usteed)); +#endif should_block = TRUE; } else { should_block = @@ -646,8 +729,12 @@ struct obj *obj; /* if you bring a sack of N picks into a shop to sell, don't repeat this N times when they're taken out */ if (moves != pickmovetime) +#if 0 /*JP*/ verbalize("You sneaky %s! Get out of here with that pick!", cad(FALSE)); +#else + verbalize("‚Ђ«‚傤ŽÒ‚߁I‚‚é‚Í‚µ‚ðŽ‚Á‚ÄŠO‚ɏo‚ëI"); +#endif pickmovetime = moves; } } @@ -717,7 +804,10 @@ shopper_financial_report() eshkp = this_shkp ? ESHK(this_shkp) : 0; if (eshkp && !(eshkp->credit || shop_debt(eshkp))) { +/*JP You("have no credit or debt in here."); +*/ + You("—a‚¯‹à‚àŽØ‹à‚à‚È‚¢D"); this_shkp = 0; /* skip first pass */ } @@ -730,15 +820,30 @@ shopper_financial_report() continue; eshkp = ESHK(shkp); if ((amt = eshkp->credit) != 0) +#if 0 /*JP*/ You("have %ld %s credit at %s %s.", amt, currency(amt), s_suffix(shkname(shkp)), shtypes[eshkp->shoptype - SHOPBASE].name); +#else + You("%ld%s‚Ì—a‚¯‹à‚ª%s‚Ì%s‚É‚ ‚éD", amt, currency(amt), + shkname(shkp), + shtypes[eshkp->shoptype - SHOPBASE].name); +#endif else if (shkp == this_shkp) +/*JP You("have no credit in here."); +*/ + You("—a‚¯‹à‚Í‚È‚¢D"); if ((amt = shop_debt(eshkp)) != 0) +/*JP You("owe %s %ld %s.", shkname(shkp), amt, currency(amt)); +*/ + You("%s‚É%ld%s‚̎؂肪‚ ‚éD", shkname(shkp), amt, currency(amt)); else if (shkp == this_shkp) +/*JP You("don't owe any money here."); +*/ + pline("‚±‚Ì“X‚ÉŽØ‚è‚Í‚È‚¢D"); } } @@ -796,13 +901,19 @@ register boolean silent; while (--ct >= 0) if (bp->bo_id == obj->o_id) { if (!obj->unpaid) +/*JP pline("onbill: paid obj on bill?"); +*/ + pline("Š¨’èF•¥‚¤H"); return bp; } else bp++; } if (obj->unpaid & !silent) +/*JP pline("onbill: unpaid obj not on bill?"); +*/ + pline("Š¨’èF•¥‚í‚È‚¢H"); return (struct bill_x *) 0; } @@ -913,11 +1024,17 @@ register struct monst *shkp; if (credit == 0L) { ; /* nothing to do; just 'return tmp;' */ } else if (credit >= tmp) { +/*JP pline_The("price is deducted from your credit."); +*/ + pline("‘ã‹à‚Í—a‚¯‹à‚©‚獷‚µˆø‚©‚ꂽD"); ESHK(shkp)->credit -= tmp; tmp = 0L; } else { +/*JP pline_The("price is partially covered by your credit."); +*/ + pline("‘ã‹à‚̈ꕔ‚Í‚ ‚È‚½‚Ì—a‚¯‹à‚Å•â‚í‚ꂽD"); ESHK(shkp)->credit = 0L; tmp -= credit; } @@ -1021,8 +1138,13 @@ boolean verbosely; if (!shkp->mcanmove || shkp->msleeping) { /* greed induced recovery... */ if (verbosely && canspotmon(shkp)) +#if 0 /*JP*/ pline("%s %s.", Monnam(shkp), shkp->msleeping ? "wakes up" : "can move again"); +#else + pline("%s‚Í%sD", Monnam(shkp), + shkp->msleeping ? "–Ú‚ªŠo‚ß‚½" : "‚Ó‚½‚½‚Ñ“®‚¯‚é‚悤‚É‚È‚Á‚½"); +#endif shkp->msleeping = 0; shkp->mfrozen = 0; shkp->mcanmove = 1; @@ -1066,9 +1188,15 @@ register boolean silentkops; eshkp->dismiss_kops = TRUE; } if (vanished) +/*JP pline("Satisfied, %s suddenly disappears!", shk_nam); +*/ + pline("%s‚Í–ž‘«‚·‚é‚ƁC“Ë‘RÁ‚¦‚½I", shk_nam); } else if (wasmad) +/*JP pline("%s calms down.", Monnam(shkp)); +*/ + pline("%s‚Í—Ž’…‚¢‚½D", Monnam(shkp)); make_happy_shoppers(silentkops); } @@ -1126,14 +1254,23 @@ register xchar ox, oy; sx = shkp->mx, sy = shkp->my; if (isok(ox, oy) && cansee(ox, oy) && !cansee(sx, sy)) shkp->mx = ox, shkp->my = oy; +/*JP pline("%s %s!", Monnam(shkp), !ANGRY(shkp) ? "gets angry" : "is furious"); +*/ + pline("%s‚Í%sI", Monnam(shkp), !ANGRY(shkp) ? "“{‚Á‚½" : "“{‚苶‚Á‚½"); shkp->mx = sx, shkp->my = sy; hot_pursuit(shkp); } +/*JP STATIC_VAR const char no_money[] = "Moreover, you%s have no money."; +*/ +STATIC_VAR const char no_money[] = "‚µ‚©‚àC‚ ‚È‚½‚Í‚¨‹à‚ª‚È‚¢%sD"; STATIC_VAR const char not_enough_money[] = +/*JP "Besides, you don't have enough to interest %s."; +*/ + "‚µ‚©‚àC‚ ‚È‚½‚Í%s‚ª‹»–¡‚ðŽ‚Â‚Ù‚Ç‚¨‹à‚ðŽ‚Á‚Ä‚¢‚È‚¢I"; STATIC_OVL long cheapest_item(shkp) /* delivers the cheapest item on the list */ @@ -1185,12 +1322,18 @@ dopay() } if ((!sk && (!Blind || Blind_telepat)) || (!Blind && !seensk)) { +/*JP There("appears to be no shopkeeper here to receive your payment."); +*/ + pline("Žx•¥‚¢‚ðŽó‚¯‚Æ‚é“XŽå‚Í‚±‚±‚É‚Í‚¢‚È‚¢‚悤‚¾D"); return 0; } if (!seensk) { +/*JP You_cant("see..."); +*/ + You("Œ©‚邱‚Æ‚ª‚Å‚«‚È‚¢DDD"); return 0; } @@ -1208,7 +1351,10 @@ dopay() if (canspotmon(shkp)) break; if (shkp != resident && distu(shkp->mx, shkp->my) > 2) { +/*JP pline("%s is not near enough to receive your payment.", +*/ + pline("%s‚͉“‚­‚É‚¢‚é‚Ì‚ÅŽx•¥‚¦‚È‚¢D", Monnam(shkp)); return 0; } @@ -1217,32 +1363,53 @@ dopay() coord cc; int cx, cy; +/*JP pline("Pay whom?"); +*/ + pline("’N‚É•¥‚¤H"); cc.x = u.ux; cc.y = u.uy; +/*JP if (getpos(&cc, TRUE, "the creature you want to pay") < 0) +*/ + if (getpos(&cc, TRUE, "Žx•¥‚¢‚½‚¢‘ŠŽè") < 0) return 0; /* player pressed ESC */ cx = cc.x; cy = cc.y; if (cx < 0) { +/*JP pline("Try again..."); +*/ + pline("‚à‚¤ˆê“xDDD"); return 0; } if (u.ux == cx && u.uy == cy) { +/*JP You("are generous to yourself."); +*/ + pline("Ž©•ªŽ©g‚É‚È‚ñ‚Ä‹C‘O‚Ì‚¢‚¢‚±‚ƁI"); return 0; } mtmp = m_at(cx, cy); if (!mtmp) { +/*JP There("is no one there to receive your payment."); +*/ + pline("Žx•¥‚¢‚ðŽó‚¯‚Æ‚ê‚é‘ŠŽè‚Í‚¢‚È‚¢D"); return 0; } if (!mtmp->isshk) { +/*JP pline("%s is not interested in your payment.", Monnam(mtmp)); +*/ + pline("%s‚ÍŽx•¥‚¢‚É‹»–¡‚ðŽ¦‚³‚È‚¢D", Monnam(mtmp)); return 0; } if (mtmp != resident && distu(mtmp->mx, mtmp->my) > 2) { +/*JP pline("%s is too far to receive your payment.", Monnam(mtmp)); +*/ + pline("%s‚ÍŽx•¥‚¢‚É‹»–¡‚ðŽ¦‚³‚È‚¢D", Monnam(mtmp)); return 0; } shkp = mtmp; @@ -1261,33 +1428,63 @@ proceed: rouse_shk(shkp, TRUE); if (!shkp->mcanmove || shkp->msleeping) { /* still asleep/paralyzed */ +#if 0 /*JP:T*/ pline("%s %s.", Monnam(shkp), rn2(2) ? "seems to be napping" : "doesn't respond"); +#else + pline("%s‚Í%sD", Monnam(shkp), + rn2(2) ? "‹–°‚è‚ð‚µ‚Ä‚¢‚é‚悤‚¾" : "”½‰ž‚ª‚È‚¢"); +#endif return 0; } if (shkp != resident && NOTANGRY(shkp)) { umoney = money_cnt(invent); if (!ltmp) +/*JP You("do not owe %s anything.", mon_nam(shkp)); +*/ + You("%s‚ÉŽØ‚è‚Í‚È‚¢D", mon_nam(shkp)); else if (!umoney) { +/*JP You("%shave no money.", stashed_gold ? "seem to " : ""); +*/ + You("‚¨‹à‚ª‚È‚¢%sD", stashed_gold ? "‚悤‚¾" : ""); if (stashed_gold) +/*JP pline("But you have some gold stashed away."); +*/ + pline("‚µ‚©‚µC‚ ‚È‚½‚É‚Í‚¿‚å‚Á‚Á‚Æ‚µ‚½ƒwƒ\ƒNƒŠ‚ª‚ ‚éD"); } else { if (umoney > ltmp) { +#if 0 /*JP*/ You("give %s the %ld gold piece%s %s asked for.", shkname(shkp), ltmp, plur(ltmp), mhe(shkp)); +#else + You("%s‚É–]‚Ý’Ê‚è%ld–‡‚Ì‹à‰Ý‚ð—^‚¦‚½D", + shkname(shkp), ltmp); +#endif pay(ltmp, shkp); } else { +#if 0 /*JP*/ You("give %s all your%s gold.", shkname(shkp), stashed_gold ? " openly kept" : ""); +#else + You("%s‚É%s‚¨‹à‘S•”‚ð—^‚¦‚½D", shkname(shkp), + stashed_gold ? "ŽèŽ‚¿‚Ì" : ""); +#endif pay(umoney, shkp); if (stashed_gold) +/*JP pline("But you have hidden gold!"); +*/ + pline("‚µ‚©‚µC‚ ‚È‚½‚̓wƒ\ƒNƒŠ‚ª‚ ‚éI"); } if ((umoney < ltmp / 2L) || (umoney < ltmp && stashed_gold)) +/*JP pline("Unfortunately, %s doesn't look satisfied.", mhe(shkp)); +*/ + pline("Žc”O‚È‚ª‚çC%s‚Í–ž‘«‚µ‚Ä‚È‚¢‚悤‚¾D", mhe(shkp)); else make_happy_shk(shkp, FALSE); } @@ -1298,42 +1495,76 @@ proceed: if (!eshkp->billct && !eshkp->debit) { umoney = money_cnt(invent); if (!ltmp && NOTANGRY(shkp)) { +/*JP You("do not owe %s anything.", shkname(shkp)); +*/ + You("%s‚ÉŽØ‚è‚Í‚È‚¢D", shkname(shkp)); if (!umoney) +/*JP pline(no_money, stashed_gold ? " seem to" : ""); +*/ + pline(no_money, stashed_gold ? "‚悤‚¾" : ""); } else if (ltmp) { +/*JP pline("%s is after blood, not money!", shkname(shkp)); +*/ + pline("%s‚ÍŒŒ‚܂݂ꂾD‚¨‹à‚Ç‚±‚낶‚á‚È‚¢I", Monnam(shkp)); if (umoney < ltmp / 2L || (umoney < ltmp && stashed_gold)) { if (!umoney) +/*JP pline(no_money, stashed_gold ? " seem to" : ""); +*/ + pline(no_money, stashed_gold ? "‚悤‚¾" : ""); else pline(not_enough_money, mhim(shkp)); return 1; } +/*JP pline("But since %s shop has been robbed recently,", mhis(shkp)); +*/ + pline("‚µ‚©‚µC%s“X‚͍ŋߓ‚Ý‚É‚ ‚Á‚½‚̂ŁC", mhis(shkp)); +#if 0 /*JP*/ pline("you %scompensate %s for %s losses.", (umoney < ltmp) ? "partially " : "", shkname(shkp), mhis(shkp)); +#else + pline("%s‚Ì‘¹Ž¸%s‚ð•â“U‚µ‚½D", mhis(shkp), + (umoney < ltmp) ? "‚̈ꕔ" : ""); +#endif pay(umoney < ltmp ? umoney : ltmp, shkp); make_happy_shk(shkp, FALSE); } else { /* shopkeeper is angry, but has not been robbed -- * door broken, attacked, etc. */ +/*JP pline("%s is after your hide, not your money!", Monnam(shkp)); +*/ + pline("%s‚Í‚ ‚È‚½‚Ì–½‚ð‘_‚Á‚Ä‚¢‚éC‚¨‹à‚Ç‚±‚낶‚á‚È‚¢I", Monnam(shkp)); if (umoney < 1000L) { if (!umoney) +/*JP pline(no_money, stashed_gold ? " seem to" : ""); +*/ + pline(no_money, stashed_gold ? "‚悤‚¾" : ""); else pline(not_enough_money, mhim(shkp)); return 1; } +#if 0 /*JP*/ You("try to appease %s by giving %s 1000 gold pieces.", x_monnam(shkp, ARTICLE_THE, "angry", 0, FALSE), mhim(shkp)); +#else + You("‹à‰Ý1000–‡‚ð%s‚ÉŽè“n‚µ‚Ä‚È‚¾‚߂悤‚Æ‚µ‚½D", + x_monnam(shkp, ARTICLE_THE, "“{‚Á‚½", 0, FALSE)); +#endif pay(1000L, shkp); if (strncmp(eshkp->customer, plname, PL_NSIZ) || rn2(3)) make_happy_shk(shkp, FALSE); else +/*JP pline("But %s is as angry as ever.", shkname(shkp)); +*/ + pline("‚µ‚©‚µ%s‚Í‚Ü‚¾“{‚Á‚Ä‚¢‚éD", shkname(shkp)); } return 1; } @@ -1349,33 +1580,61 @@ proceed: long loan = eshkp->loan; char sbuf[BUFSZ]; umoney = money_cnt(invent); +#if 0 /*JP*//*––”ö‚ɉñ‚·*/ Sprintf(sbuf, "You owe %s %ld %s ", shkname(shkp), dtmp, currency(dtmp)); +#endif if (loan) { if (loan == dtmp) +/*JP Strcat(sbuf, "you picked up in the store."); +*/ + Strcpy(sbuf, "“X‚Ì’†‚ŏE‚Á‚½‚à‚̂ɑ΂µ‚āC"); else +#if 0 /*JP*/ Strcat(sbuf, "for gold picked up and the use of merchandise."); +#else + Strcpy(sbuf,"E‚Á‚½‚¨‹à‚âŽg‚Á‚½ŽG‰Ý‚ɑ΂µ‚āC"); +#endif } else +/*JP Strcat(sbuf, "for the use of merchandise."); +*/ + Strcpy(sbuf, "Žg‚Á‚½ŽG‰Ý‚ɑ΂µ‚āC"); +#if 1 /*JP*//*ã‚©‚çˆÚ“®*/ + Sprintf(eos(sbuf), "%s‚É%ld%s‚̎؂肪‚ ‚éD", + shkname(shkp), dtmp, currency(dtmp)); +#endif pline1(sbuf); if (umoney + eshkp->credit < dtmp) { +#if 0 /*JP*/ pline("But you don't%s have enough gold%s.", stashed_gold ? " seem to" : "", eshkp->credit ? " or credit" : ""); +#else + pline("‚µ‚©‚µC‚¨‹à%s‘«‚è‚È‚¢%sD", + eshkp->credit ? "‚à—a‚¯‹à‚à" : "‚ª", + stashed_gold ? "‚悤‚¾" : ""); +#endif return 1; } else { if (eshkp->credit >= dtmp) { eshkp->credit -= dtmp; eshkp->debit = 0L; eshkp->loan = 0L; +/*JP Your("debt is covered by your credit."); +*/ + Your("ŽØ‹à‚Í—a‚¯‹à‚Å•â‚í‚ꂽD"); } else if (!eshkp->credit) { money2mon(shkp, dtmp); eshkp->debit = 0L; eshkp->loan = 0L; +/*JP You("pay that debt."); +*/ + You("ŽØ‹à‚𕥂Á‚½D"); context.botl = 1; } else { dtmp -= eshkp->credit; @@ -1383,8 +1642,14 @@ proceed: money2mon(shkp, dtmp); eshkp->debit = 0L; eshkp->loan = 0L; +/*JP pline("That debt is partially offset by your credit."); +*/ + pline("‚»‚ÌŽØ‹à‚͈ꕔ—a‚¯‹à‚Å‘ŠŽE‚³‚ꂽD"); +/*JP You("pay the remainder."); +*/ + You("Žc‚è‚𕥂Á‚½D"); context.botl = 1; } paid = TRUE; @@ -1396,21 +1661,36 @@ proceed: int iprompt; umoney = money_cnt(invent); if (!umoney && !eshkp->credit) { +#if 0 /*JP*/ You("%shave no money or credit%s.", stashed_gold ? "seem to " : "", paid ? " left" : ""); +#else + You("%s‚¨‹à‚à—a‚¯‹à‚àŽ‚Á‚Ä‚È‚¢%sD", + paid ? "‚à‚¤" : "", stashed_gold ? "‚悤‚¾" : ""); +#endif return 0; } if ((umoney + eshkp->credit) < cheapest_item(shkp)) { +#if 0 /*JP*/ You("don't have enough money to buy%s the item%s you picked.", eshkp->billct > 1 ? " any of" : "", plur(eshkp->billct)); +#else + pline("E‚Á‚½•i•¨‚𔃂¤‚É‚Í‚¨‹à‚ª‘«‚è‚È‚¢D"); +#endif if (stashed_gold) +/*JP pline("Maybe you have some gold stashed away?"); +*/ + You("‚Ç‚±‚©‚É‚¨‹à‚ð‰B‚µ‚Ä‚¢‚é‚Ì‚©‚àH"); return 0; } /* this isn't quite right; it itemizes without asking if the * single item on the bill is partly used up and partly unpaid */ +/*JP iprompt = (eshkp->billct > 1 ? ynq("Itemized billing?") : 'y'); +*/ + iprompt = (eshkp->billct > 1 ? ynq("ŒÂ•Ê‚ÉŠ¨’肵‚Ü‚·‚©H") : 'y'); itemize = (iprompt == 'y'); if (iprompt == 'q') goto thanks; @@ -1469,8 +1749,13 @@ proceed: update_inventory(); /* Done in dopayobj() if itemize. */ } if (!ANGRY(shkp) && paid && !muteshk(shkp)) +#if 0 /*JP*/ verbalize("Thank you for shopping in %s %s!", s_suffix(shkname(shkp)), shtypes[eshkp->shoptype - SHOPBASE].name); +#else + verbalize("%s‚Ì%s‚Ö‚Ü‚½‚Ç‚¤‚¼I", shkname(shkp), + shtypes[eshkp->shoptype - SHOPBASE].name); +#endif return 1; } @@ -1499,8 +1784,13 @@ boolean itemize; return PAY_BUY; } if (itemize && umoney + ESHK(shkp)->credit == 0L) { +#if 0 /*JP*/ You("%shave no money or credit left.", stashed_gold ? "seem to " : ""); +#else + You("‚à‚¤‚¨‹à‚à—a‚¯‹à‚à‚È‚¢%sD", + stashed_gold ? "‚悤‚¾" : ""); +#endif return PAY_BROKE; } /* we may need to temporarily adjust the object, if part of the @@ -1524,26 +1814,48 @@ boolean itemize; if (itemize) { char qbuf[BUFSZ], qsfx[BUFSZ]; +/*JP Sprintf(qsfx, " for %ld %s. Pay?", ltmp, currency(ltmp)); +*/ + Sprintf(qsfx, "‚Í%ld%s‚Å‚·.”ƒ‚¢‚Ü‚·‚©H", ltmp, currency(ltmp)); +#if 0 /*JP*/ (void) safe_qbuf(qbuf, (char *) 0, qsfx, obj, (quan == 1L) ? Doname2 : doname, ansimpleoname, (quan == 1L) ? "that" : "those"); +#else + (void) safe_qbuf(qbuf, (char *) 0, qsfx, obj, + (quan == 1L) ? Doname2 : doname, ansimpleoname, + "‚»‚ê"); +#endif if (yn(qbuf) == 'n') { buy = PAY_SKIP; /* don't want to buy */ } else if (quan < bp->bquan && !consumed) { /* partly used goods */ obj->quan = bp->bquan - save_quan; /* used up amount */ +#if 0 /*JP*/ verbalize("%s for the other %s before buying %s.", ANGRY(shkp) ? "Pay" : "Please pay", simpleonames(obj), /* short name suffices */ save_quan > 1L ? "these" : "this one"); +#else + verbalize("‚»‚ê‚𔃂¤‚Ü‚¦‚É‘¼‚Ì%s‚ð%s", + simpleonames(obj), + ANGRY(shkp) ? "•¥‚¦I" : "•¥‚Á‚Ä‚­‚¾‚³‚¢D"); +#endif buy = PAY_SKIP; /* shk won't sell */ } } if (buy == PAY_BUY && umoney + ESHK(shkp)->credit < ltmp) { +#if 0 /*JP*/ You("don't%s have gold%s enough to pay for %s.", stashed_gold ? " seem to" : "", (ESHK(shkp)->credit > 0L) ? " or credit" : "", thesimpleoname(obj)); +#else + You("%s‚Ì‘ã‹à‚ðŽx•¥‚¤‚¾‚¯‚Ì‚¨‹à%sŽ‚Á‚Ä‚È‚¢%sD", + thesimpleoname(obj), + (ESHK(shkp)->credit > 0L) ? "‚à—a‚¯‹à‚à" : "‚ð", + stashed_gold ? "‚悤‚¾" : ""); +#endif buy = itemize ? PAY_SKIP : PAY_CANT; } @@ -1556,10 +1868,17 @@ boolean itemize; } pay(ltmp, shkp); +#if 0 /*JP*/ shk_names_obj(shkp, obj, consumed ? "paid for %s at a cost of %ld gold piece%s.%s" : "bought %s for %ld gold piece%s.%s", ltmp, ""); +#else + shk_names_obj(shkp, obj, + consumed ? "%s‚É‹à‰Ý%ld–‡%s‚ðŽx•¥‚Á‚½D%s" + : "%s‚ð‹à‰Ý%ld–‡%s‚Å”ƒ‚Á‚½D%s", + ltmp, ""); +#endif obj->quan = save_quan; /* restore original count */ /* quan => amount just bought, save_quan => remaining unpaid count */ if (consumed) { @@ -1695,11 +2014,21 @@ int croaked; if (cansee(shkp->mx, shkp->my) && croaked) { takes[0] = '\0'; if (has_head(shkp->data) && !rn2(2)) +#if 0 /*JP*/ Sprintf(takes, ", shakes %s %s,", mhis(shkp), mbodypart(shkp, HEAD)); +#else + Strcpy(takes, "Žñ‚ðU‚èC"); +#endif +#if 0 /*JP*/ pline("%s %slooks at your corpse%s and %s.", Monnam(shkp), (!shkp->mcanmove || shkp->msleeping) ? "wakes up, " : "", takes, !inhishop(shkp) ? "disappears" : "sighs"); +#else + pline("%s‚Í%s‚ ‚È‚½‚ÌŽ€‘Ì‚ðŒ©‚Ä%s%sD", Monnam(shkp), + (!shkp->mcanmove || shkp->msleeping) ? "–Ú‚ð‚³‚Ü‚·‚Æ" : "", + takes, !inhishop(shkp) ? "Žp‚ðÁ‚µ‚½" : "—­‘§‚ð‚‚¢‚½"); +#endif } rouse_shk(shkp, FALSE); /* wake shk for bones */ taken = (roomno == eshkp->shoproom); @@ -1713,7 +2042,10 @@ int croaked; && !eshkp->following) { taken = (invent != 0); if (taken) +/*JP pline("%s gratefully inherits all your possessions.", +*/ + pline("%s‚Í‚ ‚È‚½‚ÌŽ‚¿•¨‚ð‚ ‚è‚ª‚½‚­Žó‚¯‚Æ‚Á‚½D", shkname(shkp)); set_repo_loc(shkp); goto clear; @@ -1733,10 +2065,18 @@ int croaked; umoney = money_cnt(invent); takes[0] = '\0'; if (!shkp->mcanmove || shkp->msleeping) +/*JP Strcat(takes, "wakes up and "); +*/ + Strcat(takes, "–Ú‚ª‚³‚ß‚é‚ƁC"); if (distu(shkp->mx, shkp->my) > 2) +/*JP Strcat(takes, "comes and "); +*/ + Strcat(takes, "‹ß‚«C"); +#if 0 /*JP*/ Strcat(takes, "takes"); +#endif if (loss > umoney || !loss || roomno == eshkp->shoproom) { eshkp->robbed -= umoney; @@ -1745,17 +2085,27 @@ int croaked; if (umoney > 0) money2mon(shkp, umoney); context.botl = 1; +/*JP pline("%s %s all your possessions.", shkname(shkp), takes); +*/ + pline("%s‚Í%s‚ ‚È‚½‚ÌŽ‚¿•¨‚·‚ׂĂð‚à‚ç‚Á‚½D", shkname(shkp), takes); taken = TRUE; /* where to put player's invent (after disclosure) */ set_repo_loc(shkp); } else { money2mon(shkp, loss); context.botl = 1; +#if 0 /*JP*/ pline("%s %s the %ld %s %sowed %s.", Monnam(shkp), takes, loss, currency(loss), strncmp(eshkp->customer, plname, PL_NSIZ) ? "" : "you ", shkp->female ? "her" : "him"); +#else + pline("%s‚Í%s%sŽØ‚è‚Ä‚¢‚é%ld%s‚ðŽó‚¯‚Æ‚Á‚½D", Monnam(shkp), takes, + strncmp(eshkp->customer, plname, PL_NSIZ) ? + "" : "‚ ‚È‚½‚ª", + loss, currency(loss)); +#endif /* shopkeeper has now been paid in full */ pacify_shk(shkp); eshkp->following = 0; @@ -2335,10 +2685,14 @@ const char *arg; obj_name = doname(obj); /* Use an alternate message when extra information is being provided */ if (was_unknown) { +#if 0 /*JP*/ Sprintf(fmtbuf, "%%s; you %s", fmt); obj_name[0] = highc(obj_name[0]); pline(fmtbuf, obj_name, (obj->quan > 1L) ? "them" : "it", amt, plur(amt), arg); +#else + pline(fmt, obj_name, amt, "", arg); +#endif } else { You(fmt, obj_name, amt, plur(amt), arg); } @@ -2401,7 +2755,10 @@ boolean ininv, dummy, silent; return; } else if (ESHK(shkp)->billct == BILLSZ) { if (!silent) +/*JP You("got that for free!"); +*/ + You("‚»‚ê‚ð‚½‚¾‚ÅŽè‚É“ü‚ꂽI"); return; } @@ -2446,15 +2803,24 @@ boolean ininv, dummy, silent; char buf[BUFSZ]; if (!ltmp) { +/*JP pline("%s has no interest in %s.", Monnam(shkp), the(xname(obj))); +*/ + pline("%s‚Í%s‚É‹»–¡‚ðŽ¦‚³‚È‚¢D", Monnam(shkp), xname(obj)); return; } if (!ininv) { +#if 0 /*JP*/ pline("%s will cost you %ld %s%s.", The(xname(obj)), ltmp, currency(ltmp), (obj->quan > 1L) ? " each" : ""); +#else + pline("%s‚Í%s‚½‚Á‚½‚Ì%ld%s‚¾D", xname(obj), + (obj->quan > 1L) ? "ˆê‚Â" : "", ltmp, currency(ltmp)); +#endif } else { long save_quan = obj->quan; +#if 0 /*JP*/ Strcpy(buf, "\"For you, "); if (ANGRY(shkp)) { Strcat(buf, "scum;"); @@ -2462,24 +2828,52 @@ boolean ininv, dummy, silent; append_honorific(buf); Strcat(buf, "; only"); } +#else + Strcpy(buf, "u"); + if (ANGRY(shkp)) { + Strcat(buf, "‚±‚̃Nƒ\‚Á‚½‚êC"); + } else { + append_honorific(buf); + Strcat(buf, "C"); + } +#endif obj->quan = 1L; /* fool xname() into giving singular */ +#if 0 /*JP*/ pline("%s %ld %s %s %s%s.\"", buf, ltmp, currency(ltmp), (save_quan > 1L) ? "per" : (contentscount && !obj->unpaid) ? "for the contents of this" : "for this", xname(obj), (contentscount && obj->unpaid) ? and_its_contents : ""); +#else + pline("%s%s%s‚½‚Á‚½‚Ì%ld%s‚¾Dv", buf, xname(obj), + (save_quan > 1L) ? "‚͈ê‚Â" : (contentscount && !obj->unpaid) + ? "‚Ì’†g‚Í" + : "‚Í", + ltmp, currency(ltmp)); +#endif obj->quan = save_quan; } } else if (!silent) { if (ltmp) +#if 0 /*JP*/ pline_The("list price of %s%s%s is %ld %s%s.", (contentscount && !obj->unpaid) ? the_contents_of : "", the(xname(obj)), (contentscount && obj->unpaid) ? and_its_contents : "", ltmp, currency(ltmp), (obj->quan > 1L) ? " each" : ""); +#else + pline_The("%s%s%s%s‚½‚Á‚½‚Ì%ld%s‚¾.", + the(xname(obj)), + (contentscount && !obj->unpaid) ? "‚Ì’†g‚Í" : "", + (contentscount && obj->unpaid) ? and_its_contents : "", + (obj->quan > 1L) ? "‚»‚ꂼ‚ê" : "", ltmp, currency(ltmp)); +#endif else +/*JP pline("%s does not notice.", Monnam(shkp)); +*/ + pline("%s‚Í‹C‚ª‚‚¢‚Ä‚¢‚È‚¢D", Monnam(shkp)); } } @@ -2489,18 +2883,32 @@ char *buf; { /* (chooses among [0]..[3] normally; [1]..[4] after the Wizard has been killed or invocation ritual performed) */ +#if 0 /*JP*/ static const char *const honored[] = { "good", "honored", "most gracious", "esteemed", "most renowned and sacred" }; +#else + static const char *const honored[] = { + "‚â‚Ÿ", "‚â‚ŸC–¼—_‚ ‚é", "‚â‚ŸCã•i‚È", + "‚â‚ŸC‘¸Œh‚·‚é", + "‚â‚ŸC‚–¼‚Ő_¹‚È" + }; +#endif Strcat(buf, honored[rn2(SIZE(honored) - 1) + u.uevent.udemigod]); if (is_vampire(youmonst.data)) Strcat(buf, (flags.female) ? " dark lady" : " dark lord"); else if (is_elf(youmonst.data)) Strcat(buf, (flags.female) ? " hiril" : " hir"); else +#if 0 /*JP*/ Strcat(buf, !is_human(youmonst.data) ? " creature" : (flags.female) ? " lady" : " sir"); +#else + Strcat(buf, !is_human(youmonst.data) ? "¶•¨‚³‚ñ" : (flags.female) + ? "‚¨ì‚³‚ñ" + : "’U“ß‚³‚ñ"); +#endif } void @@ -2705,31 +3113,60 @@ boolean peaceful, silent; if (credit_use) { if (ESHK(shkp)->credit) { +#if 0 /*JP*/ You("have %ld %s credit remaining.", ESHK(shkp)->credit, currency(ESHK(shkp)->credit)); +#else + You("%ld%s‚Ì—a‚¯‹à‚ªŽc‚Á‚Ä‚¢‚éD", ESHK(shkp)->credit, + currency(ESHK(shkp)->credit)); +#endif return value; } else if (!value) { +/*JP You("have no credit remaining."); +*/ + pline("—a‚¯‹à‚Í‚È‚­‚È‚Á‚½D"); return 0; } +/*JP still = "still "; +*/ + still = "‚³‚ç‚É"; } if (obj->oclass == COIN_CLASS) +#if 0 /*JP*/ You("%sowe %s %ld %s!", still, mon_nam(shkp), value, currency(value)); +#else + You("%s%s‚É%ld%s‚ÌŽØ‚è‚ð‚‚­‚Á‚½I", still, mon_nam(shkp), value, + currency(value)); +#endif else +#if 0 /*JP*/ You("%sowe %s %ld %s for %s!", still, mon_nam(shkp), value, currency(value), obj->quan > 1L ? "them" : "it"); +#else + You("%s%s‚É%ld%s‚ÌŽØ‚è‚ð‚‚­‚Á‚½I", still, mon_nam(shkp), value, + currency(value)); +#endif } } else { ESHK(shkp)->robbed += value; if (!silent) { if (cansee(shkp->mx, shkp->my)) { +#if 0 /*JP*/ Norep("%s booms: \"%s, you are a thief!\"", Monnam(shkp), plname); +#else + Norep("%s‚Í‹©‚ñ‚¾Fu%sC‘҂āI‚±‚Ì‚Ç‚ë‚Ú‚¤‚߁Iv", Monnam(shkp), + plname); +#endif } else +/*JP Norep("You hear a scream, \"Thief!\""); +*/ + Norep("‹àØ‚萺‚ð•·‚¢‚½Cu‘҂āI‚±‚Ì‚Ç‚ë‚Ú‚¤‚߁Iv"); } hot_pursuit(shkp); (void) angry_guards(FALSE); @@ -2811,7 +3248,10 @@ xchar x, y; if (!unpaid && (sell_how != SELL_DONTSELL) && !special_stock(obj, shkp, FALSE)) +/*JP pline("%s seems uninterested.", Monnam(shkp)); +*/ + pline("%s‚Í‹»–¡‚ª‚È‚¢‚悤‚¾D", Monnam(shkp)); return; } @@ -2821,7 +3261,10 @@ xchar x, y; if (ANGRY(shkp)) { /* they become shop-objects, no pay */ if (!muteshk(shkp)) +/*JP verbalize("Thank you, scum!"); +*/ + verbalize("‚ ‚肪‚Æ‚æC‚±‚̃Nƒ\‚Á‚½‚êI"); subfrombill(obj, shkp); return; } @@ -2835,7 +3278,10 @@ xchar x, y; eshkp->robbed = 0L; if (offer && !muteshk(shkp)) verbalize( +/*JP "Thank you for your contribution to restock this recently plundered shop."); +*/ + "Šñ‘¡‚ð‚Ç‚¤‚à‚ ‚肪‚Æ‚¤DÅ‹ß“‚Ý‚É‚ ‚Á‚ÄŽQ‚Á‚Ä‚½‚ñ‚¾D"); subfrombill(obj, shkp); return; } @@ -2852,7 +3298,10 @@ xchar x, y; eshkp->loan = 0L; } eshkp->debit -= gltmp; +/*JP Your("debt is %spaid off.", eshkp->debit ? "partially " : ""); +*/ + Your("ŽØ‹à‚Í%sŽx•¥‚í‚ꂽD", eshkp->debit ? "ˆê•”" : ""); } else { long delta = gltmp - eshkp->debit; @@ -2860,11 +3309,19 @@ xchar x, y; if (eshkp->debit) { eshkp->debit = 0L; eshkp->loan = 0L; +/*JP Your("debt is paid off."); +*/ + Your("ŽØ‹à‚ÍŽx•¥‚í‚ꂽD"); } if (eshkp->credit == delta) +#if 0 /*JP*/ You("have established %ld %s credit.", delta, currency(delta)); +#else + pline("%ld%s‚ð—a‚¯‚½D", delta, + currency(delta)); +#endif else pline("%ld %s added to your credit; total is now %ld %s.", delta, currency(delta), eshkp->credit, @@ -2888,8 +3345,13 @@ xchar x, y; || offer == 0L || (obj->oclass == FOOD_CLASS && obj->oeaten) || (Is_candle(obj) && obj->age < 20L * (long) objects[obj->otyp].oc_cost)) { +#if 0 /*JP*/ pline("%s seems uninterested%s.", Monnam(shkp), cgold ? " in the rest" : ""); +#else + pline("%s‚Í%s‹»–¡‚ª‚È‚¢‚悤‚¾D", Monnam(shkp), + cgold ? "Žc‚蕨‚É‚Í" : ""); +#endif if (container) dropped_container(obj, shkp, FALSE); obj->no_charge = 1; @@ -2904,11 +3366,21 @@ xchar x, y; if (sell_how == SELL_NORMAL || auto_credit) { c = sell_response = 'y'; } else if (sell_response != 'n') { +/*JP pline("%s cannot pay you at present.", shkname(shkp)); +*/ + pline("%s‚͍¡‚Ì‚Æ‚±‚ë‚ÍŽx•¥‚¦‚È‚¢D", Monnam(shkp)); +#if 0 /*JP*/ Sprintf(qbuf, "Will you accept %ld %s in credit for ", tmpcr, currency(tmpcr)); c = ynaq(safe_qbuf(qbuf, qbuf, "?", obj, doname, thesimpleoname, (obj->quan == 1L) ? "that" : "those")); +#else + Sprintf(qbuf, "‚ɂ‚¢‚Ä%ld%s‚Ì—a‚¯‹à‚ðŽó‚¯‚¢‚ê‚Ü‚·‚©H", tmpcr, + currency(tmpcr)); + c = ynaq(safe_qbuf(qbuf, "", qbuf, obj, doname, thesimpleoname, + "‚»‚ê")); +#endif if (c == 'a') { c = 'y'; auto_credit = TRUE; @@ -2917,12 +3389,21 @@ xchar x, y; c = 'n'; if (c == 'y') { +#if 0 /*JP*/ shk_names_obj( shkp, obj, (sell_how != SELL_NORMAL) ? "traded %s for %ld zorkmid%s in %scredit." : "relinquish %s and acquire %ld zorkmid%s in %scredit.", tmpcr, (eshkp->credit > 0L) ? "additional " : ""); +#else + shk_names_obj( + shkp, obj, + (sell_how != SELL_NORMAL) + ? "%s‚ð‹à‰Ý%ld–‡•ª‚Ì—a‚¯‹à‚Ŏ󂯂ƂÁ‚½%sD" + : "%s‚ð“n‚µC‹à‰Ý%ld–‡•ª‚Ì—a‚¯‹à‚𓾂½%sD", + tmpcr, ""); +#endif eshkp->credit += tmpcr; subfrombill(obj, shkp); } else { @@ -2972,6 +3453,7 @@ xchar x, y; "... your item in the . Sell it?" "... your items in the . Sell them?" */ +#if 0 /*JP*/ Sprintf(qbuf, "%s offers%s %ld gold piece%s for %s%s ", shkname(shkp), short_funds ? " only" : "", offer, plur(offer), @@ -2990,6 +3472,17 @@ xchar x, y; one ? "it" : "them"); (void) safe_qbuf(qbuf, qbuf, qsfx, obj, xname, simpleonames, one ? "that" : "those"); +#else + Sprintf(qbuf, + "%s‚Í‚ ‚È‚½‚Ì", Monnam(shkp)); + Sprintf(qbuf, + "%s‚É%ld‚Ì’l%sD”„‚è‚Ü‚·‚©H", + (!ltmp && cltmp) ? "‚Ì’†g" : "", + offer, + short_funds ? "‚µ‚©‚‚¯‚È‚©‚Á‚½" : "‚ð‚‚¯‚½"); + (void) safe_qbuf(qbuf, qbuf, qsfx, obj, xname, simpleonames, + "‚»‚ê"); +#endif } else qbuf[0] = '\0'; /* just to pacify lint */ @@ -3012,6 +3505,7 @@ xchar x, y; obj->no_charge = 1; subfrombill(obj, shkp); pay(-offer, shkp); +#if 0 /*JP*/ shk_names_obj(shkp, obj, (sell_how != SELL_NORMAL) ? ((!ltmp && cltmp && only_partially_your_contents) @@ -3019,6 +3513,15 @@ xchar x, y; : "sold %s for %ld gold piece%s.%s") : "relinquish %s and receive %ld gold piece%s in compensation.%s", offer, ""); +#else + shk_names_obj(shkp, obj, + (sell_how != SELL_NORMAL) + ? ((!ltmp && cltmp && only_partially_your_contents) + ? "%s‚Ì’†g‚ð‹à‰Ý%ld–‡‚Å”„‚Á‚½%sD%s" + : "%s‚ð‹à‰Ý%ld–‡‚Å”„‚Á‚½%sD%s") + : "%s‚ð“n‚µC‹à‰Ý%ld–‡‚̑㏞‚ðŽó‚¯‚Æ‚Á‚½%sD%s", + offer, ""); +#endif break; default: impossible("invalid sell response"); @@ -3063,7 +3566,10 @@ int mode; /* 0: deliver count 1: paged */ } datawin = create_nhwindow(NHW_MENU); +/*JP putstr(datawin, 0, "Unpaid articles already used up:"); +*/ + putstr(datawin, 0, "‚·‚Å‚ÉŽg‚Á‚Ä‚µ‚Ü‚Á‚½–¢•¥‚Ì•i–ځF"); putstr(datawin, 0, ""); totused = 0L; @@ -3093,11 +3599,19 @@ int mode; /* 0: deliver count 1: paged */ if (totused) putstr(datawin, 0, ""); totused += eshkp->debit; +#if 0 /*JP*/ buf_p = xprname((struct obj *) 0, "usage charges and/or other fees", GOLD_SYM, FALSE, eshkp->debit, 0L); +#else + buf_p = xprname((struct obj *) 0, "Žg—p—¿‚Ü‚½‚Í‘¼‚̎萔—¿", + GOLD_SYM, FALSE, eshkp->debit, 0L); +#endif putstr(datawin, 0, buf_p); } +/*JP buf_p = xprname((struct obj *) 0, "Total:", '*', FALSE, totused, 0L); +*/ + buf_p = xprname((struct obj *) 0, "‡ŒvF", '*', FALSE, totused, 0L); putstr(datawin, 0, ""); putstr(datawin, 0, buf_p); display_nhwindow(datawin, FALSE); @@ -3167,11 +3681,20 @@ register xchar x, y; /* if it is the shk's pos, you hit and anger him */ && (shkp->mx != x || shkp->my != y)) { if (mnearto(shkp, x, y, TRUE) && !muteshk(shkp)) +/*JP verbalize("Out of my way, scum!"); +*/ + verbalize("‚Ç‚¯CƒNƒ\‚Á‚½‚êI"); if (cansee(x, y)) { +#if 0 /*JP*/ pline("%s nimbly%s catches %s.", Monnam(shkp), (x == shkp->mx && y == shkp->my) ? "" : " reaches over and", the(xname(obj))); +#else + pline("%s‚Í‚·‚΂₭%s%s‚ð‚‚©‚Ü‚¦‚½D", Monnam(shkp), + (x == shkp->mx && y == shkp->my) ? "" : "‹ß‚¢‚Ä", + xname(obj)); +#endif if (!canspotmon(shkp)) map_invisible(x, y); delay_output(); @@ -3307,42 +3830,78 @@ boolean croaked; return; if (saw_untrap) { - Sprintf(trapmsg, "%s trap%s", +#if 0 /*JP*/ + Sprintf(trapmsg, "% trap", (saw_untrap > 3) ? "several" : (saw_untrap > 1) ? "some" : "a", plur(saw_untrap)); Sprintf(eos(trapmsg), " %s", vtense(trapmsg, "are")); Sprintf(eos(trapmsg), " removed from the %s", (doorway_trap && saw_untrap == 1) ? "doorway" : "floor"); +#else + Sprintf(trapmsg, "%s㩂ª%s‚©‚çÁ‚¦", + (saw_untrap > 3) ? "‚ ‚¿‚±‚¿‚Ì" : (saw_untrap > 1) ? "‰½ƒJŠ‚Ì" + : "", + (doorway_trap && saw_untrap == 1) ? "”à" : "°"); +#endif } else trapmsg[0] = '\0'; /* not just lint suppression... */ if (saw_walls) { +#if 0 /*JP*/ char wallbuf[BUFSZ]; Sprintf(wallbuf, "section%s", plur(saw_walls)); pline("Suddenly, %s %s of wall %s up!", (saw_walls == 1) ? "a" : (saw_walls <= 3) ? "some" : "several", wallbuf, vtense(wallbuf, "close")); +#else + pline("“Ë‘RC•Ç‚ª%s•Â‚Ü‚Á‚½I", + (saw_walls == 1) ? "" : (saw_walls <= 3) ? "‰½‰ÓŠ‚©" : "‚ ‚¿‚±‚¿‚Å"); +#endif if (saw_door) +/*JP pline_The("shop door reappears!"); +*/ + pline("“X‚Ì”à‚ª‚Ü‚½Œ»‚í‚ꂽI"); if (saw_floor) +/*JP pline_The("floor is repaired!"); +*/ + pline("°‚͏C•œ‚³‚ꂽI"); if (saw_untrap) +/*JP pline("%s!", upstart(trapmsg)); +*/ + pline("%s‚½I", trapmsg); } else { if (saw_door || saw_floor || saw_untrap) +#if 0 /*JP*/ pline("Suddenly, %s%s%s%s%s!", saw_door ? "the shop door reappears" : "", (saw_door && saw_floor) ? " and " : "", saw_floor ? "the floor damage is gone" : "", ((saw_door || saw_floor) && *trapmsg) ? " and " : "", trapmsg); +#else + pline("“Ë‘RC%s%s%s%s%s‚½!", + saw_door ? "“X‚Ì”à‚ª‚Ü‚½Œ»‚í‚ê" : "", + (saw_door && saw_floor) ? "C" : "", + saw_floor ? "°‚̏‚ªC•œ‚³‚ê" : "", + ((saw_door || saw_floor) && *trapmsg) ? "C" : "", + trapmsg); +#endif else if (inside_shop(u.ux, u.uy) == ESHK(shkp)->shoproom) +/*JP You_feel("more claustrophobic than before."); +*/ + You("‘O‚æ‚è•ÂŠ‹°•|Ç‹C–¡‚É‚È‚Á‚½D"); else if (!Deaf && !rn2(10)) +/*JP Norep("The dungeon acoustics noticeably change."); +*/ + Norep("–À‹{‚̉¹‹¿‚Í‚¢‚¿‚¶‚邵‚­•Ï‚Á‚½D"); } if (stop_picking) stop_occupation(); @@ -3436,7 +3995,10 @@ boolean catchup; /* restoring a level */ * Take the easy way out and put ball&chain under hero. */ if (!muteshk(shkp)) +/*JP verbalize("Get your junk out of my wall!"); +*/ + verbalize("‚»‚̃Kƒ‰ƒNƒ^‚ðŠO‚ÉŽ‚Á‚čs‚«‚ȁI"); unplacebc(); /* pick 'em up */ placebc(); /* put 'em down */ } @@ -3507,26 +4069,44 @@ register struct monst *shkp; || (omx == u.ux || omy == u.uy))) { if (ANGRY(shkp) || (Conflict && !resist(shkp, RING_CLASS, 0, 0))) { if (Displaced) +/*JP Your("displaced image doesn't fool %s!", mon_nam(shkp)); +*/ + pline("%s‚Í‚ ‚È‚½‚ÌŒ¶‰e‚É‚¾‚Ü‚³‚ê‚È‚©‚Á‚½I", mon_nam(shkp)); (void) mattacku(shkp); return 0; } if (eshkp->following) { if (strncmp(eshkp->customer, plname, PL_NSIZ)) { if (!muteshk(shkp)) +#if 0 /*JP*/ verbalize("%s, %s! I was looking for %s.", Hello(shkp), plname, eshkp->customer); +#else + verbalize("%sI‚킽‚µ‚Í%s‚ð’T‚µ‚Ä‚¢‚Ü‚·D", Hello(shkp), + eshkp->customer); +#endif eshkp->following = 0; return 0; } if (moves > followmsg + 4) { if (!muteshk(shkp)) +#if 0 /*JP*/ verbalize("%s, %s! Didn't you forget to pay?", Hello(shkp), plname); +#else + verbalize("%sIŽx•¥‚¢‚ð–Y‚ê‚Ä‚¢‚Ü‚¹‚ñ‚©H", + Hello(shkp)); +#endif followmsg = moves; if (!rn2(9)) { +#if 0 /*JP*/ pline("%s doesn't like customers who don't pay.", Monnam(shkp)); +#else + pline ("%s‚Í‹à‚𕥂í‚È‚¢‹q‚ªŒ™‚¢‚Ý‚½‚¢‚¾D", + Monnam(shkp)); +#endif rile_shk(shkp); } } @@ -3624,7 +4204,10 @@ register int fall; { register struct monst *shkp = shop_keeper(*u.ushops); int lang; +/*JP const char *grabs = "grabs"; +*/ + const char *grabs = "‚‚©‚ñ‚¾"; if (!shkp) return; @@ -3640,7 +4223,10 @@ register int fall; if (!inhishop(shkp)) { if (Role_if(PM_KNIGHT)) { +/*JP You_feel("like a common thief."); +*/ + You("“D–_“¯‘R‚È‹C‚ª‚µ‚½D"); adjalign(-sgn(u.ualign.type)); } return; @@ -3649,15 +4235,28 @@ register int fall; if (!fall) { if (lang == 2) { if (u.utraptype == TT_PIT) +#if 0 /*JP*/ verbalize( "Be careful, %s, or you might fall through the floor.", flags.female ? "madam" : "sir"); +#else + verbalize("’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢%sC°‚©‚ç—Ž‚¿‚Ü‚·‚æD", + flags.female ? "‚¨ì‚³‚ñ" : "‚¨‹q‚³‚ñ"); +#endif else +#if 0 /*JP*/ verbalize("%s, do not damage the floor here!", flags.female ? "Madam" : "Sir"); +#else + verbalize("%sC°‚ɏ‚ð‚‚¯‚È‚¢‚Å‚­‚¾‚³‚¢I", + flags.female ? "‚¨ì‚³‚ñ" : "‚¨‹q‚³‚ñ"); +#endif } if (Role_if(PM_KNIGHT)) { +/*JP You_feel("like a common thief."); +*/ + You("“D–_“¯‘R‚È‹C‚ª‚µ‚½D"); adjalign(-sgn(u.ualign.type)); } } else if (!um_dist(shkp->mx, shkp->my, 5) @@ -3666,7 +4265,10 @@ register int fall; register struct obj *obj, *obj2; if (nolimbs(shkp->data)) { +/*JP grabs = "knocks off"; +*/ + grabs = "’@‚«—Ž‚µ‚½"; #if 0 /* This is what should happen, but for balance * reasons, it isn't currently. @@ -3683,17 +4285,29 @@ register int fall; /* for some reason the shopkeeper can't come next to you */ if (distu(shkp->mx, shkp->my) > 2) { if (lang == 2) + +/*JP pline("%s curses you in anger and frustration!", +*/ + pline("“{‚è‚Å•s–ž‚Ì‚½‚Ü‚Á‚Ä‚¢‚é%s‚Í‚ ‚È‚½‚ðŽô‚Á‚½I", shkname(shkp)); else if (lang == 1) growl(shkp); rile_shk(shkp); return; } else +#if 0 /*JP*/ pline("%s %s, and %s your backpack!", shkname(shkp), makeplural(locomotion(shkp->data, "leap")), grabs); +#else + pline("%s‚Í”ò‚т‚¢‚āC‚ ‚È‚½‚Ì”w•‰‚¢‘Ü‚ð%sI", shkname(shkp), + grabs); +#endif } else +/*JP pline("%s %s your backpack!", shkname(shkp), grabs); +*/ + pline("%s‚Í‚ ‚È‚½‚Ì”w•‰‚¢‘Ü‚ð%sI", shkname(shkp), grabs); for (obj = invent; obj; obj = obj2) { obj2 = obj->nobj; @@ -3747,8 +4361,13 @@ boolean cant_mollify; register boolean uinshp = (*u.ushops != '\0'); char qbuf[80]; register xchar x, y; +#if 0 /*JP*/ boolean dugwall = (!strcmp(dmgstr, "dig into") /* wand */ || !strcmp(dmgstr, "damage")); /* pick-axe */ +#else + boolean ni_wo = !strcmp(dmgstr, "ŒŠ‚ð‚ ‚¯‚é"); /* wand */ + boolean dugwall = (ni_wo || !strcmp(dmgstr, "‚‚¯‚é")); /* pick-axe */ +#endif boolean animal, pursue; struct damage *tmp_dam, *appear_here = 0; /* any number >= (80*80)+(24*24) would do, actually */ @@ -3827,7 +4446,10 @@ boolean cant_mollify; if (uinshp) { if (um_dist(shkp->mx, shkp->my, 1) && !um_dist(shkp->mx, shkp->my, 3)) { +/*JP pline("%s leaps towards you!", shkname(shkp)); +*/ + pline("%s‚Í‚ ‚È‚½‚É”ò‚Ñ‚©‚©‚Á‚½I", shkname(shkp)); mnexto(shkp); } pursue = um_dist(shkp->mx, shkp->my, 1); @@ -3842,8 +4464,14 @@ boolean cant_mollify; */ if (MON_AT(x, y)) { if (!Deaf && !animal) { +/*JP You_hear("an angry voice:"); +*/ + You("“{‚è‚̐º‚ð•·‚¢‚½F"); +/*JP verbalize("Out of my way, scum!"); +*/ + verbalize("‚Ç‚¯IƒNƒ\‚Á‚½‚êI"); wait_synch(); #if defined(UNIX) || defined(VMS) #if defined(SYSV) || defined(ULTRIX) || defined(VMS) @@ -3866,33 +4494,64 @@ boolean cant_mollify; if (animal && shkp->mcanmove && !shkp->msleeping) yelp(shkp); } else if (pursue || uinshp || !um_dist(x, y, 1)) { +#if 0 /*JP*/ verbalize("How dare you %s my %s?", dmgstr, dugwall ? "shop" : "door"); +#else + verbalize("‚Ç‚¤‚µ‚Ä%s%s%s‚肵‚½‚ñ‚¾H", + dugwall ? "“X" : "”à", + ni_wo ? "‚É" : "‚ð", + jpast(dmgstr)); +#endif } else { +/*JP pline("%s shouts:", shkname(shkp)); +*/ + pline("%s‚Í‚³‚¯‚ñ‚¾F", shkname(shkp)); +#if 0 /*JP*/ verbalize("Who dared %s my %s?", dmgstr, dugwall ? "shop" : "door"); +#else + verbalize("’N‚ª%s%s%s‚肵‚½‚ñ‚¾‚낤H", + dugwall ? "“X" : "”à", + ni_wo ? "‚É" : "‚ð", + jpast(dmgstr)); +#endif } hot_pursuit(shkp); return; } if (Invis) +/*JP Your("invisibility does not fool %s!", shkname(shkp)); +*/ + pline("%s‚Í“§–¾‚È‚ ‚È‚½‚É‚¾‚Ü‚³‚ê‚È‚©‚Á‚½I", shkname(shkp)); +#if 0 /*JP*/ Sprintf(qbuf, "%sYou did %ld %s worth of damage!%s Pay?", !animal ? cad(TRUE) : "", cost_of_damage, currency(cost_of_damage), !animal ? "\"" : ""); +#else + Sprintf(qbuf,"u‚¨‚¢I%ld%s‚Ì‘¹ŠQ‚¾Iv•¥‚¢‚Ü‚·‚©H", + cost_of_damage, currency(cost_of_damage)); +#endif if (yn(qbuf) != 'n') { cost_of_damage = check_credit(cost_of_damage, shkp); money2mon(shkp, cost_of_damage); context.botl = 1; +/*JP pline("Mollified, %s accepts your restitution.", shkname(shkp)); +*/ + pline("%s‚́CŠ´î‚ð‚â‚í‚ç‚°”…ž‹à‚ðŽó‚¯‚Æ‚Á‚½D", shkname(shkp)); /* move shk back to his home loc */ home_shk(shkp, FALSE); pacify_shk(shkp); } else { if (!animal) +/*JP verbalize("Oh, yes! You'll pay!"); +*/ + verbalize("‚³‚ C•¥‚¤‚ñ‚¾I"); else growl(shkp); hot_pursuit(shkp); @@ -3954,7 +4613,10 @@ register struct obj *first_obj; struct monst *shkp = shop_keeper(inside_shop(u.ux, u.uy)); tmpwin = create_nhwindow(NHW_MENU); +/*JP putstr(tmpwin, 0, "Fine goods for sale:"); +*/ + putstr(tmpwin, 0, "”„‚è‚É‚Å‚Ä‚¢‚é‚·‚΂炵‚¢¤•iF"); putstr(tmpwin, 0, ""); for (otmp = first_obj; otmp; otmp = otmp->nexthere) { if (otmp->oclass == COIN_CLASS) @@ -3966,14 +4628,27 @@ register struct obj *first_obj; if (Has_contents(otmp)) cost += contained_cost(otmp, shkp, 0L, FALSE, FALSE); if (!cost) { +/*JP Strcpy(price, "no charge"); +*/ + Strcpy(price, "–³—¿"); contentsonly = FALSE; } else { +#if 0 /*JP*/ Sprintf(price, "%ld %s%s", cost, currency(cost), (otmp->quan) > 1L ? " each" : ""); +#else + Sprintf(price, "%s%ld%s", + otmp->quan > 1L ? "‚»‚ꂼ‚ê" : "", cost, currency(cost)); +#endif } +#if 0 /*JP*/ Sprintf(buf, "%s%s, %s", contentsonly ? the_contents_of : "", doname(otmp), price); +#else + Sprintf(buf, "%s%sC%s", doname(otmp), + contentsonly ? "‚Ì’†g" : "", price); +#endif putstr(tmpwin, 0, buf), cnt++; } if (cnt > 1) { @@ -3981,20 +4656,40 @@ register struct obj *first_obj; } else if (cnt == 1) { if (!cost) { /* ", no charge" */ +#if 0 /*JP*/ pline("%s!", upstart(buf)); /* buf still contains the string */ +#else + pline("%sI", buf); /* buf still contains the string */ +#endif } else { /* print cost in slightly different format, so can't reuse buf; cost and contentsonly are already set up */ +#if 0 /*JP*/ Sprintf(buf, "%s%s", contentsonly ? the_contents_of : "", doname(first_obj)); +#else + Sprintf(buf, "%s%s", doname(first_obj), + contentsonly ? "‚Ì’†g" : ""); +#endif +#if 0 /*JP*/ pline("%s, price %ld %s%s%s", upstart(buf), cost, currency(cost), (first_obj->quan > 1L) ? " each" : "", contentsonly ? "." : shk_embellish(first_obj, cost)); +#else + pline("%s%s‚Í%s%ld%s‚¾D", + shk_embellish(first_obj, cost), buf, + first_obj->quan > 1L ? "‚»‚ꂼ‚ê" : "", + cost, currency(cost)); +#endif } } destroy_nhwindow(tmpwin); } +/*JP + “XŽå‚Ì”„‚蕶‹åB‰pŒê‚Å‚Í––”ö‚É•t‚­‚ª“ú–{Œê‚ł͐擪‚É•t‚­B + ’¼Œã‚ɃAƒCƒeƒ€–¼‚ª—ˆ‚é‚̂ŁAƒAƒCƒeƒ€‚ɑ΂·‚éŒ`—e‚Å‚à“Æ—§‚µ‚½•¶‚Å‚à—Ç‚¢B + */ STATIC_OVL const char * shk_embellish(itm, cost) register struct obj *itm; @@ -4011,40 +4706,91 @@ long cost; else o = itm->oclass; if (o == FOOD_CLASS) +/*JP return ", gourmets' delight!"; +*/ + return "ƒOƒ‹ƒ‚ª‹ƒ‚¢‚ÄŠì‚Ô"; if (objects[itm->otyp].oc_name_known ? objects[itm->otyp].oc_magic : (o == AMULET_CLASS || o == RING_CLASS || o == WAND_CLASS || o == POTION_CLASS || o == SCROLL_CLASS || o == SPBOOK_CLASS)) +/*JP return ", painstakingly developed!"; +*/ + return "ˆê‹‰‚Ì–‚—Í‚ð”é‚ß‚½"; +/*JP return ", superb craftsmanship!"; +*/ + return "ˆê—¬El‚̍ì‚Á‚½"; case 3: +/*JP return ", finest quality."; +*/ + return "Å‚‚Ì•iŽ¿‚ðŒÖ‚é"; case 2: +/*JP return ", an excellent choice."; +*/ + return "‚³‚·‚ª‚¨‹q‚³‚ñ–Ú‚ª‚‚¢I"; case 1: +/*JP return ", a real bargain."; +*/ + return "–{“ú‚̖ڋʏ¤•iI"; default: break; } } else if (itm->oartifact) { +/*JP return ", one of a kind!"; +*/ + return "‚±‚ê‚͐¢ŠE‚É‚Ü‚½‚Æ‚È‚¢I"; } +/*JP return "."; +*/ + return ""; } /* First 4 supplied by Ronen and Tamar, remainder by development team */ const char *Izchak_speaks[] = { +/*JP "%s says: 'These shopping malls give me a headache.'", +*/ + "%sžH‚­w‚±‚ê‚çƒVƒ‡ƒbƒsƒ“ƒOŠX‚Í“ª’ɂ̃^ƒl‚¾Dx", +/*JP "%s says: 'Slow down. Think clearly.'", +*/ + "%sžH‚­w—Ž‚¿’…‚¢‚āC–¾ð‚ɍl‚¦‚æDx", +/*JP "%s says: 'You need to take things one at a time.'", +*/ + "%sžH‚­wˆê“x‚ɈêŒÂ‚¸‚ÂŽæ‚é•K—v‚ª‚ ‚éDx", +/*JP "%s says: 'I don't like poofy coffee... give me Columbian Supremo.'", +*/ + "%sžH‚­wƒzƒ‚‚Á‚Û‚¢ƒR[ƒq‚͍D‚«‚¶‚á‚È‚¢DDDƒRƒƒ“ƒrƒAƒ“EƒXƒvƒŒƒ‚‚ð‚½‚Ì‚ÞDx", +/*JP "%s says that getting the devteam's agreement on anything is difficult.", +*/ + "ŠJ”­ƒ`[ƒ€‚ɉ½‚ç‚©‚Ì‹¦’è‚ð‹‚ß‚é‚±‚Ƃ͍¢“‚Æ%s‚͏q‚ׂ½D", +/*JP "%s says that he has noticed those who serve their deity will prosper.", +*/ + "%s‚͐_‚ÉŽd‚¦‚Ä‚¢‚é‚â‚‚͐¬Œ÷‚µ‚Ä‚¢‚é‚Əq‚ׂ½D", +/*JP "%s says: 'Don't try to steal from me - I have friends in high places!'", +*/ + "%sžH‚­wŽ„‚©‚瓐‚à‚¤‚È‚ñ‚ÄŽv‚í‚È‚¢‚±‚Æ‚¾Dã‚Ì•û‚É’m‚荇‚¢‚ª‚¢‚é‚ñ‚¾‚©‚çDx", +/*JP "%s says: 'You may well need something from this shop in the future.'", +*/ + "%sžH‚­w«—ˆ‚±‚Ì“X‚̉½‚©‚ª•K—v‚ƂȂ邾‚낤x", +/*JP "%s comments about the Valley of the Dead as being a gateway." +*/ + "%s‚ÍŽ€‚Ì’J‚̓Q[ƒgƒEƒFƒC‚¾‚낤‚ƃRƒƒ“ƒg‚ðq‚ׂ½D" }; void @@ -4058,7 +4804,11 @@ struct monst *shkp; not actually a shk, which could happen if someone wishes for a shopkeeper statue and then animates it. (Note: shkname() would be "" in a case like this.) */ +#if 0 /*JP*/ pline("%s asks whether you've seen any untended shops recently.", +#else + pline("%s‚͍ŋ߂ǂ±‚©‚É“Xˆõ‚Ì‚¢‚È‚¢“X‚Í‚È‚¢‚©‚Æ‚½‚¸‚Ë‚½D", +#endif Monnam(shkp)); /* [Perhaps we ought to check whether this conversation is taking place inside an untended shop, but a shopless @@ -4068,38 +4818,80 @@ struct monst *shkp; eshk = ESHK(shkp); if (ANGRY(shkp)) { +#if 0 /*JP*/ pline("%s mentions how much %s dislikes %s customers.", shkname(shkp), mhe(shkp), eshk->robbed ? "non-paying" : "rude"); +#else + pline("%s‚Í%s‹q‚͑匙‚¢‚¾‚ÆŒ¾‚Á‚½D", + shkname(shkp), eshk->robbed ? "‹à‚ðŽx•¥‚í‚È‚¢" : "–³—ç‚È"); +#endif } else if (eshk->following) { if (strncmp(eshk->customer, plname, PL_NSIZ)) { +#if 0 /*JP*/ verbalize("%s %s! I was looking for %s.", Hello(shkp), plname, eshk->customer); +#else + verbalize("%sIŽ„‚Í%s‚ð’T‚µ‚Ä‚¢‚Ü‚·D", + Hello(shkp), eshk->customer); +#endif eshk->following = 0; } else { +#if 0 /*JP*/ verbalize("%s %s! Didn't you forget to pay?", Hello(shkp), plname); +#else + verbalize("%sIŽx•¥‚¢‚ð–Y‚ê‚Ä‚¢‚Ü‚¹‚ñ‚©H", + Hello(shkp)); +#endif } } else if (eshk->billct) { register long total = addupbill(shkp) + eshk->debit; +#if 0 /*JP*/ pline("%s says that your bill comes to %ld %s.", shkname(shkp), total, currency(total)); +#else + pline("%s‚ÍŠ¨’肪%ld%s‚É‚È‚é‚ÆŒ¾‚Á‚½D", + shkname(shkp), total, currency(total)); +#endif } else if (eshk->debit) { +#if 0 /*JP*/ pline("%s reminds you that you owe %s %ld %s.", shkname(shkp), mhim(shkp), eshk->debit, currency(eshk->debit)); +#else + pline("‚ ‚È‚½‚Í%s‚É%ld%s‚̎؂肪‚ ‚邱‚Æ‚ðŽv‚¢‚¾‚µ‚½D", + shkname(shkp), eshk->debit, currency(eshk->debit)); +#endif } else if (eshk->credit) { +#if 0 /*JP*/ pline("%s encourages you to use your %ld %s of credit.", shkname(shkp), eshk->credit, currency(eshk->credit)); +#else + pline("%s‚Í%ld%s‚Ì—a‚¯‹à‚ðŽg‚¤‚悤Š©‚ß‚½D", + shkname(shkp), eshk->credit, currency(eshk->credit)); +#endif } else if (eshk->robbed) { +/*JP pline("%s complains about a recent robbery.", shkname(shkp)); +*/ + pline("%s‚͍ŋ߂̋­“‚ɂ‚¢‚Ä‹ð’s‚ð‚±‚Ú‚µ‚½D", shkname(shkp)); } else if ((shkmoney = money_cnt(shkp->minvent)) < 50) { +/*JP pline("%s complains that business is bad.", shkname(shkp)); +*/ + pline("%s‚͏¤”„‚ªŽ|‚­‚¢‚Á‚Ä‚È‚¢‚Æ‹ð’s‚ð‚±‚Ú‚µ‚½D", shkname(shkp)); } else if (shkmoney > 4000) { +/*JP pline("%s says that business is good.", shkname(shkp)); +*/ + pline("%s‚͏¤”„‚ªŽ|‚­‚¢‚Á‚Ä‚¢‚é‚ÆŒ¾‚Á‚½D", shkname(shkp)); } else if (is_izchak(shkp, FALSE)) { pline(Izchak_speaks[rn2(SIZE(Izchak_speaks))], shkname(shkp)); } else { +/*JP pline("%s talks about the problem of shoplifters.", shkname(shkp)); +*/ + pline("%s‚Í–œˆø‚Ì–â‘è‚ɂ‚¢‚Ęb‚µ‚½D", shkname(shkp)); } } @@ -4119,8 +4911,12 @@ boolean silent; } } if (cnt && !silent) +#if 0 /*JP*/ pline_The("Kop%s (disappointed) vanish%s into thin air.", plur(cnt), (cnt == 1) ? "es" : ""); +#else + pline("‚ª‚Á‚©‚肵‚½ŒxŠ¯‚Í‹ó‹C‚É‚Æ‚¯‚ďÁ‚¦‚½D"); +#endif } STATIC_OVL long @@ -4202,12 +4998,24 @@ boolean altusage; arg1 = arg2 = ""; if (otmp->oclass == SPBOOK_CLASS) { +/*JP fmt = "%sYou owe%s %ld %s."; +*/ + fmt = "%s%s%ld%s‚̎؂肾D"; +/*JP Sprintf(buf, "This is no free library, %s! ", cad(FALSE)); +*/ + Strcpy(buf, "‚¨‚¢I‚±‚±‚͐}‘ŠÙ‚¶‚á‚È‚¢I"); arg1 = rn2(2) ? buf : ""; +/*JP arg2 = ESHK(shkp)->debit > 0L ? " an additional" : ""; +*/ + arg2 = ESHK(shkp)->debit > 0L ? "‚³‚ç‚ÉŒ¾‚¦‚Î" : ""; } else if (otmp->otyp == POT_OIL) { +/*JP fmt = "%s%sThat will cost you %ld %s (Yendorian Fuel Tax)."; +*/ + fmt = "%s%s’l’i‚Í%ld%s(ƒCƒFƒ“ƒ_[”R—¿Å)‚¾D"; } else if (altusage && (otmp->otyp == BAG_OF_TRICKS || otmp->otyp == HORN_OF_PLENTY)) { fmt = "%s%sEmptying that will cost you %ld %s."; @@ -4216,11 +5024,20 @@ boolean altusage; if (!rn2(3)) arg1 = "Watch it! "; } else { +/*JP fmt = "%s%sUsage fee, %ld %s."; +*/ + fmt = "%s%sŽg—p—¿‚́C%ld%s‚¾D"; if (!rn2(3)) +/*JP arg1 = "Hey! "; +*/ + arg1 = "‚¨‚¢I"; if (!rn2(3)) +/*JP arg2 = "Ahem. "; +*/ + arg2 = "ƒSƒzƒ“D"; } if (!muteshk(shkp)) { @@ -4255,18 +5072,33 @@ register long amount; eshkp = ESHK(shkp); if (eshkp->credit >= amount) { if (eshkp->credit > amount) +/*JP Your("credit is reduced by %ld %s.", amount, currency(amount)); +*/ + Your("—a‚¯‹à‚Í%ld%sŒ¸‚Á‚½D", amount, currency(amount)); else +/*JP Your("credit is erased."); +*/ + Your("—a‚¯‹à‚Í’ Á‚µ‚É‚È‚Á‚½D"); eshkp->credit -= amount; } else { delta = amount - eshkp->credit; if (eshkp->credit) +/*JP Your("credit is erased."); +*/ + Your("—a‚¯‹à‚Í’ Á‚µ‚É‚È‚Á‚½D"); if (eshkp->debit) +/*JP Your("debt increases by %ld %s.", delta, currency(delta)); - else +*/ + Your("ŽØ‹à‚Í%ld%s‘‚¦‚½D", delta, currency(delta)); + else +/*JP You("owe %s %ld %s.", shkname(shkp), delta, currency(delta)); +*/ + You("%s‚É%ld%s‚ÌŽØ‚è‚ð‚‚­‚Á‚½D", shkname(shkp), delta, currency(delta)); eshkp->debit += delta; eshkp->loan += delta; eshkp->credit = 0L; @@ -4301,8 +5133,13 @@ register xchar x, y; && ESHK(shkp)->shd.y == y && shkp->mcanmove && !shkp->msleeping && (ESHK(shkp)->debit || ESHK(shkp)->billct || ESHK(shkp)->robbed)) { +#if 0 /*JP*/ pline("%s%s blocks your way!", shkname(shkp), Invis ? " senses your motion and" : ""); +#else + pline("%s‚Í%s‚ ‚È‚½‚Ì‘O‚É—§‚¿‚Ó‚³‚ª‚Á‚½I", shkname(shkp), + Invis ? "“®‚«‚ðŠ´‚¶‚Æ‚èC" : ""); +#endif return TRUE; } return FALSE; @@ -4338,14 +5175,20 @@ register xchar x, y; && (x == sx - 1 || x == sx + 1 || y == sy - 1 || y == sy + 1) && (Invis || carrying(PICK_AXE) || carrying(DWARVISH_MATTOCK) || u.usteed)) { +#if 0 /*JP*/ pline("%s%s blocks your way!", shkname(shkp), Invis ? " senses your motion and" : ""); +#else + pline("%s%s‚ ‚È‚½‚Ì‘O‚É—§‚¿‚Ó‚³‚ª‚Á‚½I", shkname(shkp), + Invis ? "“®‚«‚ðŠ´‚¶‚Æ‚èC" : ""); +#endif return TRUE; } return FALSE; } /* "your " or "Foobar's " (note the trailing space) */ +/* u‚ ‚È‚½‚́v‚©uFoobar‚́v(––”ö‚É‹ó”’‚Í•s—v) */ char * shk_your(buf, obj) char *buf; @@ -4353,7 +5196,10 @@ struct obj *obj; { if (!shk_owns(buf, obj) && !mon_owns(buf, obj)) Strcpy(buf, the_your[carried(obj) ? 1 : 0]); +/*JP return strcat(buf, " "); +*/ + return buf; } char * @@ -4362,7 +5208,9 @@ char *buf; struct obj *obj; { (void) shk_your(buf, obj); +#if 0 /*JP*/ *buf = highc(*buf); +#endif return buf; } @@ -4378,7 +5226,17 @@ struct obj *obj; && (obj->unpaid || (obj->where == OBJ_FLOOR && !obj->no_charge && costly_spot(x, y)))) { shkp = shop_keeper(inside_shop(x, y)); +#if 0 /*JP*/ return strcpy(buf, shkp ? s_suffix(shkname(shkp)) : the_your[0]); +#else + if (shkp) { + strcpy(buf, shkname(shkp)); + strcat(buf, "‚Ì"); + } else { + strcpy(buf, ""); + } + return buf; +#endif } return (char *) 0; } @@ -4389,10 +5247,19 @@ char *buf; struct obj *obj; { if (obj->where == OBJ_MINVENT) +#if 0 /*JP*/ return strcpy(buf, s_suffix(y_monnam(obj->ocarry))); +#else + { + strcpy(buf, mon_nam(obj->ocarry)); + strcat(buf, "‚Ì"); + return buf; + } +#endif return (char *) 0; } +#if 0 /*JP*//*—–\‚ɌĂт©‚¯‚é‚Æ‚«‚Ì“ñlÌB“ú–{Œê‚ł́u‚¨‚¢v‚ōςނ̂Ŏg‚í‚È‚¢*/ STATIC_OVL const char * cad(altusage) boolean altusage; /* used as a verbalized exclamation: \"Cad! ...\" */ @@ -4428,6 +5295,7 @@ boolean altusage; /* used as a verbalized exclamation: \"Cad! ...\" */ } return res; } +#endif /*JP*/ #ifdef __SASC void diff --git a/src/shknam.c b/src/shknam.c index 728976c..a3efec2 100644 --- a/src/shknam.c +++ b/src/shknam.c @@ -4,6 +4,11 @@ /* shknam.c -- initialize a shop */ +/* 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" STATIC_DCL boolean FDECL(veggy_item, (struct obj * obj, int)); @@ -200,7 +205,10 @@ static const char *const shkhealthfoods[] = { * (by testing the sign) whether to use mkobj() or mksobj(). */ const struct shclass shtypes[] = { +/*JP { "general store", +*/ + { "ŽG‰Ý‰®", RANDOM_CLASS, 42, D_SHOP, @@ -211,7 +219,10 @@ const struct shclass shtypes[] = { { 0, 0 }, { 0, 0 } }, shkgeneral }, +/*JP { "used armor dealership", +*/ + { "’†ŒÃŠZ¤‰ï", ARMOR_CLASS, 14, D_SHOP, @@ -222,7 +233,10 @@ const struct shclass shtypes[] = { { 0, 0 }, { 0, 0 } }, shkarmors }, +/*JP { "second-hand bookstore", +*/ + { "ŒÃ‘“X", SCROLL_CLASS, 10, D_SHOP, @@ -233,7 +247,10 @@ const struct shclass shtypes[] = { { 0, 0 }, { 0, 0 } }, shkbooks }, +/*JP { "liquor emporium", +*/ + {"‚¨Žð‚Ì•S‰Ý“X", POTION_CLASS, 10, D_SHOP, @@ -244,7 +261,10 @@ const struct shclass shtypes[] = { { 0, 0 }, { 0, 0 } }, shkliquors }, +/*JP { "antique weapons outlet", +*/ + { "ŒÃ•Šíê–召”„“X", WEAPON_CLASS, 5, D_SHOP, @@ -255,7 +275,10 @@ const struct shclass shtypes[] = { { 0, 0 }, { 0, 0 } }, shkweapons }, +/*JP { "delicatessen", +*/ + { "H•i“X", FOOD_CLASS, 5, D_SHOP, @@ -266,7 +289,10 @@ const struct shclass shtypes[] = { { 3, -ICE_BOX }, { 0, 0 } }, shkfoods }, +/*JP { "jewelers", +*/ + { "•óÎ“X", RING_CLASS, 3, D_SHOP, @@ -277,7 +303,10 @@ const struct shclass shtypes[] = { { 0, 0 }, { 0, 0 } }, shkrings }, +/*JP { "quality apparel and accessories", +*/ + { "‚¨ƒVƒƒƒŒ‚È—m•i“X", WAND_CLASS, 3, D_SHOP, @@ -286,7 +315,10 @@ const struct shclass shtypes[] = { { 5, -ELVEN_CLOAK }, { 0, 0 } }, shkwands }, +/*JP { "hardware store", +*/ + { "“¹‹ï‰®", TOOL_CLASS, 3, D_SHOP, @@ -297,7 +329,10 @@ const struct shclass shtypes[] = { { 0, 0 }, { 0, 0 } }, shktools }, +/*JP { "rare books", +*/ + { "Œ¶‚Ì–{‰®", SPBOOK_CLASS, 3, D_SHOP, @@ -308,7 +343,10 @@ const struct shclass shtypes[] = { { 0, 0 }, { 0, 0 } }, shkbooks }, +/*JP { "health food store", +*/ + { "Œ’NH•i‚Ì“X", FOOD_CLASS, 2, D_SHOP, @@ -323,7 +361,10 @@ const struct shclass shtypes[] = { * probability of zero. They are only created via the special level * loader. */ +/*JP { "lighting store", +*/ + { "Æ–¾“X", TOOL_CLASS, 0, D_SHOP, @@ -722,7 +763,10 @@ register struct mkroom *sroom; n--; else if (inside_shop(sx, sy - 1)) n++; +/*JP Sprintf(buf, "Closed for inventory"); +*/ + Sprintf(buf, "’I‰µ‚µ‚Ì‚½‚ߕ“X"); make_engr_at(m, n, buf, 0L, DUST); } diff --git a/src/sit.c b/src/sit.c index b91da15..0c47c8e 100644 --- a/src/sit.c +++ b/src/sit.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" #include "artifact.h" @@ -22,9 +27,15 @@ take_gold() } } if (!lost_money) { +/*JP You_feel("a strange sensation."); +*/ + You("Šï–­‚ÈŠ´Šo‚ðŠo‚¦‚½D"); } else { +/*JP You("notice you have no money!"); +*/ + You("‚¨‹à‚ðŽ‚Á‚Ä‚È‚¢‚±‚Æ‚É‹C‚ª‚‚¢‚½I"); context.botl = 1; } } @@ -33,12 +44,18 @@ take_gold() int dosit() { +/*JP static const char sit_message[] = "sit on the %s."; +*/ + static const char sit_message[] = "%s‚ɍÀ‚Á‚½D"; register struct trap *trap = t_at(u.ux, u.uy); register int typ = levl[u.ux][u.uy].typ; if (u.usteed) { +/*JP You("are already sitting on %s.", mon_nam(u.usteed)); +*/ + You("‚à‚¤%s‚ɍÀ‚Á‚Ä‚¢‚éD", mon_nam(u.usteed)); return 0; } if (u.uundetected && is_hider(youmonst.data) && u.umonnum != PM_TRAPPER) @@ -46,19 +63,34 @@ dosit() if (!can_reach_floor(FALSE)) { if (u.uswallow) +/*JP There("are no seats in here!"); +*/ + pline("‚±‚±‚ɂ͈֎q‚ª‚È‚¢I"); else if (Levitation) +/*JP You("tumble in place."); +*/ + You("‚»‚̏ê‚Å’ˆ•Ô‚肵‚½D"); else +/*JP You("are sitting on air."); +*/ + You("‹ó’†‚ɍÀ‚Á‚½D"); return 0; } else if (u.ustuck && !sticks(youmonst.data)) { /* holding monster is next to hero rather than beneath, but hero is in no condition to actually sit at has/her own spot */ if (humanoid(u.ustuck->data)) +/*JP pline("%s won't offer %s lap.", Monnam(u.ustuck), mhis(u.ustuck)); +*/ + pline("%s‚͂Ђ´‚ðo‚³‚È‚©‚Á‚½D", Monnam(u.ustuck)); else +/*JP pline("%s has no lap.", Monnam(u.ustuck)); +*/ + pline("%s‚ɂ͂Ђ´‚ª‚È‚¢D", Monnam(u.ustuck)); return 0; } else if (is_pool(u.ux, u.uy) && !Underwater) { /* water walking */ goto in_water; @@ -71,111 +103,206 @@ dosit() obj = level.objects[u.ux][u.uy]; if (youmonst.data->mlet == S_DRAGON && obj->oclass == COIN_CLASS) { +#if 0 /*JP*/ You("coil up around your %shoard.", (obj->quan + money_cnt(invent) < u.ulevel * 1000) ? "meager " : ""); +#else + You("%s‚¨•ó‚Ì‚Ü‚í‚è‚Å‚Æ‚®‚ë‚ðŠª‚¢‚½D", + (obj->quan + money_cnt(invent) < u.ulevel * 1000) ? "‚킸‚©‚È" + : ""); +#endif } else { +/*JP You("sit on %s.", the(xname(obj))); +*/ + You("%s‚ɍÀ‚Á‚½D", the(xname(obj))); if (!(Is_box(obj) || objects[obj->otyp].oc_material == CLOTH)) +/*JP pline("It's not very comfortable..."); +*/ + pline("‚ ‚Ü‚èÀ‚育‚±‚¿‚ª‚æ‚­‚È‚¢DDD"); } } else if (trap != 0 || (u.utrap && (u.utraptype >= TT_LAVA))) { if (u.utrap) { exercise(A_WIS, FALSE); /* you're getting stuck longer */ if (u.utraptype == TT_BEARTRAP) { +/*JP You_cant("sit down with your %s in the bear trap.", +*/ + pline("%s‚ªŒF‚Ì㩂ɂ͂³‚Ü‚Á‚Ä‚¢‚é‚̂ōÀ‚ê‚È‚¢D", body_part(FOOT)); u.utrap++; } else if (u.utraptype == TT_PIT) { if (trap && trap->ttyp == SPIKED_PIT) { +/*JP You("sit down on a spike. Ouch!"); +*/ + You("ƒgƒQ‚̏ã‚ɍÀ‚Á‚½D‚¢‚Ä‚ÁI"); losehp(Half_physical_damage ? rn2(2) : 1, +/*JP "sitting on an iron spike", KILLED_BY); +*/ + "“S‚̃gƒQ‚̏ã‚ɍÀ‚Á‚Ä", KILLED_BY); exercise(A_STR, FALSE); } else +/*JP You("sit down in the pit."); +*/ + You("—Ž‚µŒŠ‚Ì’†‚ōÀ‚Á‚½D"); u.utrap += rn2(5); } else if (u.utraptype == TT_WEB) { +/*JP You("sit in the spider web and get entangled further!"); +*/ + You("‚­‚à‚Ì‘ƒ‚Ì’†‚ōÀ‚Á‚½‚çC‚Ü‚·‚Ü‚·—‚Ü‚Á‚½I"); u.utrap += rn1(10, 5); } else if (u.utraptype == TT_LAVA) { /* Must have fire resistance or they'd be dead already */ +/*JP You("sit in the lava!"); +*/ + You("—nŠâ‚Ì’†‚ɍÀ‚Á‚½I"); if (Slimed) burn_away_slime(); u.utrap += rnd(4); +/*JP losehp(d(2, 10), "sitting in lava", +*/ + losehp(d(2, 10), "—nŠâ‚Ì’†‚ɍÀ‚Á‚Ä", KILLED_BY); /* lava damage */ } else if (u.utraptype == TT_INFLOOR || u.utraptype == TT_BURIEDBALL) { +/*JP You_cant("maneuver to sit!"); +*/ + You("À‚é‚悤‚È“®ì‚ª‚Å‚«‚È‚¢I"); u.utrap++; } } else { +/*JP You("sit down."); +*/ + You("À‚Á‚½D"); dotrap(trap, 0); } } else if (Underwater || Is_waterlevel(&u.uz)) { if (Is_waterlevel(&u.uz)) +/*JP There("are no cushions floating nearby."); +*/ + pline("‹ß‚­‚É•‚‚¢‚Ä‚¢‚éƒNƒbƒVƒ‡ƒ“‚Í‚È‚¢D"); else +/*JP You("sit down on the muddy bottom."); +*/ + You("‚Ç‚ë‚ǂ낵‚½’ê‚ɍÀ‚Á‚½D"); } else if (is_pool(u.ux, u.uy)) { in_water: +/*JP You("sit in the water."); +*/ + You("…‚Ì’†‚ōÀ‚Á‚½D"); if (!rn2(10) && uarm) +/*JP (void) water_damage(uarm, "armor", TRUE); +*/ + (void) water_damage(uarm, "ŠZ", TRUE); if (!rn2(10) && uarmf && uarmf->otyp != WATER_WALKING_BOOTS) +/*JP (void) water_damage(uarm, "armor", TRUE); +*/ + (void) water_damage(uarm, "ŠZ", TRUE); } else if (IS_SINK(typ)) { You(sit_message, defsyms[S_sink].explanation); +/*JP Your("%s gets wet.", humanoid(youmonst.data) ? "rump" : "underside"); +*/ + Your("%s‚Í”G‚ꂽD", humanoid(youmonst.data) ? "K" : "‰º•”"); } else if (IS_ALTAR(typ)) { You(sit_message, defsyms[S_altar].explanation); altar_wrath(u.ux, u.uy); } else if (IS_GRAVE(typ)) { You(sit_message, defsyms[S_grave].explanation); } else if (typ == STAIRS) { +/*JP You(sit_message, "stairs"); +*/ + You(sit_message, "ŠK’i"); } else if (typ == LADDER) { +/*JP You(sit_message, "ladder"); +*/ + You(sit_message, "‚Í‚µ‚²"); } else if (is_lava(u.ux, u.uy)) { /* must be WWalking */ +/*JP You(sit_message, "lava"); +*/ + You(sit_message, "—nŠâ"); burn_away_slime(); if (likes_lava(youmonst.data)) { +/*JP pline_The("lava feels warm."); +*/ + pline("—nŠâ‚Í’g‚©‚¢D"); return 1; } +/*JP pline_The("lava burns you!"); +*/ + You("—nŠâ‚Å”R‚¦‚½I"); losehp(d((Fire_resistance ? 2 : 10), 10), /* lava damage */ +/*JP "sitting on lava", KILLED_BY); +*/ + "—nŠâ‚ɍÀ‚Á‚Ä", KILLED_BY); } else if (is_ice(u.ux, u.uy)) { You(sit_message, defsyms[S_ice].explanation); if (!Cold_resistance) +/*JP pline_The("ice feels cold."); +*/ + pline("•X‚͗₽‚­Š´‚¶‚½D"); } else if (typ == DRAWBRIDGE_DOWN) { +/*JP You(sit_message, "drawbridge"); +*/ + You(sit_message, "’µ‚Ë‹´"); } else if (IS_THRONE(typ)) { You(sit_message, defsyms[S_throne].explanation); if (rnd(6) > 4) { switch (rnd(13)) { case 1: (void) adjattrib(rn2(A_MAX), -rn1(4, 3), FALSE); +/*JP losehp(rnd(10), "cursed throne", KILLED_BY_AN); +*/ + losehp(rnd(10), "Žô‚í‚ꂽ‹ÊÀ‚Å", KILLED_BY_AN); break; case 2: (void) adjattrib(rn2(A_MAX), 1, FALSE); break; case 3: +#if 0 /*JP*/ pline("A%s electric shock shoots through your body!", (Shock_resistance) ? "n" : " massive"); +#else + pline("%s“d‹C‚ª‚ ‚È‚½‚̑̂𑖂蔲‚¯‚½I", + (Shock_resistance) ? "" : "Œƒ‚µ‚¢"); +#endif +/*JP losehp(Shock_resistance ? rnd(6) : rnd(30), "electric chair", +*/ + losehp(Shock_resistance ? rnd(6) : rnd(30), "“d‹CˆÖŽq‚Å", KILLED_BY_AN); exercise(A_CON, FALSE); break; case 4: +/*JP You_feel("much, much better!"); +*/ + You_feel("‚Æ‚Ä‚àC‚Æ‚Ä‚àŒ³‹C‚É‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½I"); if (Upolyd) { if (u.mh >= (u.mhmax - 5)) u.mhmax += 4; @@ -194,7 +321,10 @@ dosit() break; case 6: if (u.uluck + rn2(5) < 0) { +/*JP You_feel("your luck is changing."); +*/ + pline("‰^‚ªŒü‚¢‚Ä‚«‚½‹C‚ª‚·‚éD"); change_luck(1); } else makewish(); @@ -204,25 +334,47 @@ dosit() int cnt = rnd(10); /* Magical voice not affected by deafness */ +/*JP pline("A voice echoes:"); +*/ + pline("º‚ª‹¿‚¢‚½:"); +#if 0 /*JP*/ verbalize("Thy audience hath been summoned, %s!", flags.female ? "Dame" : "Sire"); +#else + verbalize("%s‚æI“ð‚Ì’®O¢Š«‚³‚ꂵD", + flags.female ? "—" : "’j"); +#endif while (cnt--) (void) makemon(courtmon(), u.ux, u.uy, NO_MM_FLAGS); break; } case 8: /* Magical voice not affected by deafness */ +/*JP pline("A voice echoes:"); +*/ + pline("º‚ª‹¿‚¢‚½:"); +#if 0 /*JP*/ verbalize("By thine Imperious order, %s...", flags.female ? "Dame" : "Sire"); +#else + verbalize("%s‚æI“ð‚̘ü–•·‚«‚¢‚ê‚悤‚¼D", + flags.female ? "—" : "’j"); +#endif do_genocide(5); /* REALLY|ONTHRONE, see do_genocide() */ break; case 9: /* Magical voice not affected by deafness */ +/*JP pline("A voice echoes:"); +*/ + pline("º‚ª‹¿‚¢‚½:"); verbalize( +/*JP "A curse upon thee for sitting upon this most holy throne!"); +*/ + "¹‚È‚é‹ÊÀ‚ɍÀ‚肵“ð‚ÉŽô‚¢‚ ‚êI"); if (Luck > 0) { make_blinded(Blinded + rn1(100, 250), TRUE); } else @@ -231,37 +383,58 @@ dosit() case 10: if (Luck < 0 || (HSee_invisible & INTRINSIC)) { if (level.flags.nommap) { +/*JP pline("A terrible drone fills your head!"); +*/ + pline("‹°‚µ‚¢ƒuƒ“ƒuƒ“‚Æ‚¢‚¤‰¹‚ª“ª‚É‹¿‚¢‚½I"); make_confused((HConfusion & TIMEOUT) + (long) rnd(30), FALSE); } else { +/*JP pline("An image forms in your mind."); +*/ + pline("‚ ‚éƒCƒ[ƒW‚ª“ª‚É•‚‚ñ‚¾D"); do_mapping(); } } else { +/*JP Your("vision becomes clear."); +*/ + Your("Ž‹ŠE‚͍Ⴆ“n‚Á‚½D"); HSee_invisible |= FROMOUTSIDE; newsym(u.ux, u.uy); } break; case 11: if (Luck < 0) { +/*JP You_feel("threatened."); +*/ + You("‹º”—‚³‚ê‚Ä‚¢‚é‚悤‚È‹C‚ª‚µ‚½D"); aggravate(); } else { +/*JP You_feel("a wrenching sensation."); +*/ + You("‚Ë‚¶‚ç‚ꂽ‚悤‚ÈŠ´Šo‚ðŠ´‚¶‚½D"); tele(); /* teleport him */ } break; case 12: +/*JP You("are granted an insight!"); +*/ + You("“´Ž@—͂𓾂½I"); if (invent) { /* rn2(5) agrees w/seffects() */ identify_pack(rn2(5), FALSE); } break; case 13: +/*JP Your("mind turns into a pretzel!"); +*/ + Your("S‚̓NƒlƒNƒl‚É‚È‚Á‚½I"); make_confused((HConfusion & TIMEOUT) + (long) rn1(7, 16), FALSE); break; @@ -271,28 +444,47 @@ dosit() } } else { if (is_prince(youmonst.data)) +/*JP You_feel("very comfortable here."); +*/ + You("‚±‚±‚Í‚Æ‚Ä‚à—Ž‚¿’…‚­D"); else +/*JP You_feel("somehow out of place..."); +*/ + You("‰½‚©êˆá‚¢‚Ì‹C‚ª‚µ‚½DDD"); } if (!rn2(3) && IS_THRONE(levl[u.ux][u.uy].typ)) { /* may have teleported */ levl[u.ux][u.uy].typ = ROOM; +/*JP pline_The("throne vanishes in a puff of logic."); +*/ + pline("‹ÊÀ‚Í‚Ó‚Á‚ƏÁ‚¦‚½D"); newsym(u.ux, u.uy); } } else if (lays_eggs(youmonst.data)) { struct obj *uegg; if (!flags.female) { +#if 0 /*JP*/ pline("%s can't lay eggs!", Hallucination ? "You may think you are a platypus, but a male still" : "Males"); +#else + pline("%s—Y‚Í—‘‚ðŽY‚ß‚È‚¢I", + Hallucination + ? "‚ ‚È‚½‚ÍŽ©•ª‚ªƒJƒ‚ƒmƒnƒV‚¾‚ÆŽv‚Á‚Ä‚¢‚é‚©‚à‚µ‚ê‚È‚¢‚ªC‚â‚Á‚Ï‚è" + : ""); +#endif return 0; } else if (u.uhunger < (int) objects[EGG].oc_nutrition) { +/*JP You("don't have enough energy to lay an egg."); +*/ + You("—‘‚ðŽY‚Þ‚¾‚¯‚̃Gƒlƒ‹ƒM[‚ª‚È‚¢D"); return 0; } @@ -303,12 +495,18 @@ dosit() /* this sets hatch timers if appropriate */ set_corpsenm(uegg, egg_type_from_parent(u.umonnum, FALSE)); uegg->known = uegg->dknown = 1; +/*JP You("lay an egg."); +*/ + You("—‘‚ðŽY‚ñ‚¾D"); dropy(uegg); stackobj(uegg); morehungry((int) objects[EGG].oc_nutrition); } else { +/*JP pline("Having fun sitting on the %s?", surface(u.ux, u.uy)); +*/ + pline("%s‚ɍÀ‚Á‚ÄŠy‚µ‚¢‚©‚¢H", surface(u.ux,u.uy)); } return 1; } @@ -320,16 +518,25 @@ rndcurse() int nobj = 0; int cnt, onum; struct obj *otmp; +/*JP static const char mal_aura[] = "feel a malignant aura surround %s."; +*/ + static const char mal_aura[] = "Ž×ˆ«‚ȃI[ƒ‰‚ð%s‚̉ñ‚è‚ÉŠ´‚¶‚½D"; if (uwep && (uwep->oartifact == ART_MAGICBANE) && rn2(20)) { +/*JP You(mal_aura, "the magic-absorbing blade"); +*/ + You(mal_aura, "–‚—Í‚ð‹z‚¢‚Ƃ铁"); return; } if (Antimagic) { shieldeff(u.ux, u.uy); +/*JP You(mal_aura, "you"); +*/ + You(mal_aura, "‚ ‚È‚½"); } for (otmp = invent; otmp; otmp = otmp->nobj) { @@ -356,7 +563,10 @@ rndcurse() if (otmp->oartifact && spec_ability(otmp, SPFX_INTEL) && rn2(10) < 8) { +/*JP pline("%s!", Tobjnam(otmp, "resist")); +*/ + pline("%s‚͉e‹¿‚ðŽó‚¯‚È‚¢I", xname(otmp)); continue; } @@ -376,8 +586,13 @@ rndcurse() else curse(otmp); if (!Blind) { +#if 0 /*JP*/ pline("%s %s.", Yobjnam2(otmp, "glow"), hcolor(otmp->cursed ? NH_BLACK : (const char *) "brown")); +#else + pline("%s‚Í%s‹P‚¢‚½D", xname(otmp), + jconj_adj(hcolor(otmp->cursed ? NH_BLACK : (const char *)"’ƒF‚Ì"))); +#endif otmp->bknown = TRUE; } } @@ -391,19 +606,28 @@ attrcurse() case 1: if (HFire_resistance & INTRINSIC) { HFire_resistance &= ~INTRINSIC; +/*JP You_feel("warmer."); +*/ + You("’g‚©‚³‚ðŠ´‚¶‚½D"); break; } case 2: if (HTeleportation & INTRINSIC) { HTeleportation &= ~INTRINSIC; +/*JP You_feel("less jumpy."); +*/ + You("‚¿‚å‚Á‚Æ—Ž‚¿‚‚¢‚½D"); break; } case 3: if (HPoison_resistance & INTRINSIC) { HPoison_resistance &= ~INTRINSIC; +/*JP You_feel("a little sick!"); +*/ + You("­‚µ‹C•ª‚ªˆ«‚­‚È‚Á‚½I"); break; } case 4: @@ -411,51 +635,79 @@ attrcurse() HTelepat &= ~INTRINSIC; if (Blind && !Blind_telepat) see_monsters(); /* Can't sense mons anymore! */ +/*JP Your("senses fail!"); +*/ + Your("ŒÜŠ´‚Í–ƒáƒ‚µ‚½I"); break; } case 5: if (HCold_resistance & INTRINSIC) { HCold_resistance &= ~INTRINSIC; +/*JP You_feel("cooler."); +*/ + You("—Á‚µ‚³‚ðŠ´‚¶‚½D"); break; } case 6: if (HInvis & INTRINSIC) { HInvis &= ~INTRINSIC; +/*JP You_feel("paranoid."); +*/ + You("–Ï‘z‚ð•ø‚¢‚½D"); break; } case 7: if (HSee_invisible & INTRINSIC) { HSee_invisible &= ~INTRINSIC; +#if 0 /*JP*/ You("%s!", Hallucination ? "tawt you taw a puttie tat" : "thought you saw something"); +#else + if(Hallucination) + You("‚¾‚êŠI‚Ý‚çC‚ê‚Ä‚¢‚éD"); + else + You("’N‚©‚ÉŒ©‚ç‚ê‚Ä‚¢‚é‚悤‚È‹C‚ª‚µ‚½I"); +#endif break; } case 8: if (HFast & INTRINSIC) { HFast &= ~INTRINSIC; +/*JP You_feel("slower."); +*/ + You("’x‚­‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½D"); break; } case 9: if (HStealth & INTRINSIC) { HStealth &= ~INTRINSIC; +/*JP You_feel("clumsy."); +*/ + You("•sŠí—p‚É‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½D"); break; } case 10: /* intrinsic protection is just disabled, not set back to 0 */ if (HProtection & INTRINSIC) { HProtection &= ~INTRINSIC; +/*JP You_feel("vulnerable."); +*/ + You("–³–h”õ‚É‚È‚Á‚½‹C‚ª‚µ‚½D"); break; } case 11: if (HAggravate_monster & INTRINSIC) { HAggravate_monster &= ~INTRINSIC; +/*JP You_feel("less attractive."); +*/ + You("–£—Í‚ªŽ¸‚¹‚½‚悤‚È‹C‚ª‚µ‚½D"); break; } default: diff --git a/src/sounds.c b/src/sounds.c index f08fe9d..2f16705 100644 --- a/src/sounds.c +++ b/src/sounds.c @@ -2,6 +2,11 @@ /* 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 */ +/* JNetHack may be freely redistributed. See license for details. */ + #include "hack.h" STATIC_DCL boolean FDECL(mon_is_gecko, (struct monst *)); @@ -37,23 +42,44 @@ dosounds() hallu = Hallucination ? 1 : 0; if (level.flags.nfountains && !rn2(400)) { +#if 0 /*JP*/ static const char *const fountain_msg[4] = { "bubbling water.", "water falling on coins.", "the splashing of a naiad.", "a soda fountain!", +#else + static const char *const fountain_msg[4] = { + "ƒSƒ{ƒSƒ{‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D", "ƒsƒ`ƒƒƒsƒ`ƒƒ‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D", + "ƒoƒVƒƒƒoƒVƒƒ‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D", "’YŽ_ˆù—¿‚̃Vƒ…[‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½I", +#endif }; You_hear1(fountain_msg[rn2(3) + hallu]); } if (level.flags.nsinks && !rn2(300)) { +#if 0 /*JP*/ static const char *const sink_msg[3] = { "a slow drip.", "a gurgling noise.", "dishes being washed!", +#else + static const char *const sink_msg[3] = { + "…‚ª‚Û‚½‚Û‚½‚Æ—Ž‚¿‚鉹‚ð•·‚¢‚½D", + "‚ª‚炪‚ç‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D", + "ŽM‚ðô‚¤‰¹‚ð•·‚¢‚½I", +#endif }; You_hear1(sink_msg[rn2(2) + hallu]); } if (level.flags.has_court && !rn2(200)) { +#if 0 /*JP*/ static const char *const throne_msg[4] = { "the tones of courtly conversation.", "a sceptre pounded in judgment.", "Someone shouts \"Off with %s head!\"", "Queen Beruthiel's cats!", +#else + static const char *const throne_msg[4] = { + "ã•i‚Șb‚µº‚ð•·‚¢‚½D", + "Ù”»‚Å│ð“Ë‚­‰¹‚ð•·‚¢‚½D", + "‚¾‚ê‚©‚ªu‚»‚Ì‚à‚Ì‚ÌŽñ‚ð‚Í‚Ë‚æIv‚Æ‹©‚Ԑº‚ð•·‚¢‚½D", + "ƒxƒ‹ƒVƒGƒ‹‰¤”Ü‚Ì”L‚̐º‚ð•·‚¢‚½I", +#endif }; for (mtmp = fmon; mtmp; mtmp = mtmp->nmon) { if (DEADMONSTER(mtmp)) @@ -73,9 +99,16 @@ dosounds() } } if (level.flags.has_swamp && !rn2(200)) { +#if 0 /*JP*/ static const char *const swamp_msg[3] = { "hear mosquitoes!", "smell marsh gas!", /* so it's a smell...*/ "hear Donald Duck!", +#else + static const char *const swamp_msg[3] = { + "‰á‚̉H‰¹‚ð•·‚¢‚½D", + "•…‚Á‚½“õ‚¢‚ª‚µ‚½I", /* so it's a smell...*/ + "ƒhƒiƒ‹ƒhƒ_ƒbƒN‚̐º‚ð•·‚¢‚½I", +#endif }; You1(swamp_msg[rn2(2) + hallu]); return; @@ -106,20 +139,35 @@ dosounds() #endif /* AZTEC_C_WORKAROUND */ { if (gold_in_vault) +#if 0 /*JP*/ You_hear(!hallu ? "someone counting money." : "the quarterback calling the play."); +#else + You_hear(!hallu + ? "’N‚©‚ª‚¨‹à‚𐔂¦‚Ä‚¢‚鉹‚ð•·‚¢‚½D" + : "ƒNƒH[ƒ^ƒoƒbƒN‚ªŽwŽ¦‚ð‚·‚éº‚ð•·‚¢‚½D"); +#endif else +/*JP You_hear("someone searching."); +*/ + You_hear("’N‚©‚ª‘{õ‚µ‚Ä‚¢‚鉹‚ð•·‚¢‚½D"); break; } /* fall into... (yes, even for hallucination) */ } case 0: +/*JP You_hear("the footsteps of a guard on patrol."); +*/ + You_hear("Œx”õˆõ‚̃pƒgƒ[ƒ‹‚·‚鉹‚ð•·‚¢‚½D"); break; case 2: +/*JP You_hear("Ebenezer Scrooge!"); +*/ + You_hear("‚±‚¿‹T‚Ì—¼‚³‚ñ‚̐º‚ð•·‚¢‚½I"); break; } return; @@ -132,14 +180,25 @@ dosounds() && mon_in_room(mtmp, BEEHIVE)) { switch (rn2(2) + hallu) { case 0: +/*JP You_hear("a low buzzing."); +*/ + You_hear("‚ԁ[‚ñ‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D"); break; case 1: +/*JP You_hear("an angry drone."); +*/ + You_hear("‹»•±‚µ‚½—Yƒoƒ`‚̉¹‚ð•·‚¢‚½D"); break; case 2: +#if 0 /*JP*/ You_hear("bees in your %sbonnet!", uarmh ? "" : "(nonexistent) "); +#else + You_hear("ƒnƒ`‚ª‚ ‚È‚½‚Ì–XŽq%s‚Ì’†‚É‚¢‚鉹‚ð•·‚¢‚½I", + uarmh ? "" : "(”í‚Á‚Ä‚È‚¢‚¯‚Ç)"); +#endif break; } return; @@ -156,15 +215,28 @@ dosounds() switch (rn2(2) + hallu) { case 0: +/*JP You("suddenly realize it is unnaturally quiet."); +*/ + You("•sŽ©‘R‚È‚­‚ç‚¢Ã‚©‚È‚Ì‚É‹C‚¢‚½D"); break; case 1: +#if 0 /*JP*/ pline_The("%s on the back of your %s %s up.", hair, body_part(NECK), vtense(hair, "stand")); +#else + pline("‚ ‚È‚½‚Ì%s‚Ì‚¤‚µ‚ë‚Ì%s‚ª‹t—§‚Á‚½D", + body_part(NECK), body_part(HAIR)); +#endif break; case 2: +#if 0 /*JP*/ pline_The("%s on your %s %s to stand up.", hair, body_part(HEAD), vtense(hair, "seem")); +#else + pline("‚ ‚È‚½‚Ì%s‚Ì%s‚Í‹t—§‚Á‚½D", + body_part(HEAD), body_part(HAIR)); +#endif break; } return; @@ -173,8 +245,15 @@ dosounds() } if (level.flags.has_barracks && !rn2(200)) { static const char *const barracks_msg[4] = { +#if 0 /*JP*/ "blades being honed.", "loud snoring.", "dice being thrown.", "General MacArthur!", +#else + "n•¨‚ðŒ¤‚®‰¹‚ð•·‚¢‚½D", + "‘å‚«‚È‚¢‚Ñ‚«‚ð•·‚¢‚½D", + "ƒ_ƒCƒX‚ªU‚ç‚ê‚鉹‚ð•·‚¢‚½D", + "ƒ}ƒbƒJ[ƒT[«ŒR‚̐º‚ð•·‚¢‚½I", +#endif }; int count = 0; @@ -196,8 +275,14 @@ dosounds() } if (level.flags.has_zoo && !rn2(200)) { static const char *const zoo_msg[3] = { +#if 0 /*JP*/ "a sound reminiscent of an elephant stepping on a peanut.", "a sound reminiscent of a seal barking.", "Doctor Dolittle!", +#else + "Û‚ªƒs[ƒiƒbƒc‚̏ã‚Å—x‚é‚悤‚ȉ¹‚ð•·‚¢‚½D", + "ƒAƒVƒJ‚ª–i‚¦‚é‚悤‚ȉ¹‚ð•·‚¢‚½D", + "ƒhƒŠƒgƒ‹æ¶‚̐º‚ð•·‚¢‚½I", +#endif }; for (mtmp = fmon; mtmp; mtmp = mtmp->nmon) { if (DEADMONSTER(mtmp)) @@ -218,8 +303,14 @@ dosounds() if (tended_shop(sroom) && !index(u.ushops, (int) (ROOM_INDEX(sroom) + ROOMOFFSET))) { static const char *const shop_msg[3] = { +#if 0 /*JP*/ "someone cursing shoplifters.", "the chime of a cash register.", "Neiman and Marcus arguing!", +#else + "’N‚©‚ª“D–_‚ð‚Ì‚Ì‚µ‚鐺‚ð•·‚¢‚½D", + "ƒŒƒW‚̃`[ƒ“‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D", + "ƒCƒg[‚ƃˆ[ƒJƒh[‚Ì‹c˜_‚ð•·‚¢‚½I", +#endif }; You_hear1(shop_msg[rn2(2) + hallu]); } @@ -247,9 +338,16 @@ 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*/ "*someone praising %s.", "*someone beseeching %s.", "#an animal carcass being offered in sacrifice.", "*a strident plea for donations.", +#else + "*’N‚©‚ª%s‚ðŽ^”ü‚µ‚Ä‚¢‚é‚Ì‚ð•·‚¢‚½D", + "*’N‚©‚ª%s‚ð”M–]‚µ‚Ä‚¢‚é‚Ì‚ð•·‚¢‚½D", + "#“®•¨‚ÌŽ€‘̂𐶂¯æтɕù‚°‚鐺‚ð•·‚¢‚½D", + "*Ž·X‚ÉŠñ•t‚ð—v‹‚µ‚Ä‚¢‚é‚Ì‚ð•·‚¢‚½D", +#endif }; const char *msg; int trycount = 0, ax = EPRI(mtmp)->shrpos.x, @@ -285,11 +383,19 @@ 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*/ "a strange wind.", /* Jupiter at Dodona */ "convulsive ravings.", /* Apollo at Delphi */ "snoring snakes.", /* AEsculapius at Epidaurus */ "someone say \"No more woodchucks!\"", "a loud ZOT!" /* both rec.humor.oracle */ +#else + "Šï–­‚È•—‚̉¹‚ð•·‚¢‚½D", + "”¼‹¶—‚̐º‚ð•·‚¢‚½D", + "ŽÖ‚Ì‚¢‚Ñ‚«‚ð•·‚¢‚½D", + "’N‚©‚ªu‚à‚¤ƒEƒbƒhƒ`ƒƒƒbƒN‚Í‚¢‚ç‚È‚¢Iv‚ÆŒ¾‚Á‚Ä‚¢‚鐺‚ð•·‚¢‚½D", + "‘å‚«‚È‚y‚n‚s‚ð•·‚¢‚½I" +#endif }; You_hear1(ora_msg[rn2(3) + hallu * 2]); } @@ -298,12 +404,31 @@ dosounds() } static const char *const h_sounds[] = { +#if 0 /*JP*/ "beep", "boing", "sing", "belche", "creak", "cough", "rattle", "ululate", "pop", "jingle", "sniffle", "tinkle", "eep", "clatter", "hum", "sizzle", "twitter", "wheeze", "rustle", "honk", "lisp", "yodel", "coo", "burp", "moo", "boom", "murmur", "oink", "quack", "rumble", "twang", "bellow", "toot", "gargle", "hoot", "warble" +#else + "ƒs[ƒb‚Ɩ‚¢‚½", + "‘›‚¬‚½‚Ä‚½", + "‰Ì‚Á‚½", + "‚°‚Á‚Õ‚ð‚µ‚½", + "ƒL[ƒL[‚Ɩ‚¢‚½", + "‚¹‚«ž‚ñ‚¾", + + "ƒSƒƒSƒ–‚Á‚½", + "ƒz[ƒz[–‚¢‚½", + "ƒ|ƒ“‚Ɩ‚¢‚½", + "ƒKƒ‰ƒ“ƒKƒ‰ƒ“‚Ɩ‚¢‚½", + "ƒNƒ“ƒNƒ“–‚¢‚½", + "ƒ`ƒŠƒ“ƒ`ƒŠƒ“‚Ɩ‚¢‚½", + + "ƒC[ƒb‚Ɩ‚¢‚½", + /*JP Žc‚è‚Í–¢–ó */ +#endif }; const char * @@ -315,35 +440,65 @@ register struct monst *mtmp; switch (mtmp->data->msound) { case MS_MEW: case MS_HISS: +/*JP ret = "hiss"; +*/ + ret = "ƒV[ƒb‚Ɩ‚¢‚½"; break; case MS_BARK: case MS_GROWL: +/*JP ret = "growl"; +*/ + ret = "‚Í‚°‚µ‚­–i‚¦‚½"; break; case MS_ROAR: +/*JP ret = "roar"; +*/ + ret = "–i‚¦‚½"; break; case MS_BUZZ: +/*JP ret = "buzz"; +*/ + ret = "ƒu[ƒb‚Ɩ‚¢‚½"; break; case MS_SQEEK: +/*JP ret = "squeal"; +*/ + ret = "ƒL[ƒL[–‚¢‚½"; break; case MS_SQAWK: +/*JP ret = "screech"; +*/ + ret = "‹àØ‚萺‚𗧂Ă½"; break; case MS_NEIGH: +/*JP ret = "neigh"; +*/ + ret = "‚¢‚È‚È‚¢‚½"; break; case MS_WAIL: +/*JP ret = "wail"; +*/ + ret = "”ß‚µ‚­–‚¢‚½"; break; case MS_SILENT: +/*JP ret = "commotion"; +*/ + ret = "‹»•±‚µ‚½"; break; default: +/*JP ret = "scream"; +*/ + ret = "‹àØ‚萺‚ð‚ ‚°‚½"; } return ret; } @@ -364,7 +519,10 @@ register struct monst *mtmp; else growl_verb = growl_sound(mtmp); if (growl_verb) { +/*JP pline("%s %s!", Monnam(mtmp), vtense((char *) 0, growl_verb)); +*/ + pline("%s‚Í%sI", Monnam(mtmp), growl_verb); if (context.run) nomul(0); wake_nearto(mtmp->mx, mtmp->my, mtmp->data->mlevel * 18); @@ -387,27 +545,48 @@ register struct monst *mtmp; else switch (mtmp->data->msound) { case MS_MEW: +/*JP yelp_verb = "yowl"; +*/ + yelp_verb = "”ß‚µ‚­–‚¢‚½"; break; case MS_BARK: case MS_GROWL: +/*JP yelp_verb = "yelp"; +*/ + yelp_verb = "ƒLƒƒƒ“ƒLƒƒƒ“–‚¢‚½"; break; case MS_ROAR: +/*JP yelp_verb = "snarl"; +*/ + yelp_verb = "‚¤‚È‚Á‚½"; break; case MS_SQEEK: +/*JP yelp_verb = "squeal"; +*/ + yelp_verb = "ƒL[ƒL[–‚¢‚½"; break; case MS_SQAWK: +/*JP yelp_verb = "screak"; +*/ + yelp_verb = "‹àØ‚萺‚𗧂Ă½"; break; case MS_WAIL: +/*JP yelp_verb = "wail"; +*/ + yelp_verb = "”ß‚µ‚­–‚¢‚½"; break; } if (yelp_verb) { +/*JP pline("%s %s!", Monnam(mtmp), vtense((char *) 0, yelp_verb)); +*/ + pline("%s‚Í%sI", Monnam(mtmp), yelp_verb); if (context.run) nomul(0); wake_nearto(mtmp->mx, mtmp->my, mtmp->data->mlevel * 12); @@ -431,17 +610,29 @@ register struct monst *mtmp; switch (mtmp->data->msound) { case MS_MEW: case MS_GROWL: +/*JP whimper_verb = "whimper"; +*/ + whimper_verb = "ƒNƒ“ƒNƒ“–‚¢‚½"; break; case MS_BARK: +/*JP whimper_verb = "whine"; +*/ + whimper_verb = "ƒN[ƒ“‚Ɩ‚¢‚½"; break; case MS_SQEEK: +/*JP whimper_verb = "squeal"; +*/ + whimper_verb = "ƒL[ƒL[–‚¢‚½"; break; } if (whimper_verb) { +/*JP pline("%s %s.", Monnam(mtmp), vtense((char *) 0, whimper_verb)); +*/ + pline("%s‚Í%sD", Monnam(mtmp), whimper_verb); if (context.run) nomul(0); wake_nearto(mtmp->mx, mtmp->my, mtmp->data->mlevel * 6); @@ -463,7 +654,10 @@ register struct monst *mtmp; else if (mtmp->data->msound >= MS_HUMANOID) { if (!canspotmon(mtmp)) map_invisible(mtmp->mx, mtmp->my); +/*JP verbalize("I'm hungry."); +*/ + verbalize("‚Í‚ç‚Ø‚±‚¾D"); } } @@ -542,7 +736,10 @@ register struct monst *mtmp; } else { /* approximation of GEICO's advertising slogan (it actually concludes with "save you 15% or more on car insurance.") */ +/*JP Sprintf(verbuf, "15 minutes could save you 15 %s.", +*/ + Sprintf(verbuf, "15•ª’¸‚¯‚ê‚Î15%sß–ñ‚Å‚«‚Ü‚·D", currency(15L)); /* "zorkmids" */ verbl_msg = verbuf; } @@ -556,18 +753,29 @@ register struct monst *mtmp; boolean nightchild = (Upolyd && (u.umonnum == PM_WOLF || u.umonnum == PM_WINTER_WOLF || u.umonnum == PM_WINTER_WOLF_CUB)); +#if 0 /*JP*/ const char *racenoun = (flags.female && urace.individual.f) ? urace.individual.f : (urace.individual.m) ? urace.individual.m : urace.noun; +#else + const char *racenoun = (flags.female) ? "‚ ‚È‚½" : "‚¨‚Ü‚¦" ; +#endif if (mtmp->mtame) { if (kindred) { +#if 0 /*JP*/ Sprintf(verbuf, "Good %s to you Master%s", isnight ? "evening" : "day", isnight ? "!" : ". Why do we not rest?"); +#else + Sprintf(verbuf, "‚²Žål—lC%s%s", + isnight ? "‚±‚ñ‚΂ñ‚Í" : "‚±‚ñ‚É‚¿‚Í", + isnight ? "!" : "D‚¨‹x‚Ý‚É‚È‚è‚Ü‚¹‚ñ‚©H"); +#endif verbl_msg = verbuf; } else { +#if 0 /*JP*/ Sprintf(verbuf, "%s%s", nightchild ? "Child of the night, " : "", midnight() @@ -575,37 +783,69 @@ register struct monst *mtmp; : isnight ? "I beg you, help me satisfy this growing craving!" : "I find myself growing a little weary."); +#else + Sprintf(verbuf,"%s%s", + nightchild ? "–é‚ÌŽe‚æC" : "", + midnight() + ? "Ž„‚Í‚±‚êˆÈãŠ‰–]‚ð—}‚¦‚ç‚ê‚È‚¢I" + : isnight + ? "‚Ó‚­‚ê‚ ‚ª‚銉–]‚ð–ž‚½‚·‚Ì‚ð•‚¯‚Ä‚­‚ê‚È‚¢‚©H—Š‚ށI" + : "Ž„‚͏­X”æ‚ꂽ‚悤‚¾D"); +#endif verbl_msg = verbuf; } } else if (mtmp->mpeaceful) { if (kindred && isnight) { +#if 0 /*JP*/ Sprintf(verbuf, "Good feeding %s!", flags.female ? "sister" : "brother"); +#else + Sprintf(verbuf, "‚悤ŒZ’íI"); +#endif verbl_msg = verbuf; } else if (nightchild && isnight) { +/*JP Sprintf(verbuf, "How nice to hear you, child of the night!"); +*/ + Sprintf(verbuf, "–é‚ÌŽe‚æCŒ³‹C‚»‚¤‚¾‚ȁI"); verbl_msg = verbuf; } else +/*JP verbl_msg = "I only drink... potions."; +*/ + verbl_msg = "Ž„‚Í–òDD‚µ‚©ˆù‚Ü‚È‚¢D"; } else { int vampindex; static const char *const vampmsg[] = { /* These first two (0 and 1) are specially handled below */ +/*JP "I vant to suck your %s!", +*/ + "‚¨‘O‚Ì%s‚ð‚悱‚¹I", +/*JP "I vill come after %s without regret!", +*/ + "‘¶•ª‚É%s‚ð’ÇŒ‚‚³‚¹‚Ä‚à‚炨‚¤I", /* other famous vampire quotes can follow here if desired */ }; if (kindred) verbl_msg = +/*JP "This is my hunting ground that you dare to prowl!"; +*/ + "‚¨‚Ü‚¦‚ª‚¤‚ë‚‚¢‚Ä‚¢‚邱‚Ì‚ ‚½‚è‚ÍŽ„‚ÌŽëê‚¾I"; else if (youmonst.data == &mons[PM_SILVER_DRAGON] || 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!", youmonst.data == &mons[PM_SILVER_DRAGON] ? "Fool" : "Young Fool"); verbl_msg = verbuf; +#else + verbl_msg = "‚΂©‚߁I‚¨‚Ü‚¦‚Ì‹â‚Ì‹P‚«‚È‚Ç•|‚­‚È‚¢‚¼I"; +#endif } else { vampindex = rn2(SIZE(vampmsg)); if (vampindex == 0) { @@ -623,124 +863,232 @@ register struct monst *mtmp; } break; case MS_WERE: if (flags.moonphase == FULL_MOON && (night() ^ !rn2(13))) { +#if 0 /*JP*/ pline("%s throws back %s head and lets out a blood curdling %s!", Monnam(mtmp), mhis(mtmp), ptr == &mons[PM_HUMAN_WERERAT] ? "shriek" : "howl"); +#else + pline("%s‚Í“ª‚ð‚Ì‚¯‚¼‚炵”w‹Ø‚ª“€‚é‚悤‚È%s‚ð‚ ‚°‚½I", + Monnam(mtmp), + ptr == &mons[PM_HUMAN_WERERAT] ? "‹àØ‚萺" : "™ôšK"); +#endif wake_nearto(mtmp->mx, mtmp->my, 11 * 11); } else pline_msg = +/*JP "whispers inaudibly. All you can make out is \"moon\"."; +*/ + "•·‚«‚Æ‚ê‚È‚¢‚悤‚Ȑº‚Å‚³‚³‚â‚¢‚½D‚©‚낤‚¶‚āwŒŽx‚Æ‚¢‚¤Œ¾—t‚¾‚¯‚ª•·‚«‚ƂꂽD"; break; case MS_BARK: if (flags.moonphase == FULL_MOON && night()) { +/*JP pline_msg = "howls."; +*/ + pline_msg = "–i‚¦‚½D"; } else if (mtmp->mpeaceful) { if (mtmp->mtame && (mtmp->mconf || mtmp->mflee || mtmp->mtrapped || moves > EDOG(mtmp)->hungrytime || mtmp->mtame < 5)) +/*JP pline_msg = "whines."; +*/ + pline_msg = "ƒNƒ“ƒNƒ“–‚¢‚½D"; else if (mtmp->mtame && EDOG(mtmp)->hungrytime > moves + 1000) +/*JP pline_msg = "yips."; +*/ + pline_msg = "ƒLƒƒƒ“ƒLƒƒƒ“–‚¢‚½D"; else { if (mtmp->data != &mons[PM_DINGO]) /* dingos do not actually bark */ +/*JP pline_msg = "barks."; +*/ + pline_msg = "ƒƒ“ƒƒ“–i‚¦‚½D"; } } else { +/*JP pline_msg = "growls."; +*/ + pline_msg = "‚¤‚È‚Á‚½D"; } break; case MS_MEW: if (mtmp->mtame) { if (mtmp->mconf || mtmp->mflee || mtmp->mtrapped || mtmp->mtame < 5) +/*JP pline_msg = "yowls."; +*/ + pline_msg = "”ß‚µ‚­–‚¢‚½D"; else if (moves > EDOG(mtmp)->hungrytime) +/*JP pline_msg = "meows."; +*/ + pline_msg = "ƒjƒƒ[ƒ“‚Ɩ‚¢‚½D"; else if (EDOG(mtmp)->hungrytime > moves + 1000) +/*JP pline_msg = "purrs."; +*/ + pline_msg = "ƒSƒƒSƒ‚Ɩ‚¢‚½D"; else +/*JP pline_msg = "mews."; +*/ + pline_msg = "ƒjƒƒ[ƒjƒƒ[–‚¢‚½D"; break; } /* else FALLTHRU */ case MS_GROWL: +/*JP pline_msg = mtmp->mpeaceful ? "snarls." : "growls!"; +*/ + pline_msg = mtmp->mpeaceful ? "‚¤‚È‚Á‚½D" : "Œƒ‚µ‚­‚¤‚È‚Á‚½I"; break; case MS_ROAR: +/*JP pline_msg = mtmp->mpeaceful ? "snarls." : "roars!"; +*/ + pline_msg = mtmp->mpeaceful ? "‚¤‚È‚Á‚½D" : "‚Æ‚Ä‚àŒƒ‚µ‚­–i‚¦‚½I"; break; case MS_SQEEK: +/*JP pline_msg = "squeaks."; +*/ + pline_msg = "ƒL[ƒL[–‚¢‚½D"; break; case MS_SQAWK: if (ptr == &mons[PM_RAVEN] && !mtmp->mpeaceful) +/*JP verbl_msg = "Nevermore!"; +*/ + verbl_msg = "u‚à‚¤“ñ“x‚ƁIv"; else +/*JP pline_msg = "squawks."; +*/ + pline_msg = "ƒL[ƒL[–‚¢‚½D"; break; case MS_HISS: if (!mtmp->mpeaceful) +/*JP pline_msg = "hisses!"; +*/ + pline_msg = "ƒV[ƒb‚Ɩ‚¢‚½I"; else return 0; /* no sound */ break; case MS_BUZZ: +/*JP pline_msg = mtmp->mpeaceful ? "drones." : "buzzes angrily."; +*/ + pline_msg = mtmp->mpeaceful ? "‚ԁ[‚ñ‚Ɩ‚Á‚½D" : "‚Ô‚ñ‚Ô‚ñ–‚Á‚½D"; break; case MS_GRUNT: +/*JP pline_msg = "grunts."; +*/ + pline_msg = "‚ԁ[‚ԁ[–‚¢‚½D"; break; case MS_NEIGH: if (mtmp->mtame < 5) +/*JP pline_msg = "neighs."; +*/ + pline_msg = "‚¢‚È‚È‚¢‚½D"; else if (moves > EDOG(mtmp)->hungrytime) +/*JP pline_msg = "whinnies."; +*/ + pline_msg = "ƒqƒq[ƒ“‚Ɩ‚¢‚½D"; else +/*JP pline_msg = "whickers."; +*/ + pline_msg = "ƒqƒqƒq[ƒ“‚Ɩ‚¢‚½D"; break; case MS_WAIL: +/*JP pline_msg = "wails mournfully."; +*/ + pline_msg = "”ß‚µ‚°‚ɖ‚¢‚½D"; break; case MS_GURGLE: +/*JP pline_msg = "gurgles."; +*/ + pline_msg = "‚²‚낲‚ëA‚ð–‚炵‚½D"; break; case MS_BURBLE: +/*JP pline_msg = "burbles."; +*/ + pline_msg = "‚Ø‚¿‚á‚­‚¿‚Ⴕ‚á‚ׂÁ‚½D"; break; case MS_SHRIEK: +/*JP pline_msg = "shrieks."; +*/ + pline_msg = "‹àØ‚萺‚ð‚ ‚°‚½D"; aggravate(); break; case MS_IMITATE: +/*JP pline_msg = "imitates you."; +*/ + pline_msg = "‚ ‚È‚½‚̐^Ž—‚ð‚µ‚½D"; break; case MS_BONES: +/*JP pline("%s rattles noisily.", Monnam(mtmp)); +*/ + pline("%s‚̓Pƒ^ƒPƒ^‚Ə΂¢‚¾‚µ‚½D",Monnam(mtmp)); +/*JP You("freeze for a moment."); +*/ + You("ˆêu“€‚è‚‚¢‚½D"); nomul(-2); multi_reason = "scared by rattling"; nomovemsg = 0; break; case MS_LAUGH: { static const char *const laugh_msg[4] = { +/*JP "giggles.", "chuckles.", "snickers.", "laughs.", +*/ + "‚­‚·‚­‚·Î‚Á‚½D", "‚­‚·‚Á‚Ə΂Á‚½D", "‚΂©‚É‚µ‚½‚悤‚ɏ΂Á‚½D", "Î‚Á‚½D", }; pline_msg = laugh_msg[rn2(4)]; } break; case MS_MUMBLE: +/*JP pline_msg = "mumbles incomprehensibly."; +*/ + pline_msg = "•s‰Â‰ð‚ÈŒ¾—t‚ð‚‚Ԃ₢‚½D"; break; case MS_DJINNI: if (mtmp->mtame) { +/*JP verbl_msg = "Sorry, I'm all out of wishes."; +*/ + verbl_msg = "Ž„‚ð•‚¯‚Ä‚­‚ꂽ‚±‚Æ‚ðŠ´ŽÓ‚·‚éI"; } else if (mtmp->mpeaceful) { if (ptr == &mons[PM_WATER_DEMON]) +/*JP pline_msg = "gurgles."; +*/ + pline_msg = "ƒSƒ{ƒSƒ{ƒSƒ{ƒSƒ{D"; else +/*JP verbl_msg = "I'm free!"; +*/ + verbl_msg = "‚â‚Á‚ÆŽ©—R‚É‚È‚Á‚½I"; } else { if (ptr != &mons[PM_PRISONER]) +/*JP verbl_msg = "This will teach you not to disturb me!"; +*/ + verbl_msg = "‚¶‚á‚Ü‚ð‚µ‚È‚¢‚Å‚­‚êI"; #if 0 else verbl_msg = "??????????"; @@ -751,14 +1099,24 @@ register struct monst *mtmp; if (!mtmp->mpeaceful) { switch (rn2(4)) { case 0: +#if 0 /*JP*/ pline("%s boasts about %s gem collection.", Monnam(mtmp), mhis(mtmp)); +#else + pline("%s‚ÍŽ©•ª‚Ì•óÎ‚̃RƒŒƒNƒVƒ‡ƒ“‚ðŽ©–‚µ‚½D", Monnam(mtmp)); +#endif break; case 1: +/*JP pline_msg = "complains about a diet of mutton."; +*/ + pline_msg = "–ˆ“ú—r‚΂©‚èH‚ׂĂ¢‚鎖‚ð‹ð’s‚Á‚½D"; break; default: +/*JP pline_msg = "shouts \"Fee Fie Foe Foo!\" and guffaws."; +*/ + pline_msg = "w‚í‚Á‚Í‚Á‚Í‚Á‚́Ix‚Ƃ΂©Î‚¢‚µ‚½D"; wake_nearto(mtmp->mx, mtmp->my, 7 * 7); break; } @@ -770,55 +1128,106 @@ register struct monst *mtmp; if (In_endgame(&u.uz) && is_mplayer(ptr)) mplayer_talk(mtmp); else +/*JP pline_msg = "threatens you."; +*/ + pline_msg = "‚ ‚È‚½‚ðˆÐŠd‚µ‚½D"; break; } /* Generic peaceful humanoid behaviour. */ if (mtmp->mflee) +/*JP pline_msg = "wants nothing to do with you."; +*/ + pline_msg = "‚ ‚È‚½‚ÆŠÖ‚í‚肽‚­‚È‚¢‚悤‚¾D"; else if (mtmp->mhp < mtmp->mhpmax / 4) +/*JP pline_msg = "moans."; +*/ + pline_msg = "‚¤‚ß‚«º‚ð‚ ‚°‚½D"; else if (mtmp->mconf || mtmp->mstun) +/*JP verbl_msg = !rn2(3) ? "Huh?" : rn2(2) ? "What?" : "Eh?"; +*/ + verbl_msg = !rn2(3) ? "‚ցH" : rn2(2) ? "‰½H" : "‚¦H"; else if (!mtmp->mcansee) +/*JP verbl_msg = "I can't see!"; +*/ + verbl_msg = "‰½‚àŒ©‚¦‚È‚¢I"; else if (mtmp->mtrapped) { struct trap *t = t_at(mtmp->mx, mtmp->my); if (t) t->tseen = 1; +/*JP verbl_msg = "I'm trapped!"; +*/ + verbl_msg = "㩂ɂ͂܂Á‚Ä‚µ‚Ü‚Á‚½I"; } else if (mtmp->mhp < mtmp->mhpmax / 2) +/*JP pline_msg = "asks for a potion of healing."; +*/ + pline_msg = "‰ñ•œ‚Ì–ò‚ðŽ‚Á‚Ä‚È‚¢‚©q‚Ë‚½D"; else if (mtmp->mtame && !mtmp->isminion && moves > EDOG(mtmp)->hungrytime) +/*JP verbl_msg = "I'm hungry."; +*/ + verbl_msg = "• ‚ªŒ¸‚Á‚½‚ȁD"; /* Specific monsters' interests */ else if (is_elf(ptr)) +/*JP pline_msg = "curses orcs."; +*/ + pline_msg = "ƒI[ƒN‚ðŽô‚Á‚½D"; else if (is_dwarf(ptr)) +/*JP pline_msg = "talks about mining."; +*/ + pline_msg = "ÌŒ@‚ɂ‚¢‚Ęb‚µ‚½D"; else if (likes_magic(ptr)) +/*JP pline_msg = "talks about spellcraft."; +*/ + pline_msg = "–‚p‚Ì’b˜B‚ɂ‚¢‚Ęb‚µ‚½D"; else if (ptr->mlet == S_CENTAUR) +/*JP pline_msg = "discusses hunting."; +*/ + pline_msg = "—‚ɂ‚¢‚Ä‹c˜_‚µ‚½D"; else switch (monsndx(ptr)) { case PM_HOBBIT: pline_msg = (mtmp->mhpmax - mtmp->mhp >= 10) +/*JP ? "complains about unpleasant dungeon conditions." +*/ + ? "•s–ù‰õ‚È–À‹{‚̏ó‘Ԃɂ‚¢‚Ä•s–ž‚ðq‚ׂ½D" +/*JP : "asks you about the One Ring."; +*/ + : "uˆê‚‚̎w—ցv‚ɂ‚¢‚Đq‚Ë‚½D"; break; case PM_ARCHEOLOGIST: pline_msg = +/*JP "describes a recent article in \"Spelunker Today\" magazine."; +*/ + "u“úŠ§“´ŒAv‚̍ŐV‚Ì‹LŽ–‚ðŽ·•M‚µ‚Ä‚¢‚éD"; break; case PM_TOURIST: +/*JP verbl_msg = "Aloha."; +*/ + verbl_msg = "ƒAƒ[ƒnD"; break; default: +/*JP pline_msg = "discusses dungeon exploration."; +*/ + pline_msg = "–À‹{’TŒŸ‚ɂ‚¢‚Ä‹c˜_‚µ‚½D"; break; } break; @@ -835,22 +1244,52 @@ register struct monst *mtmp; swval = ((poly_gender() == 0) ? rn2(3) : 0); switch (swval) { case 2: +#if 0 /*JP*/ verbl_msg = "Hello, sailor."; +#else + switch (poly_gender()) { + case 0: + verbl_msg = "‚±‚ñ‚É‚¿‚́D‚ ‚ç‚¢‚¢’j‚ˁD"; + break; + case 1: + verbl_msg = "‚±‚ñ‚É‚¿‚́C‚¨ì‚³‚ñD"; + break; + default: + verbl_msg = "‚±‚ñ‚É‚¿‚́D"; + break; + } +#endif break; case 1: +/*JP pline_msg = "comes on to you."; +*/ + pline_msg = "‚ ‚È‚½‚Ì‚Ù‚¤‚Ö‚â‚Á‚Ä‚«‚½D"; break; default: +/*JP pline_msg = "cajoles you."; +*/ + pline_msg = "‚ ‚È‚½‚ð‚¨‚¾‚Ä‚½D"; } } break; case MS_ARREST: if (mtmp->mpeaceful) +#if 0 /*JP*/ verbalize("Just the facts, %s.", flags.female ? "Ma'am" : "Sir"); +#else + verbalize("Ž–ŽÀ‚¾‚¯‚ª’m‚肽‚¢‚ñ‚Å‚·‚æC%sD", flags.female ? "‰œ‚³‚ñ" : "’U“ß"); +#endif else { static const char *const arrest_msg[3] = { +#if 0 /*JP*/ "Anything you say can be used against you.", "You're under arrest!", "Stop in the name of the Law!", +#else + "‚¨‚Ü‚¦‚ÌŒ¾‚¤‚±‚Æ‚Í‚¨‚Ü‚¦‚É‚Æ‚Á‚Ä•s—˜‚ȏ؋’‚ƂȂ邱‚Æ‚ª‚ ‚éI", + "‚¨‚Ü‚¦‚ð‘ß•ß‚·‚éI", + "–@‚Ì–¼‚Ì‚à‚Æ’¼‚¿‚É’†Ž~‚¹‚æI", +#endif }; verbl_msg = arrest_msg[rn2(3)]; } @@ -865,43 +1304,88 @@ register struct monst *mtmp; if (!mtmp->mpeaceful) cuss(mtmp); else if (is_lminion(mtmp)) +/*JP verbl_msg = "It's not too late."; +*/ + verbl_msg = "‚Ü‚¾’x‚­‚Í‚È‚¢D"; else +/*JP verbl_msg = "We're all doomed."; +*/ + verbl_msg = "‚Ý‚ñ‚È‚à‚¤‚¨‚µ‚Ü‚¢‚¾D"; break; case MS_SPELL: /* deliberately vague, since it's not actually casting any spell */ +/*JP pline_msg = "seems to mutter a cantrip."; +*/ + pline_msg = "‚Ԃ‚Ԃ‚Ƃ‚Ԃ₢‚Ä‚¢‚éD"; break; case MS_NURSE: +/*JP verbl_msg_mcan = "I hate this job!"; +*/ + verbl_msg_mcan = "‚±‚ñ‚ÈŽdŽ–Œ™‚¢I"; if (uwep && (uwep->oclass == WEAPON_CLASS || is_weptool(uwep))) +/*JP verbl_msg = "Put that weapon away before you hurt someone!"; +*/ + verbl_msg = "•Ší‚ð‚¨‚³‚ß‚È‚³‚¢I‚»‚ê‚͐l‚ð‚Â‚¯‚é‚à‚Ì‚æI"; else if (uarmc || uarm || uarmh || uarms || uarmg || uarmf) verbl_msg = Role_if(PM_HEALER) +/*JP ? "Doc, I can't help you unless you cooperate." +*/ + ? "æ¶C‚ ‚È‚½‚Ì‹¦—Í‚È‚µ‚Å‚Í‚Ç‚¤‚µ‚悤‚à‚ ‚è‚Ü‚¹‚ñ‚íD" +/*JP : "Please undress so I can examine you."; +*/ + : "•ž‚ð’E‚¢‚Å‚­‚¾‚³‚¢D‚ ‚È‚½‚ðfŽ@‚µ‚Ü‚·‚íD"; else if (uarmu) +/*JP verbl_msg = "Take off your shirt, please."; +*/ + verbl_msg = "ƒVƒƒƒc‚ð’E‚¢‚Å‚­‚¾‚³‚¢D"; else +/*JP verbl_msg = "Relax, this won't hurt a bit."; +*/ + verbl_msg = "‚¨‚¿‚‚¢‚āD‚¿‚Á‚Æ‚à’É‚­‚È‚¢‚í‚æD"; break; case MS_GUARD: if (money_cnt(invent)) +/*JP verbl_msg = "Please drop that gold and follow me."; +*/ + verbl_msg = "‹à‚ð’u‚¢‚¢‚Ä‚«‚Ä‚­‚¾‚³‚¢D"; else +/*JP verbl_msg = "Please follow me."; +*/ + verbl_msg = "‚‚¢‚Ä‚«‚Ä‚­‚¾‚³‚¢D"; break; case MS_SOLDIER: { static const char *const soldier_foe_msg[3] = { +#if 0 /*JP*/ "Resistance is useless!", "You're dog meat!", "Surrender!", +#else + "’ïR‚µ‚Ä‚à–³‘Ê‚¾I", + "Œ¢‚É‹ò‚í‚ê‚¿‚Ü‚¦I", + "~•š‚µ‚ëI", +#endif }, *const soldier_pax_msg[3] = { +#if 0 /*JP*/ "What lousy pay we're getting here!", "The food's not fit for Orcs!", "My feet hurt, I've been on them all day!", +#else + "‚È‚ñ‚Ä‹à•¥‚¢‚ªˆ«‚¢‚ñ‚¾I", + "‚È‚ñ‚¾‚¢HƒI[ƒN‚Å‚à‹ò‚¦‚Ë‚¥‚ºI", + "‘«‚ð‰ö‰ä‚µ‚½C‚¸‚Á‚Æ‚±‚Ì’²Žq‚¾I", +#endif }; verbl_msg = mtmp->mpeaceful ? soldier_pax_msg[rn2(3)] : soldier_foe_msg[rn2(3)]; @@ -920,11 +1404,17 @@ register struct monst *mtmp; tribtitle = noveltitle(&novelidx); } if (tribtitle) { +/*JP Sprintf(verbuf, "Ah, so you have a copy of /%s/.", tribtitle); +*/ + Sprintf(verbuf, "‚ ‚ A/%s/‚ðŽ‚Á‚Ä‚¢‚é‚Ì‚©D", tribtitle); /* no Death featured in these two, so exclude them */ if (!(strcmpi(tribtitle, "Snuff") == 0 || strcmpi(tribtitle, "The Wee Free Men") == 0)) +/*JP Strcat(verbuf, " I may have been misquoted there."); +*/ + Strcat(verbuf, "‚±‚±‚ł͈ø—p‚ªŠÔˆá‚Á‚Ä‚¢‚é‚©‚à‚µ‚ê‚È‚¢D"); verbl_msg = verbuf; context.tribute.Deathnotice = 1; } @@ -934,17 +1424,27 @@ register struct monst *mtmp; } /* end of tribute addition */ else if (ptr == &mons[PM_DEATH] && !rn2(10)) +/*JP pline_msg = "is busy reading a copy of Sandman #8."; +*/ + pline_msg = "uƒTƒ“ƒhƒ}ƒ“v‚Ì8Šª‚ð“Ç‚Þ‚Ì‚É–Z‚µ‚¢D"; else +/*JP verbl_msg = "Who do you think you are, War?"; +*/ + verbl_msg = "ƒEƒH[‚æCŽ©•ª‚ª‰½ŽÒ‚©l‚¦‚½‚±‚Æ‚ª‚ ‚é‚©H"; break; } if (pline_msg) +/*JP pline("%s %s", Monnam(mtmp), pline_msg); +*/ + pline("%s‚Í%s", Monnam(mtmp), pline_msg); else if (mtmp->mcan && verbl_msg_mcan) verbalize1(verbl_msg_mcan); else if (verbl_msg) { +#if 0 /*JP*//*ƒfƒX‚ð“Á•Êˆµ‚¢‚µ‚È‚¢*/ if (ptr == &mons[PM_DEATH]) { /* Death talks in CAPITAL LETTERS and without quotation marks */ @@ -954,6 +1454,9 @@ register struct monst *mtmp; } else { verbalize1(verbl_msg); } +#else + verbalize1(verbl_msg); +#endif } return 1; } @@ -976,23 +1479,38 @@ dochat() struct obj *otmp; if (is_silent(youmonst.data)) { +/*JP pline("As %s, you cannot speak.", an(youmonst.data->mname)); +*/ + pline("‚ ‚È‚½‚Í%s‚Ȃ̂ŁC˜b‚·‚±‚Æ‚ª‚Å‚«‚È‚¢D", youmonst.data->mname); return 0; } if (Strangled) { +/*JP You_cant("speak. You're choking!"); +*/ + You("˜b‚¹‚È‚¢D‚ ‚È‚½‚ÍŽñ‚ði‚ß‚ç‚ê‚Ä‚¢‚éI"); return 0; } if (u.uswallow) { +/*JP pline("They won't hear you out there."); +*/ + You("ŠO‚ÖŒü‚Á‚Ęb‚ð‚µ‚½‚ªC’N‚à•·‚«‚¢‚ê‚È‚©‚Á‚½D"); return 0; } if (Underwater) { +/*JP Your("speech is unintelligible underwater."); +*/ + pline("…–ʉº‚ł́C‚ ‚È‚½‚̘b‚Í‚ë‚­‚É—‰ð‚³‚ê‚È‚¢D"); return 0; } if (Deaf) { +/*JP pline("How can you hold a conversation when you cannot hear?"); +*/ + pline("•·‚­‚±‚Æ‚ª‚Å‚«‚È‚¢‚Ì‚É‚Ç‚¤‚â‚Á‚ĉï˜b‚·‚é‚́H"); return 0; } @@ -1008,21 +1526,30 @@ dochat() return 1; } +/*JP if (!getdir("Talk to whom? (in what direction)")) { +*/ + if (!getdir("’N‚Ƙb‚µ‚Ü‚·‚©H[•ûŒü‚ð“ü‚ê‚Ä‚Ë]")) { /* decided not to chat */ return 0; } if (u.usteed && u.dz > 0) { if (!u.usteed->mcanmove || u.usteed->msleeping) { +/*JP pline("%s seems not to notice you.", Monnam(u.usteed)); +*/ + pline("%s‚Í‚ ‚È‚½‚É‹C‚ª‚‚¢‚Ä‚¢‚È‚¢‚悤‚¾D", Monnam(u.usteed)); return 1; } else return domonnoise(u.usteed); } if (u.dz) { +/*JP pline("They won't hear you %s there.", u.dz < 0 ? "up" : "down"); +*/ + pline("%sŒü‚©‚Á‚Ęb‚ð‚µ‚Ä‚àˆÓ–¡‚ª‚È‚¢D", u.dz < 0 ? "ã‚É" : "‰º‚É"); return 0; } @@ -1037,7 +1564,10 @@ dochat() return 1; } */ +/*JP pline("Talking to yourself is a bad habit for a dungeoneer."); +*/ + pline("ˆêlŒ¾‚Í–À‹{’TŒŸŽÒ‚̈«‚¢•È‚¾D"); return 0; } @@ -1053,9 +1583,14 @@ dochat() && (otmp = vobj_at(tx, ty)) != 0 && otmp->otyp == STATUE) { /* Talking to a statue */ if (!Blind) { +#if 0 /*JP*/ pline_The("%s seems not to notice you.", /* if hallucinating, you can't tell it's a statue */ Hallucination ? rndmonnam((char *) 0) : "statue"); +#else + pline_The("%s‚Í‚ ‚È‚½‚É‹C‚ª‚‚¢‚Ä‚¢‚È‚¢‚悤‚¾D", + Hallucination ? rndmonnam((char *) 0) : "Î‘œ"); +#endif } return 0; } @@ -1069,7 +1604,10 @@ dochat() /* If it is unseen, the player can't tell the difference between not noticing him and just not existing, so skip the message. */ if (canspotmon(mtmp)) +/*JP pline("%s seems not to notice you.", Monnam(mtmp)); +*/ + pline("%s‚Í‚ ‚È‚½‚É‹C‚ª‚‚¢‚Ä‚¢‚È‚¢‚悤‚¾D", Monnam(mtmp)); return 0; } @@ -1079,7 +1617,10 @@ dochat() if (mtmp->mtame && mtmp->meating) { if (!canspotmon(mtmp)) map_invisible(mtmp->mx, mtmp->my); +/*JP pline("%s is eating noisily.", Monnam(mtmp)); +*/ + pline("%s‚̓oƒŠƒoƒŠ‚Æ•¨‚ðH‚ׂĂ¢‚éD", Monnam(mtmp)); return 0; } diff --git a/src/spell.c b/src/spell.c index 71068c7..2a10181 100644 --- a/src/spell.c +++ b/src/spell.c @@ -2,6 +2,11 @@ /* Copyright (c) M. Stephenson 1988 */ /* 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" /* spellmenu arguments; 0 thru n-1 used as spl_book[] index when swapping */ @@ -97,7 +102,9 @@ STATIC_DCL const char *FDECL(spelltypemnemonic, (int)); #define uarmfbon 2 /* All metal interferes to some degree */ /* since the spellbook itself doesn't blow up, don't say just "explodes" */ +#if 0 /*JP*/ static const char explodes[] = "radiates explosive energy"; +#endif /* convert a letter into a number in the range 0..51, or -1 if not a letter */ STATIC_OVL int @@ -125,11 +132,17 @@ struct obj *bp; switch (rn2(lev)) { case 0: +/*JP You_feel("a wrenching sensation."); +*/ + You("‚Ë‚¶‚ç‚ꂽ‚悤‚ÈŠ´Šo‚ðŠ´‚¶‚½D"); tele(); /* teleport him */ break; case 1: +/*JP You_feel("threatened."); +*/ + You("‚¨‚Ç‚³‚ê‚Ä‚¢‚é‚悤‚È‹C‚ª‚µ‚½D"); aggravate(); break; case 2: @@ -139,11 +152,17 @@ struct obj *bp; take_gold(); break; case 4: +/*JP pline("These runes were just too much to comprehend."); +*/ + pline("‚±‚̃‹[ƒ“•¶Žš‚ð—‰ð‚·‚é‚͍̂¢“D"); make_confused(HConfusion + rn1(7, 16), FALSE); break; case 5: +/*JP pline_The("book was coated with contact poison!"); +*/ + pline("‚±‚Ì–{‚͐ڐGŒ^‚Ì“Å‚Å•¢‚í‚ê‚Ä‚¢‚éI"); if (uarmg) { erode_obj(uarmg, "gloves", ERODE_CORRODE, EF_GREASE | EF_VERBOSE); break; @@ -151,19 +170,33 @@ struct obj *bp; /* temp disable in_use; death should not destroy the book */ bp->in_use = FALSE; losestr(Poison_resistance ? rn1(2, 1) : rn1(4, 3)); +#if 0 /*JP*/ losehp(rnd(Poison_resistance ? 6 : 10), "contact-poisoned spellbook", KILLED_BY_AN); +#else + losehp(rnd(Poison_resistance ? 6 : 10), "ÚG“Å‚Ì–‚–@‘‚Å", + KILLED_BY_AN); +#endif bp->in_use = TRUE; break; case 6: if (Antimagic) { shieldeff(u.ux, u.uy); +/*JP pline_The("book %s, but you are unharmed!", explodes); +*/ + pline("–{‚Í‹­—͂ȃGƒlƒ‹ƒM[‚ð•úo‚µ‚½C‚µ‚©‚µ‚ ‚È‚½‚͏‚‚©‚È‚¢I"); } else { +/*JP pline("As you read the book, it %s in your %s!", explodes, +*/ + pline("–{‚Í‹­—͂ȃGƒlƒ‹ƒM[‚ð‚ ‚È‚½‚Ì%s‚É•úo‚µ‚½I", body_part(FACE)); dmg = 2 * rnd(10) + 5; +/*JP losehp(Maybe_Half_Phys(dmg), "exploding rune", KILLED_BY_AN); +*/ + losehp(Maybe_Half_Phys(dmg), "‹­—͂ȃ‹[ƒ“•¶Žš‚̃Gƒlƒ‹ƒM[‚Å", KILLED_BY_AN); } return TRUE; default: @@ -183,17 +216,28 @@ struct obj *spellbook; if (!rn2(3) && spellbook->otyp != SPE_BOOK_OF_THE_DEAD) { spellbook->in_use = TRUE; /* in case called from learn */ pline( +/*JP "Being confused you have difficulties in controlling your actions."); +*/ + "¬—‚µ‚Ä‚¢‚é‚̂ŁC‚»‚¤‚¢‚¤‚±‚Æ‚ð‚·‚é‚͓̂‚¢D"); display_nhwindow(WIN_MESSAGE, FALSE); +/*JP You("accidentally tear the spellbook to pieces."); +*/ + You("‚¤‚Á‚©‚èC–‚–@‘‚ðˆø‚«‚³‚¢‚Ä‚µ‚Ü‚Á‚½D"); if (!objects[spellbook->otyp].oc_name_known && !objects[spellbook->otyp].oc_uname) docall(spellbook); useup(spellbook); gone = TRUE; } else { +#if 0 /*JP*/ You("find yourself reading the %s line over and over again.", spellbook == context.spbook.book ? "next" : "first"); +#else + You("%s‚̍s‚ð‰½“x‚àŒJ‚è•Ô‚µ‚Ä“Ç‚ñ‚Å‚¢‚½‚±‚Æ‚É‹C•t‚¢‚½D", + spellbook == context.spbook.book ? "ŽŸ" : "Å‰"); +#endif } return gone; } @@ -206,7 +250,10 @@ struct obj *book2; struct monst *mtmp, *mtmp2; coord mm; +/*JP You("turn the pages of the Book of the Dead..."); +*/ + You("Ž€ŽÒ‚̏‘‚̃y[ƒW‚ð‚ß‚­‚Á‚½DDD"); makeknown(SPE_BOOK_OF_THE_DEAD); /* KMH -- Need ->known to avoid "_a_ Book of the Dead" */ book2->known = 1; @@ -216,16 +263,28 @@ struct obj *book2; arti_cursed = FALSE; if (book2->cursed) { +/*JP pline_The("runes appear scrambled. You can't read them!"); +*/ + pline("ƒ‹[ƒ“•¶Žš‚Í‚²‚¿‚á‚Ü‚º‚É‚È‚Á‚Ä‚¨‚èC“Ç‚Þ‚±‚Æ‚ª‚Å‚«‚È‚©‚Á‚½I"); return; } if (!u.uhave.bell || !u.uhave.menorah) { +/*JP pline("A chill runs down your %s.", body_part(SPINE)); +*/ + Your("%s‚ÉŠ¦‚¯‚ª‘–‚Á‚½D", body_part(SPINE)); if (!u.uhave.bell) +/*JP You_hear("a faint chime..."); +*/ + You_hear("‚©‚·‚©‚ȃxƒ‹‚̉¹‚ð•·‚¢‚½DDD"); if (!u.uhave.menorah) +/*JP pline("Vlad's doppelganger is amused."); +*/ + pline("ƒ”ƒ‰ƒh‚̐¶—ì‚͏΂Á‚½D"); return; } @@ -247,8 +306,14 @@ struct obj *book2; } if (arti_cursed) { +/*JP pline_The("invocation fails!"); +*/ + pline("“ÁŽê”\—Í‚Í”­Šö‚³‚ê‚È‚©‚Á‚½I"); +/*JP pline("At least one of your artifacts is cursed..."); +*/ + pline("­‚È‚­‚Æ‚à¹Ší‚̂ЂƂ‚ªŽô‚í‚ê‚Ä‚¢‚éDDD"); } else if (arti1_primed && arti2_primed) { unsigned soon = (unsigned) d(2, 6); /* time til next intervene() */ @@ -262,7 +327,10 @@ struct obj *book2; if (!u.udg_cnt || u.udg_cnt > soon) u.udg_cnt = soon; } else { /* at least one artifact not prepared properly */ +/*JP You("have a feeling that %s is amiss...", something); +*/ + You("‰½‚©‚ªŠÔˆá‚Á‚Ä‚¢‚é‚悤‚È‹C‚ª‚µ‚½DDD"); goto raise_dead; } return; @@ -272,7 +340,10 @@ struct obj *book2; if (book2->cursed) { raise_dead: +/*JP You("raised the dead!"); +*/ + You("Ž€ŽÒ‚ð‘h‚点‚½I"); /* first maybe place a dangerous adversary */ if (!rn2(3) && ((mtmp = makemon(&mons[PM_MASTER_LICH], u.ux, u.uy, NO_MINVENT)) != 0 @@ -310,13 +381,22 @@ struct obj *book2; } else { switch (rn2(3)) { case 0: +/*JP Your("ancestors are annoyed with you!"); +*/ + Your("æ‘c‚Í‚ ‚È‚½‚ªŒ™‚¢‚Ȃ悤‚¾I"); break; case 1: +/*JP pline_The("headstones in the cemetery begin to move!"); +*/ + pline("•æ’n‚Ì•æÎ‚ª“®‚«‚Í‚¶‚ß‚½I"); break; default: +/*JP pline("Oh my! Your name appears in the book!"); +*/ + pline("‚È‚ñ‚Ä‚±‚Á‚½‚¢I‚ ‚È‚½‚Ì–¼‘O‚ª–{‚ɏ‘‚¢‚Ä‚ ‚éI"); } } return; @@ -357,9 +437,15 @@ learn(VOID_ARGS) return 0; } +#if 0 /*JP*/ Sprintf(splname, objects[booktype].oc_name_known ? "\"%s\"" : "the \"%s\" spell", OBJ_NAME(objects[booktype])); +#else + Sprintf(splname, + objects[booktype].oc_name_known ? "\"%s\"" : "\"%s\"", + OBJ_NAME(objects[booktype])); +#endif for (i = 0; i < MAXSPELL; i++) if (spellid(i) == booktype || spellid(i) == NO_SPELL) break; @@ -369,16 +455,27 @@ learn(VOID_ARGS) } else if (spellid(i) == booktype) { /* normal book can be read and re-read a total of 4 times */ if (book->spestudied > MAX_SPELL_STUDY) { +/*JP pline("This spellbook is too faint to be read any more."); +*/ + pline("‚±‚Ì–‚–@‘‚Ì•¶Žš‚Í”–‚·‚¬‚Ä‚±‚êˆÈã“Ç‚ß‚È‚¢D"); book->otyp = booktype = SPE_BLANK_PAPER; /* reset spestudied as if polymorph had taken place */ book->spestudied = rn2(book->spestudied); } else if (spellknow(i) > KEEN / 10) { +/*JP You("know %s quite well already.", splname); +*/ + You("‚·‚Å‚É%s‚ðn’m‚µ‚Ä‚¢‚éD", splname); costly = FALSE; } else { /* spellknow(i) <= KEEN/10 */ +#if 0 /*JP*/ Your("knowledge of %s is %s.", splname, spellknow(i) ? "keener" : "restored"); +#else + Your("%s‚ɑ΂·‚é’mŽ¯‚Í%s‚³‚ꂽD", splname, + spellknow(i) ? "‚³‚ç‚ÉŒ¤‚¬‚·‚Ü" : "•œŒ³"); +#endif incrnknow(i, 1); book->spestudied++; exercise(A_WIS, TRUE); /* extra study */ @@ -392,7 +489,10 @@ learn(VOID_ARGS) one less reading is available than when re-learning */ if (book->spestudied >= MAX_SPELL_STUDY) { /* pre-used due to being the product of polymorph */ +/*JP pline("This spellbook is too faint to read even once."); +*/ + pline("‚±‚Ì–‚–@‘‚Ì•¶Žš‚Í”–‚·‚¬‚Ä‚±‚êˆÈã“Ç‚ß‚È‚¢D"); book->otyp = booktype = SPE_BLANK_PAPER; /* reset spestudied as if polymorph had taken place */ book->spestudied = rn2(book->spestudied); @@ -401,7 +501,10 @@ learn(VOID_ARGS) spl_book[i].sp_lev = objects[booktype].oc_level; incrnknow(i, 1); book->spestudied++; +/*JP You(i > 0 ? "add %s to your repertoire." : "learn %s.", splname); +*/ + You(i > 0 ? "%s‚ðƒŒƒp[ƒgƒŠ[‚ɉÁ‚¦‚½D" : "%s‚ðK“¾‚µ‚½D", splname); } makeknown((int) booktype); } @@ -455,12 +558,20 @@ register struct obj *spellbook; /* handle the sequence: start reading, get interrupted, have context.spbook.book become erased somehow, resume reading it */ && booktype != SPE_BLANK_PAPER) { +#if 0 /*JP*/ You("continue your efforts to %s.", (booktype == SPE_NOVEL) ? "read the novel" : "memorize the spell"); +#else + You("%s‚ðÄŠJ‚µ‚½D", + (booktype == SPE_NOVEL) ? "“Ǐ‘" : "–‚–@‚ÌŠwK"); +#endif } else { /* KMH -- Simplified this code */ if (booktype == SPE_BLANK_PAPER) { +/*JP pline("This spellbook is all blank."); +*/ + pline("‚±‚Ì–‚–@‘‚͐^‚Á”’‚¾D"); makeknown(booktype); return 1; } @@ -523,8 +634,13 @@ register struct obj *spellbook; if (Role_if(PM_WIZARD) && read_ability < 20 && !confused) { char qbuf[QBUFSZ]; Sprintf(qbuf, +#if 0 /*JP*/ "This spellbook is %sdifficult to comprehend. Continue?", (read_ability < 12 ? "very " : "")); +#else + "‚±‚Ì–‚–@‘‚ð—‰ð‚·‚é‚Ì‚Í%s¢“D‘±‚¯‚Ü‚·‚©H", + (read_ability < 12 ? "‚Æ‚Ä‚à" : "")); +#endif if (yn(qbuf) != 'y') { spellbook->in_use = FALSE; return 1; @@ -546,7 +662,10 @@ register struct obj *spellbook; context.spbook.delay = 0; if (gone || !rn2(3)) { if (!gone) +/*JP pline_The("spellbook crumbles to dust!"); +*/ + pline("–‚–@‘‚͐o‚Æ‚È‚Á‚½I"); if (!objects[spellbook->otyp].oc_name_known && !objects[spellbook->otyp].oc_uname) docall(spellbook); @@ -566,14 +685,22 @@ register struct obj *spellbook; } spellbook->in_use = FALSE; +#if 0 /*JP*/ You("begin to %s the runes.", spellbook->otyp == SPE_BOOK_OF_THE_DEAD ? "recite" : "memorize"); +#else + You("ƒ‹[ƒ“•¶Žš‚ð%s‚µ‚Í‚¶‚ß‚½D", + spellbook->otyp == SPE_BOOK_OF_THE_DEAD ? "ˆÃ¥" : "‹L‰¯"); +#endif } context.spbook.book = spellbook; if (context.spbook.book) context.spbook.o_id = context.spbook.book->o_id; +/*JP set_occupation(learn, "studying", 0); +*/ + set_occupation(learn, "Šw‚Ô", 0); return 1; } @@ -637,7 +764,10 @@ rejectcasting() * But why isn't lack of free arms (for gesturing) an issue when * poly'd hero has no limbs? */ +/*JP Your("arms are not free to cast!"); +*/ + pline("–‚–@‚ð¥‚¦‚悤‚É‚à˜r‚ÌŽ©—R‚ªŒø‚©‚È‚¢I"); return TRUE; } return FALSE; @@ -655,7 +785,10 @@ int *spell_no; char ilet, lets[BUFSZ], qbuf[QBUFSZ]; if (spellid(0) == NO_SPELL) { +/*JP You("don't know any spells right now."); +*/ + You("¡‚Ì‚Æ‚±‚뉽‚Ì–‚–@‚à’m‚ç‚È‚¢D"); return FALSE; } if (rejectcasting()) @@ -678,7 +811,10 @@ int *spell_no; Sprintf(lets, "a-zA-%c", 'A' + nspells - 27); for (;;) { +/*JP Sprintf(qbuf, "Cast which spell? [%s *?]", lets); +*/ + Sprintf(qbuf, "‚Ç‚Ì–‚–@‚ð¥‚¦‚éH[%s ?]", lets); ilet = yn_function(qbuf, (char *) 0, '\0'); if (ilet == '*' || ilet == '?') break; /* use menu mode */ @@ -687,14 +823,20 @@ int *spell_no; idx = spell_let_to_idx(ilet); if (idx < 0 || idx >= nspells) { +/*JP You("don't know that spell."); +*/ + You("‚»‚ñ‚È–‚–@‚Í’m‚ç‚È‚¢D"); continue; /* ask again */ } *spell_no = idx; return TRUE; } } +/*JP return dospellmenu("Choose which spell to cast", SPELLMENU_CAST, +*/ + return dospellmenu("‚Ç‚Ì–‚–@‚ð¥‚¦‚éH", SPELLMENU_CAST, spell_no); } @@ -715,19 +857,40 @@ int skill; { switch (skill) { case P_ATTACK_SPELL: +/*JP return "attack"; +*/ + return "UŒ‚"; case P_HEALING_SPELL: +/*JP return "healing"; +*/ + return "Ž¡–ü"; case P_DIVINATION_SPELL: +/*JP return "divination"; +*/ + return "—\’m"; case P_ENCHANTMENT_SPELL: +/*JP return "enchantment"; +*/ + return "•â•"; case P_CLERIC_SPELL: +/*JP return "clerical"; +*/ + return "‘m—µ"; case P_ESCAPE_SPELL: +/*JP return "escape"; +*/ + return "’Eo"; case P_MATTER_SPELL: +/*JP return "matter"; +*/ + return "•¨Ž¿"; default: impossible("Unknown spell skill, %d;", skill); return ""; @@ -786,28 +949,63 @@ cast_protection() const char *hgolden = hcolor(NH_GOLDEN), *atmosphere; if (u.uspellprot) { +/*JP pline_The("%s haze around you becomes more dense.", hgolden); +*/ + pline("‚ ‚È‚½‚Ì‚Ü‚í‚è‚Ì%s‰à‚ª”Z‚­‚È‚Á‚½D", hgolden); } else { rmtyp = levl[u.ux][u.uy].typ; atmosphere = u.uswallow ? ((u.ustuck->data == &mons[PM_FOG_CLOUD]) +/*JP ? "mist" +*/ + ? "–¶" : is_whirly(u.ustuck->data) +/*JP ? "maelstrom" +*/ + ? "‰Q" : is_animal(u.ustuck->data) +/*JP ? "maw" +*/ + ? "ˆÝ" +/*JP : "ooze") +*/ + : "‚˂΂˂Î") : (u.uinwater +/*JP ? "water" +*/ + ? "…" : (rmtyp == CLOUD) +/*JP ? "cloud" +*/ + ? "‰_" : IS_TREE(rmtyp) +/*JP ? "vegitation" +*/ + ? "–Ø" : IS_STWALL(rmtyp) +/*JP ? "stone" +*/ + ? "Î" +/*JP : "air"); +*/ + : "‹ó‹C"); +#if 0 /*JP*/ pline_The("%s around you begins to shimmer with %s haze.", atmosphere, an(hgolden)); +#else + pline("‚ ‚È‚½‚Ì‚Ü‚í‚è‚Ì%s‚ª%s–¶‚ŃLƒ‰ƒLƒ‰‚ÆŒõ‚è‚Í‚¶‚ß‚½D", + atmosphere, hgolden); +#endif } } u.uspellprot += gain; @@ -817,7 +1015,10 @@ cast_protection() u.usptime = u.uspmtime; find_ac(); } else { +/*JP Your("skin feels warm for a moment."); +*/ + Your("”§‚͈êuƒ|ƒJƒ|ƒJ‚µ‚½D"); } } @@ -892,38 +1093,71 @@ boolean atme; * decrement of spell knowledge is done every turn. */ if (spellknow(spell) <= 0) { +/*JP Your("knowledge of this spell is twisted."); +*/ + Your("‚±‚Ì–‚–@‚ÉŠÖ‚·‚é’mŽ¯‚͂悶‚ꂽD"); +/*JP pline("It invokes nightmarish images in your mind..."); +*/ + pline("‚»‚ê‚͈«–²‚ðS‚É•‚‚΂¹‚½DDD"); spell_backfire(spell); return 1; } else if (spellknow(spell) <= KEEN / 200) { /* 100 turns left */ +/*JP You("strain to recall the spell."); +*/ + You("–‚–@‚ðŽv‚¢‚¾‚·‚Ì‚É‹ê˜J‚µ‚½D"); } else if (spellknow(spell) <= KEEN / 40) { /* 500 turns left */ +/*JP You("have difficulty remembering the spell."); +*/ + You("Žô•¶‚ðŽv‚¢o‚·‚Ì‚ª“‚­‚È‚Á‚Ä‚«‚½D"); } else if (spellknow(spell) <= KEEN / 20) { /* 1000 turns left */ +/*JP Your("knowledge of this spell is growing faint."); +*/ + Your("‚±‚Ì–‚–@‚ÉŠÖ‚·‚é’mŽ¯‚ª‚¨‚Ú‚ë‚°‚É‚È‚Á‚Ä‚«‚½D"); } else if (spellknow(spell) <= KEEN / 10) { /* 2000 turns left */ +/*JP Your("recall of this spell is gradually fading."); +*/ + Your("‚±‚Ì–‚–@‚ÉŠÖ‚·‚é’mŽ¯‚ª™X‚É”–‚ê‚Ä‚«‚½D"); } energy = (spellev(spell) * 5); /* 5 <= energy <= 35 */ if (u.uhunger <= 10 && spellid(spell) != SPE_DETECT_FOOD) { +/*JP You("are too hungry to cast that spell."); +*/ + pline("• ‚ªŒ¸‚è‚·‚¬‚Ä–‚–@‚ð¥‚¦‚ç‚ê‚È‚¢D"); return 0; } else if (ACURR(A_STR) < 4 && spellid(spell) != SPE_RESTORE_ABILITY) { +/*JP You("lack the strength to cast spells."); +*/ + pline("‹­‚³‚ª­‚È‚·‚¬‚Ä–‚–@‚ð¥‚¦‚ç‚ê‚È‚¢D"); return 0; } else if (check_capacity( +/*JP "Your concentration falters while carrying so much stuff.")) { +*/ + "‚½‚­‚³‚ñ‚à‚Ì‚ðŽ‚¿‚·‚¬‚ďW’†‚Å‚«‚È‚¢D")){ return 1; } if (u.uhave.amulet) { +/*JP You_feel("the amulet draining your energy away."); +*/ + pline("–‚œ‚¯‚ª‚ ‚È‚½‚̃Gƒlƒ‹ƒM[‚ð‹z‚¢‚Æ‚Á‚Ä‚¢‚é‚悤‚È‹C‚ª‚µ‚½D"); energy += rnd(2 * energy); } if (energy > u.uen) { +/*JP You("don't have enough energy to cast that spell."); +*/ + pline("–‚–@‚ð¥‚¦‚邾‚¯‚̏\•ª‚ȃGƒlƒ‹ƒM[‚ª‚È‚¢D"); return 0; } else { if (spellid(spell) != SPE_DETECT_FOOD) { @@ -978,7 +1212,10 @@ boolean atme; chance = percent_success(spell); if (confused || (rnd(100) > chance)) { +/*JP You("fail to cast the spell correctly."); +*/ + You("–‚–@‚𐳂µ‚­¥‚¦‚邱‚Æ‚ª‚Å‚«‚È‚©‚Á‚½D"); u.uen -= energy / 2; context.botl = 1; return 1; @@ -1016,8 +1253,12 @@ boolean atme; if (!u.dx && !u.dy && !u.dz) { if ((damage = zapyourself(pseudo, TRUE)) != 0) { char buf[BUFSZ]; +#if 0 /*JP*/ Sprintf(buf, "zapped %sself with a spell", uhim()); +#else + Strcpy(buf, "Ž©•ªŽ©g‚Ì–‚–@‚𗁂тÄ"); +#endif losehp(damage, buf, NO_KILLER_PREFIX); } } else { @@ -1075,13 +1316,19 @@ boolean atme; * spelleffects() is organized means that aborting with * "nevermind" is not an option. */ +/*JP pline_The("magical energy is released!"); +*/ + pline("–‚–@‚̃Gƒlƒ‹ƒM[‚ª‰ð•ú‚³‚ꂽI"); } if (!u.dx && !u.dy && !u.dz) { if ((damage = zapyourself(pseudo, TRUE)) != 0) { char buf[BUFSZ]; +/*JP Sprintf(buf, "zapped %sself with a spell", uhim()); +*/ + Strcpy(buf, "Ž©•ªŽ©g‚Ì–‚–@‚𗁂тÄ"); if (physical_damage) damage = Maybe_Half_Phys(damage); losehp(damage, buf, NO_KILLER_PREFIX); @@ -1128,9 +1375,15 @@ boolean atme; break; case SPE_CURE_SICKNESS: if (Sick) +/*JP You("are no longer ill."); +*/ + Your("•a‹C‚Í’¼‚Á‚½D"); if (Slimed) +/*JP make_slimed(0L, "The slime disappears!"); +*/ + make_slimed(0L, "ƒXƒ‰ƒCƒ€‚͏Á‚¦‚½I"); healup(0, 0, TRUE, FALSE); break; case SPE_CREATE_FAMILIAR: @@ -1141,7 +1394,10 @@ boolean atme; do_vicinity_map(); /* at present, only one thing blocks clairvoyance */ else if (uarmh && uarmh->otyp == CORNUTHAUM) +/*JP You("sense a pointy hat on top of your %s.", body_part(HEAD)); +*/ + You("‚Æ‚ª‚Á‚½–XŽq‚ð%s‚̏ã‚É”­Œ©‚µ‚½D", body_part(HEAD)); break; case SPE_PROTECTION: cast_protection(); @@ -1171,24 +1427,42 @@ throwspell() struct monst *mtmp; if (u.uinwater) { +/*JP pline("You're joking! In this weather?"); +*/ + pline("…’†‚ʼn½‚ð‚µ‚æ‚¤‚Á‚Ä‚¢‚¤‚ñ‚¾‚¢H"); return 0; } else if (Is_waterlevel(&u.uz)) { +/*JP You("had better wait for the sun to come out."); +*/ + You("‘¾—z‚ªŒ»‚ê‚é‚Ü‚Å‘Ò‚Á‚½‚Ù‚¤‚ª‚æ‚¢‚¾‚낤D"); return 0; } +/*JP pline("Where do you want to cast the spell?"); +*/ + pline("‚Ç‚±‚ÉŒü‚©‚Á‚Ä–‚–@‚ð¥‚¦‚éH"); cc.x = u.ux; cc.y = u.uy; +/*JP if (getpos(&cc, TRUE, "the desired position") < 0) +*/ + if (getpos(&cc, TRUE, "–]‚݂̏ꏊ") < 0) return 0; /* user pressed ESC */ /* The number of moves from hero to where the spell drops.*/ if (distmin(u.ux, u.uy, cc.x, cc.y) > 10) { +/*JP pline_The("spell dissipates over the distance!"); +*/ + pline("‰“‚·‚¬‚éI"); return 0; } else if (u.uswallow) { +/*JP pline_The("spell is cut short!"); +*/ + pline("‚¾‚ß‚¾I‹ß‚·‚¬‚éI"); exercise(A_WIS, FALSE); /* What were you THINKING! */ u.dx = 0; u.dy = 0; @@ -1196,7 +1470,10 @@ throwspell() } else if ((!cansee(cc.x, cc.y) && (!(mtmp = m_at(cc.x, cc.y)) || !canspotmon(mtmp))) || IS_STWALL(levl[cc.x][cc.y].typ)) { +/*JP Your("mind fails to lock onto that location!"); +*/ + You("‚»‚±‚ÉŒü‚©‚Á‚ďW’†‚µ‚½‚ªŽ¸”s‚µ‚½I"); return 0; } @@ -1471,15 +1748,24 @@ dovspell() struct spell spl_tmp; if (spellid(0) == NO_SPELL) { +/*JP You("don't know any spells right now."); +*/ + You("–‚–@‚ð’m‚ç‚È‚¢D"); } else { +/*JP while (dospellmenu("Currently known spells", +*/ + while (dospellmenu("Œ»Ý’m‚Á‚Ä‚¢‚é–‚–@ˆê——", SPELLMENU_VIEW, &splnum)) { if (splnum == SPELLMENU_SORT) { if (spellsortmenu()) sortspells(); } else { +/*JP Sprintf(qbuf, "Reordering spells; swap '%c' with", +*/ + Sprintf(qbuf, "'%c'‚Æ•À‚Ñ•Ï‚¦‚é–‚–@‚́H", spellet(splnum)); if (!dospellmenu(qbuf, splnum, &othnum)) break; @@ -1523,11 +1809,18 @@ int *spell_no; * given string and are of the form "a - ". */ if (!iflags.menu_tab_sep) { +#if 0 /*JP*/ Sprintf(buf, "%-20s Level %-12s Fail Retention", " Name", "Category"); +#else + Sprintf(buf, "%-20s Level %-12s ¬Œ÷—¦", " Name", "•ª—Þ"); +#endif fmt = "%-20s %2d %-12s %3d%% %9s"; } else { +/*JP Sprintf(buf, "Name\tLevel\tCategory\tFail\tRetention"); +*/ + Sprintf(buf, "–¼‘O\tƒŒƒxƒ‹\t•ª—Þ\t¬Œ÷—¦"); fmt = "%s\t%-d\t%s\t%-d%%\t%s"; } add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings, buf, diff --git a/src/steal.c b/src/steal.c index 4b5378d..b3fa1c3 100644 --- a/src/steal.c +++ b/src/steal.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" STATIC_PTR int NDECL(stealarm); @@ -13,13 +18,25 @@ equipname(otmp) register struct obj *otmp; { return ((otmp == uarmu) +/*JP ? "shirt" +*/ + ? "ƒVƒƒƒc" : (otmp == uarmf) +/*JP ? "boots" +*/ + ? "ŒC" : (otmp == uarms) +/*JP ? "shield" +*/ + ? "‚" : (otmp == uarmg) +/*JP ? "gloves" +*/ + ? "¬Žè" : (otmp == uarmc) ? cloak_simple_name(otmp) : (otmp == uarmh) @@ -97,6 +114,7 @@ register struct monst *mtmp; obj_extract_self(fgold); add_to_minv(mtmp, fgold); newsym(u.ux, u.uy); +#if 0 /*JP*/ if (u.usteed) { who = u.usteed; whose = s_suffix(y_monnam(who)); @@ -114,6 +132,10 @@ register struct monst *mtmp; what += 5; pline("%s quickly snatches some gold from %s %s %s!", Monnam(mtmp), (Levitation || Flying) ? "beneath" : "between", whose, what); +#else /*JP:‘«‚ª–³‚­‚Ä‚àu‘«Œ³v‚ł悵‚Æ‚·‚é*/ + pline("%s‚Í‘f‘‚­‚ ‚È‚½‚Ì%s‚©‚ç‹à‚ð‚ЂÁ‚½‚­‚Á‚½I", Monnam(mtmp), + (Levitation || Flying) ? "‰º" : "‘«Œ³"); +#endif if (!ygold || !rn2(5)) { if (!tele_restrict(mtmp)) (void) rloc(mtmp, TRUE); @@ -130,7 +152,10 @@ register struct monst *mtmp; setnotworn(ygold); freeinv(ygold); add_to_minv(mtmp, ygold); +/*JP Your("purse feels lighter."); +*/ + Your("à•z‚ÍŒy‚­‚È‚Á‚½D"); if (!tele_restrict(mtmp)) (void) rloc(mtmp, TRUE); monflee(mtmp, 0, FALSE, FALSE); @@ -159,7 +184,10 @@ stealarm(VOID_ARGS) if (otmp->unpaid) subfrombill(otmp, shop_keeper(*u.ushops)); freeinv(otmp); +/*JP pline("%s steals %s!", Monnam(mtmp), doname(otmp)); +*/ + pline("%s‚Í%s‚𓐂ñ‚¾I", Monnam(mtmp), doname(otmp)); (void) mpickobj(mtmp, otmp); /* may free otmp */ /* Implies seduction, "you gladly hand over ..." so we don't set mavenge bit here. */ @@ -266,9 +294,15 @@ char *objnambuf; nothing_to_steal: /* Not even a thousand men in armor can strip a naked man. */ if (Blind) +/*JP pline("Somebody tries to rob you, but finds nothing to steal."); +*/ + pline("’N‚©‚ª‚ ‚È‚½‚©‚瓐‚à‚¤‚Æ‚µ‚½‚ªC“‚Þ‚à‚Ì‚ª‚È‚¢‚±‚Æ‚É‹C‚ª‚‚¢‚½D"); else +/*JP pline("%s tries to rob you, but there is nothing to steal!", +*/ + pline("%s‚Í‚ ‚È‚½‚©‚瓐‚à‚¤‚Æ‚µ‚½‚ªC“‚Þ‚à‚Ì‚ª‚È‚¢‚±‚Æ‚É‹C‚ª‚‚¢‚½I", Monnam(mtmp)); return 1; /* let her flee */ } @@ -345,6 +379,7 @@ gotobj: || (otmp == uleft && welded(uwep) && bimanual(uwep))); if (ostuck || can_carry(mtmp, otmp) == 0) { +#if 0 /*JP*/ static const char *const how[] = { "steal", "snatch", "grab", "take" }; cant_take: @@ -353,6 +388,12 @@ gotobj: (otmp->owornmask & W_ARMOR) ? "your " : "", (otmp->owornmask & W_ARMOR) ? equipname(otmp) : yname(otmp)); +#else + cant_take: + pline("%s‚Í%s‚ð“‚à‚¤‚Æ‚µ‚½‚ª’ú‚ß‚½D", Monnam(mtmp), + (otmp->owornmask & W_ARMOR) ? equipname(otmp) + : yname(otmp)); +#endif /* the fewer items you have, the less likely the thief is going to stick around to try again (0) instead of running away (1) */ @@ -403,6 +444,7 @@ gotobj: unmul((char *) 0); slowly = (armordelay >= 1 || multi < 0); if (flags.female) +#if 0 /*JP*/ pline("%s charms you. You gladly %s your %s.", !seen ? "She" : Monnam(mtmp), curssv ? "let her take" @@ -410,7 +452,17 @@ gotobj: : was_doffing ? "continue removing" : "start removing", equipname(otmp)); +#else + pline("%s‚Í‚ ‚È‚½‚ð–£—¹‚µ‚½D‚ ‚È‚½‚Í‚æ‚낱‚ñ‚Å%s‚ð%s‚½D", + !seen ? "”ޏ—" : Monnam(mtmp), + equipname(otmp), + curssv ? "‚Í‚¸‚µ‚Ä‚à‚ç‚Á" + : !slowly ? "‚Í‚¸‚µ‚ÄŽè“n‚µ" + : was_doffing ? "‚Í‚¸‚µ‘±‚¯" + : "‚Í‚¸‚µŽn‚ß"); +#endif else +#if 0 /*JP*/ pline("%s seduces you and %s off your %s.", !seen ? "She" : Adjmonnam(mtmp, "beautiful"), curssv @@ -419,6 +471,16 @@ gotobj: : was_doffing ? "you continue taking" : "you start taking", equipname(otmp)); +#else + pline("%s‚Í‚ ‚È‚½‚ð—U˜f‚µ‚½D‚ ‚È‚½‚Í%s‚ð%sD", + !seen ? "”ޏ—" : Adjmonnam(mtmp, "”ü‚µ‚¢"), + equipname(otmp), + curssv + ? "‚Í‚¸‚µ‚Ä‚à‚ç‚Á" + : !slowly ? "‚Í‚¸‚µ" + : was_doffing ? "‚Í‚¸‚µ‘±‚¯" + : "‚Í‚¸‚µŽn‚ß"); +#endif named++; /* the following is to set multi for later on */ nomul(-armordelay); @@ -456,7 +518,10 @@ gotobj: if (otmp->unpaid) subfrombill(otmp, shop_keeper(*u.ushops)); freeinv(otmp); +/*JP pline("%s stole %s.", named ? "She" : Monnam(mtmp), doname(otmp)); +*/ + pline("%s‚Í%s‚𓐂ñ‚¾D", named ? "”ޏ—" : Monnam(mtmp), doname(otmp)); could_petrify = (otmp->otyp == CORPSE && touch_petrifies(&mons[otmp->corpsenm])); (void) mpickobj(mtmp, otmp); /* may free otmp */ @@ -488,7 +553,10 @@ register struct obj *otmp; if (obj_sheds_light(otmp) && attacktype(mtmp->data, AT_ENGL)) { /* this is probably a burning object that you dropped or threw */ if (u.uswallow && mtmp == u.ustuck && !Blind) +/*JP pline("%s out.", Tobjnam(otmp, "go")); +*/ + pline("%s‚Í”ò‚Ñ‚¾‚µ‚½D", xname(otmp)); snuff_otmp = TRUE; } /* for hero owned object on shop floor, mtmp is taking possession @@ -549,7 +617,10 @@ struct monst *mtmp; /* mpickobj wont merge otmp because none of the above things to steal are mergable */ (void) mpickobj(mtmp, otmp); /* may merge and free otmp */ +/*JP pline("%s stole %s!", Monnam(mtmp), doname(otmp)); +*/ + pline("%s‚Í%s‚𓐂ñ‚¾I", Monnam(mtmp), doname(otmp)); if (can_teleport(mtmp->data) && !tele_restrict(mtmp)) (void) rloc(mtmp, TRUE); } @@ -630,8 +701,14 @@ boolean verbosely; } /* obj_no_longer_held(obj); -- done by place_object */ if (verbosely && cansee(omx, omy)) +/*JP pline("%s drops %s.", Monnam(mon), distant_name(obj, doname)); +*/ + pline("%s‚Í%s‚ð’u‚¢‚½D", Monnam(mon), distant_name(obj, doname)); +/*JP if (!flooreffects(obj, omx, omy, "fall")) { +*/ + if (!flooreffects(obj, omx, omy, "—Ž‚¿‚é")) { place_object(obj, omx, omy); stackobj(obj); } diff --git a/src/steed.c b/src/steed.c index 40ef107..a575ee0 100644 --- a/src/steed.c +++ b/src/steed.c @@ -2,6 +2,11 @@ /* Copyright (c) Kevin Hugo, 1998-1999. */ /* 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" /* Monsters that might be ridden */ @@ -16,7 +21,10 @@ STATIC_DCL void FDECL(maybewakesteed, (struct monst *)); void rider_cant_reach() { +/*JP You("aren't skilled enough to reach from %s.", y_monnam(u.usteed)); +*/ + You("‚Ü‚¾\•ª‚É‹Z—Ê‚ðÏ‚ñ‚Å‚¢‚È‚¢‚̂ŁC%s‚©‚ç“Í‚©‚È‚¢D", y_monnam(u.usteed)); } /*** Putting the saddle on ***/ @@ -51,42 +59,66 @@ struct obj *otmp; return 0; } if (!u.dx && !u.dy) { +/*JP pline("Saddle yourself? Very funny..."); +*/ + pline("Ž©•ªŽ©g‚ɈƁH‚¨‚à‚µ‚ë‚¢DDD"); return 0; } if (!isok(u.ux + u.dx, u.uy + u.dy) || !(mtmp = m_at(u.ux + u.dx, u.uy + u.dy)) || !canspotmon(mtmp)) { +/*JP pline("I see nobody there."); +*/ + pline("‚»‚±‚É‚Í’N‚à‚¢‚È‚¢‚悤‚ÉŒ©‚¦‚éD"); return 1; } /* Is this a valid monster? */ if (mtmp->misc_worn_check & W_SADDLE || which_armor(mtmp, W_SADDLE)) { +/*JP pline("%s doesn't need another one.", Monnam(mtmp)); +*/ + pline("%s‚Í‚à‚¤ˆÆ‚ªŽæ‚è‚‚¯‚ç‚ê‚Ä‚¢‚éD", Monnam(mtmp)); return 1; } ptr = mtmp->data; if (touch_petrifies(ptr) && !uarmg && !Stone_resistance) { char kbuf[BUFSZ]; +/*JP You("touch %s.", mon_nam(mtmp)); +*/ + You("%s‚ɐG‚ꂽD", mon_nam(mtmp)); if (!(poly_when_stoned(youmonst.data) && polymon(PM_STONE_GOLEM))) { +/*JP Sprintf(kbuf, "attempting to saddle %s", an(mtmp->data->mname)); +*/ + Sprintf(kbuf, "%s‚ɈƂðŽæ‚è‚‚¯‚悤‚Æ‚µ‚Ä", mtmp->data->mname); instapetrify(kbuf); } } if (ptr == &mons[PM_INCUBUS] || ptr == &mons[PM_SUCCUBUS]) { +/*JP pline("Shame on you!"); +*/ + pline("’p‚ð’m‚êI"); exercise(A_WIS, FALSE); return 1; } if (mtmp->isminion || mtmp->isshk || mtmp->ispriest || mtmp->isgd || mtmp->iswiz) { +/*JP pline("I think %s would mind.", mon_nam(mtmp)); +*/ + pline("%s‚ÍŒ™‚ª‚Á‚Ä‚¢‚é‚悤‚¾D", mon_nam(mtmp)); return 1; } if (!can_saddle(mtmp)) { +/*JP You_cant("saddle such a creature."); +*/ + You("‚»‚̐¶‚«•¨‚ɈƂ͂Ƃè‚‚¯‚ç‚ê‚È‚¢D"); return 1; } @@ -115,11 +147,17 @@ struct obj *otmp; if (Confusion || Fumbling || Glib) chance -= 20; else if (uarmg && (s = OBJ_DESCR(objects[uarmg->otyp])) != (char *) 0 +/*JP && !strncmp(s, "riding ", 7)) +*/ + && !strncmp(s, "æ”n—p‚Ì", 8)) /* Bonus for wearing "riding" (but not fumbling) gloves */ chance += 10; else if (uarmf && (s = OBJ_DESCR(objects[uarmf->otyp])) != (char *) 0 +/*JP && !strncmp(s, "riding ", 7)) +*/ + && !strncmp(s, "æ”n—p‚Ì", 8)) /* ... or for "riding boots" */ chance += 10; if (otmp->cursed) @@ -130,7 +168,10 @@ struct obj *otmp; /* Make the attempt */ if (rn2(100) < chance) { +/*JP You("put the saddle on %s.", mon_nam(mtmp)); +*/ + You("ˆÆ‚ð%s‚ÉŽæ‚è‚‚¯‚½D", mon_nam(mtmp)); if (otmp->owornmask) remove_worn_item(otmp, FALSE); freeinv(otmp); @@ -142,7 +183,10 @@ struct obj *otmp; otmp->leashmon = mtmp->m_id; update_mon_intrinsics(mtmp, otmp, TRUE, FALSE); } else +/*JP pline("%s resists!", Monnam(mtmp)); +*/ + pline("%s‚Í‹‘”Û‚µ‚½I", Monnam(mtmp)); return 1; } @@ -166,7 +210,10 @@ doride() if (u.usteed) { dismount_steed(DISMOUNT_BYCHOICE); } else if (getdir((char *) 0) && isok(u.ux + u.dx, u.uy + u.dy)) { +/*JP if (wizard && yn("Force the mount to succeed?") == 'y') +*/ + if (wizard && yn("–³—–¬Œ÷‚³‚¹‚Ü‚·‚©H") == 'y') forcemount = TRUE; return (mount_steed(m_at(u.ux + u.dx, u.uy + u.dy), forcemount)); } else { @@ -187,13 +234,20 @@ boolean force; /* Quietly force this animal */ /* Sanity checks */ if (u.usteed) { +/*JP You("are already riding %s.", mon_nam(u.usteed)); +*/ + You("‚à‚¤%s‚ɏæ‚Á‚Ä‚¢‚éD", mon_nam(u.usteed)); return (FALSE); } /* Is the player in the right form? */ if (Hallucination && !force) { +#if 0 /*JP*/ pline("Maybe you should find a designated driver."); +#else + pline("‚¨‚»‚ç‚­‚ ‚È‚½‚ÍŽw’èƒhƒ‰ƒCƒo[‚ð’T‚·‚ׂ«‚¾‚낤D"); +#endif return (FALSE); } /* While riding Wounded_legs refers to the steed's, @@ -210,7 +264,10 @@ boolean force; /* Quietly force this animal */ * temporary 1 point Dex loss become permanent.] */ if (Wounded_legs) { +/*JP Your("%s are in no shape for riding.", makeplural(body_part(LEG))); +*/ + pline("%s‚ð‰ö‰ä‚µ‚Ä‚¢‚é‚̂ŏæ‚ê‚È‚¢D", makeplural(body_part(LEG))); if (force && wizard && yn("Heal your legs?") == 'y') HWounded_legs = EWounded_legs = 0; else @@ -219,11 +276,17 @@ boolean force; /* Quietly force this animal */ if (Upolyd && (!humanoid(youmonst.data) || verysmall(youmonst.data) || bigmonst(youmonst.data) || slithy(youmonst.data))) { +/*JP You("won't fit on a saddle."); +*/ + You("ˆÆ‚ɍ‡‚í‚È‚¢D"); return (FALSE); } if (!force && (near_capacity() > SLT_ENCUMBER)) { +/*JP You_cant("do that while carrying so much stuff."); +*/ + You("‘òŽR•¨‚ðŽ‚¿‚·‚¬‚Ä‚¨‚èo—ˆ‚È‚¢D"); return (FALSE); } @@ -231,84 +294,138 @@ boolean force; /* Quietly force this animal */ if (!mtmp || (!force && ((Blind && !Blind_telepat) || mtmp->mundetected || mtmp->m_ap_type == M_AP_FURNITURE || mtmp->m_ap_type == M_AP_OBJECT))) { +/*JP pline("I see nobody there."); +*/ + pline("‚»‚±‚ɂ͉½‚àŒ©‚¦‚È‚¢D"); return (FALSE); } if (u.uswallow || u.ustuck || u.utrap || Punished || !test_move(u.ux, u.uy, mtmp->mx - u.ux, mtmp->my - u.uy, TEST_MOVE)) { if (Punished || !(u.uswallow || u.ustuck || u.utrap)) +/*JP You("are unable to swing your %s over.", body_part(LEG)); +*/ + You("ˆÆ‚ð‚Ü‚½‚®‚±‚Æ‚ª‚Å‚«‚È‚¢D"); else +/*JP You("are stuck here for now."); +*/ + You("‚Í‚Ü‚Á‚Ä‚¢‚é‚̂ŏo—ˆ‚È‚¢D"); return (FALSE); } /* Is this a valid monster? */ otmp = which_armor(mtmp, W_SADDLE); if (!otmp) { +/*JP pline("%s is not saddled.", Monnam(mtmp)); +*/ + pline("%s‚ɂ͈ƂªŽæ‚è‚‚¯‚ç‚ê‚Ä‚¢‚È‚¢D", Monnam(mtmp)); return (FALSE); } ptr = mtmp->data; if (touch_petrifies(ptr) && !Stone_resistance) { char kbuf[BUFSZ]; +/*JP You("touch %s.", mon_nam(mtmp)); +*/ + You("%s‚ɐG‚ꂽD", mon_nam(mtmp)); +/*JP Sprintf(kbuf, "attempting to ride %s", an(mtmp->data->mname)); +*/ + Sprintf(kbuf, "%s‚ɏæ‚낤‚Æ‚µ‚Ä", a_monnam(mtmp)); instapetrify(kbuf); } if (!mtmp->mtame || mtmp->isminion) { +/*JP pline("I think %s would mind.", mon_nam(mtmp)); +*/ + pline("%s‚ÍŒ™‚ª‚Á‚Ä‚¢‚é‚悤‚¾D", mon_nam(mtmp)); return (FALSE); } if (mtmp->mtrapped) { struct trap *t = t_at(mtmp->mx, mtmp->my); +#if 0 /*JP*/ You_cant("mount %s while %s's trapped in %s.", mon_nam(mtmp), mhe(mtmp), an(defsyms[trap_to_defsym(t->ttyp)].explanation)); +#else + You("%s‚É•ß‚Ü‚Á‚Ä‚¢‚é%s‚ɂ͏æ‚ê‚È‚¢D", + defsyms[trap_to_defsym(t->ttyp)].explanation, mon_nam(mtmp)); +#endif return (FALSE); } if (!force && !Role_if(PM_KNIGHT) && !(--mtmp->mtame)) { /* no longer tame */ newsym(mtmp->mx, mtmp->my); +#if 0 /*JP*/ pline("%s resists%s!", Monnam(mtmp), mtmp->mleashed ? " and its leash comes off" : ""); +#else + pline("%s‚Í‹‘”Û%sI", Monnam(mtmp), + mtmp->mleashed ? "‚µ‚āC•R‚ð‚Í‚¸‚µ‚½" : "‚µ‚½"); +#endif if (mtmp->mleashed) m_unleash(mtmp, FALSE); return (FALSE); } if (!force && Underwater && !is_swimmer(ptr)) { +/*JP You_cant("ride that creature while under water."); +*/ + You("…’†‚ŏæ‚邱‚Æ‚Í‚Å‚«‚È‚¢D"); return (FALSE); } if (!can_saddle(mtmp) || !can_ride(mtmp)) { +/*JP You_cant("ride such a creature."); +*/ + You("‚»‚̐¶‚«•¨‚ɏæ‚邱‚Æ‚Í‚Å‚«‚È‚¢D"); return (0); } /* Is the player impaired? */ if (!force && !is_floater(ptr) && !is_flyer(ptr) && Levitation && !Lev_at_will) { +/*JP You("cannot reach %s.", mon_nam(mtmp)); +*/ + You("%s‚É“Í‚©‚È‚¢D", mon_nam(mtmp)); return (FALSE); } if (!force && uarm && is_metallic(uarm) && greatest_erosion(uarm)) { +#if 0 /*JP*/ Your("%s armor is too stiff to be able to mount %s.", uarm->oeroded ? "rusty" : "corroded", mon_nam(mtmp)); +#else + Your("%sŠZ‚̓MƒVƒMƒV‚¢‚Á‚Ä‚¨‚è%s‚ɏæ‚ê‚È‚¢D", + uarm->oeroded ? "ŽK‚Ñ‚½" : "•…H‚µ‚½", mon_nam(mtmp)); +#endif return (FALSE); } if (!force && (Confusion || Fumbling || Glib || Wounded_legs || otmp->cursed || (u.ulevel + mtmp->mtame < rnd(MAXULEV / 2 + 5)))) { if (Levitation) { +/*JP pline("%s slips away from you.", Monnam(mtmp)); +*/ + pline("%s‚Í‚ ‚È‚½‚©‚ç‚Í‚È‚ê‚Ä‚¢‚Á‚½D", Monnam(mtmp)); return FALSE; } +/*JP You("slip while trying to get on %s.", mon_nam(mtmp)); +*/ + You("%s‚ɏæ‚낤‚Æ‚µ‚Ä‚·‚ׂÁ‚½D", mon_nam(mtmp)); +/*JP Sprintf(buf, "slipped while mounting %s", +*/ + Sprintf(buf, "%s‚ɏæ‚낤‚Æ‚µ‚Ä‚·‚ׂ藎‚¿‚Ä", /* "a saddled mumak" or "a saddled pony called Dobbin" */ x_monnam(mtmp, ARTICLE_A, (char *) 0, SUPPRESS_IT | SUPPRESS_INVISIBLE @@ -323,8 +440,14 @@ boolean force; /* Quietly force this animal */ if (!force) { if (Levitation && !is_floater(ptr) && !is_flyer(ptr)) /* Must have Lev_at_will at this point */ +/*JP pline("%s magically floats up!", Monnam(mtmp)); +*/ + pline("%s‚Í–‚–@‚Ì—Í‚Å•‚‚¢‚½I", Monnam(mtmp)); +/*JP You("mount %s.", mon_nam(mtmp)); +*/ + You("%s‚ɏæ‚Á‚½D", mon_nam(mtmp)); } /* setuwep handles polearms differently when you're mounted */ if (uwep && is_pole(uwep)) @@ -357,8 +480,8 @@ kick_steed() #if 0 /*JP*/ char He[4]; #else - /* role.c Gender.he ‚Ì’l‚ªƒRƒs[‚³‚ê‚é */ - char He[16]; + /* role.c Gender.he ‚Ì’l‚ªƒRƒs[‚³‚ê‚é */ + char He[16]; #endif if (!u.usteed) return; @@ -380,11 +503,23 @@ kick_steed() u.usteed->mcanmove = 1; } if (u.usteed->msleeping || !u.usteed->mcanmove) +#if 0 /*JP*/ pline("%s stirs.", He); +#else + pline("%s‚͐g‚¶‚났‚µ‚½D", He); +#endif else +#if 0 /*JP*/ pline("%s rouses %sself!", He, mhim(u.usteed)); +#else + pline("%s‚Í•±‹N‚µ‚½I", He); +#endif } else +#if 0 /*JP*/ pline("%s does not respond.", He); +#else + pline("%s‚Í”½‰ž‚µ‚È‚¢D", He); +#endif return; } @@ -400,7 +535,10 @@ kick_steed() return; } +/*JP pline("%s gallops!", Monnam(u.usteed)); +*/ + pline("%s‚Í‘¬‘«‚É‚È‚Á‚½I", Monnam(u.usteed)); u.ugallop += rn1(20, 30); return; } @@ -464,7 +602,10 @@ int reason; /* Player was thrown off etc. */ struct monst *mtmp; struct obj *otmp; coord cc; +/*JP const char *verb = "fall"; +*/ + const char *verb = "—Ž‚¿‚½"; boolean repair_leg_damage = (Wounded_legs != 0L); unsigned save_utrap = u.utrap; boolean have_spot = landing_spot(&cc, reason, 0); @@ -478,17 +619,29 @@ int reason; /* Player was thrown off etc. */ otmp = which_armor(mtmp, W_SADDLE); switch (reason) { case DISMOUNT_THROWN: +/*JP verb = "are thrown"; +*/ + verb = "‚Ó‚è—Ž‚³‚ꂽ"; case DISMOUNT_FELL: +/*JP You("%s off of %s!", verb, mon_nam(mtmp)); +*/ + You("%s‚©‚ç%sI", mon_nam(mtmp), verb); if (!have_spot) have_spot = landing_spot(&cc, reason, 1); +/*JP losehp(Maybe_Half_Phys(rn1(10, 10)), "riding accident", KILLED_BY_AN); +*/ + losehp(Maybe_Half_Phys(rn1(10, 10)), "‹RæŽ–ŒÌ‚Å", KILLED_BY_AN); set_wounded_legs(BOTH_SIDES, (int) HWounded_legs + rn1(5, 5)); repair_leg_damage = FALSE; break; case DISMOUNT_POLY: +/*JP You("can no longer ride %s.", mon_nam(u.usteed)); +*/ + You("%s‚ɏæ‚Á‚Ä‚ç‚ê‚È‚¢D", mon_nam(u.usteed)); if (!have_spot) have_spot = landing_spot(&cc, reason, 1); break; @@ -504,22 +657,39 @@ int reason; /* Player was thrown off etc. */ case DISMOUNT_BYCHOICE: default: if (otmp && otmp->cursed) { +#if 0 /*JP*/ You("can't. The saddle %s cursed.", otmp->bknown ? "is" : "seems to be"); +#else + You("~‚è‚ç‚ê‚È‚¢DˆÆ‚ÍŽô‚í‚ê‚Ä‚¢‚é%sD", + otmp->bknown ? "" : "‚悤‚¾"); +#endif otmp->bknown = TRUE; return; } if (!have_spot) { +/*JP You("can't. There isn't anywhere for you to stand."); +*/ + pline("‚ ‚È‚½‚Ì—§‚ꏊ‚ª‚È‚¢‚̂ō~‚è‚ç‚ê‚È‚¢D"); return; } if (!has_mname(mtmp)) { +/*JP pline("You've been through the dungeon on %s with no name.", +*/ + pline("‚ ‚È‚½‚Í–¼‘O‚Ì‚È‚¢%s‚Æ‹¤‚É–À‹{“à‚É‚¢‚éD", an(mtmp->data->mname)); if (Hallucination) +/*JP pline("It felt good to get out of the rain."); +*/ + pline("‰J‚ª~‚ç‚È‚¢‚Ì‚Æ‚¢‚¤‚Ì‚Í‚¢‚¢‹C•ª‚¾‚Á‚½D"); } else +/*JP You("dismount %s.", mon_nam(mtmp)); +*/ + You("%s‚©‚ç~‚肽D", mon_nam(mtmp)); } /* While riding, Wounded_legs refers to the steed's legs; after dismounting, it reverts to the hero's legs. */ @@ -553,14 +723,20 @@ int reason; /* Player was thrown off etc. */ if (!is_flyer(mdat) && !is_floater(mdat) && !is_clinger(mdat)) { if (is_pool(u.ux, u.uy)) { if (!Underwater) +/*JP pline("%s falls into the %s!", Monnam(mtmp), +*/ + pline("%s‚Í%s‚É—Ž‚¿‚½I", Monnam(mtmp), surface(u.ux, u.uy)); if (!is_swimmer(mdat) && !amphibious(mdat)) { killed(mtmp); adjalign(-1); } } else if (is_lava(u.ux, u.uy)) { +/*JP pline("%s is pulled into the lava!", Monnam(mtmp)); +*/ + pline("%s‚Í—nŠâ‚Ì’†‚ɂЂÁ‚Ï‚ç‚ꂽI", Monnam(mtmp)); if (!likes_lava(mdat)) { killed(mtmp); adjalign(-1); diff --git a/src/teleport.c b/src/teleport.c index 5faf013..9a9631c 100644 --- a/src/teleport.c +++ b/src/teleport.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" STATIC_DCL boolean FDECL(tele_jump_ok, (int, int, int, int)); @@ -399,7 +404,10 @@ boolean force_it; yelp(mtmp); return FALSE; } else { +/*JP Your("leash goes slack."); +*/ + Your("•R‚Í‚½‚é‚ñ‚¾D"); release_it: m_unleash(mtmp, FALSE); return TRUE; @@ -429,7 +437,10 @@ struct obj *scroll; /* Disable teleportation in stronghold && Vlad's Tower */ if (level.flags.noteleport) { if (!wizard) { +/*JP pline("A mysterious force prevents you from teleporting!"); +*/ + pline("Šï–­‚È—Í‚ªuŠÔˆÚ“®‚ð–h‚¢‚¾I"); return TRUE; } } @@ -439,23 +450,36 @@ struct obj *scroll; make_blinded(0L, FALSE); if ((u.uhave.amulet || On_W_tower_level(&u.uz)) && !rn2(3)) { +/*JP You_feel("disoriented for a moment."); +*/ + You("ˆêu•ûŒüŠ´Šo‚ðŽ¸‚Á‚½‚悤‚È‹C‚ª‚µ‚½D"); if (!wizard || yn("Override?") != 'y') return FALSE; } if ((Teleport_control && !Stunned) || wizard) { if (unconscious()) { +/*JP pline("Being unconscious, you cannot control your teleport."); +*/ + pline("ˆÓŽ¯‚ª‚È‚¢‚̂ŁC‚ ‚È‚½‚͏uŠÔˆÚ“®‚𐧌ä‚Å‚«‚È‚¢D"); } else { +#if 0 /*JP*//*ŽåŒê‚ðÈ—ª‚µ‚ÄŠÈ—ª‰»*/ char whobuf[BUFSZ]; Strcpy(whobuf, "you"); if (u.usteed) Sprintf(eos(whobuf), " and %s", mon_nam(u.usteed)); pline("To what position do %s want to be teleported?", whobuf); +#else + pline("‚ǂ̈ʒu‚ɏuŠÔˆÚ“®‚µ‚Ü‚·‚©H"); +#endif cc.x = u.ux; cc.y = u.uy; +/*JP if (getpos(&cc, TRUE, "the desired position") < 0) +*/ + if (getpos(&cc, TRUE, "ˆÚ“®‚µ‚½‚¢êŠ") < 0) return TRUE; /* abort */ /* possible extensions: introduce a small error if magic power is low; allow transfer to solid rock */ @@ -466,7 +490,10 @@ struct obj *scroll; teleds(cc.x, cc.y, FALSE); return TRUE; } +/*JP pline("Sorry..."); +*/ + pline("‚¨‚Á‚ƁDDD"); result = TRUE; } } else if (scroll && scroll->blessed) { @@ -499,8 +526,14 @@ dotele() if (trap) { trap_once = trap->once; /* trap may get deleted, save this */ if (trap->once) { +/*JP pline("This is a vault teleport, usable once only."); +*/ + pline("ˆê“x‚©‚¬‚è‚Ì‘qŒÉ‚ւ̏uŠÔˆÚ“®‚Ì㩂¾D"); +/*JP if (yn("Jump in?") == 'n') +*/ + if (yn("”ò‚эž‚ށH") == 'n') trap = 0; else { deltrap(trap); @@ -508,8 +541,12 @@ dotele() } } if (trap) +#if 0 /*JP*/ You("%s onto the teleportation trap.", locomotion(youmonst.data, "jump")); +#else + You("uŠÔˆÚ“®‚Ì㩂ɔò‚Ñ‚±‚ñ‚¾D"); +#endif } if (!trap) { boolean castit = FALSE; @@ -527,9 +564,15 @@ dotele() if (!wizard) { if (!castit) { if (!Teleportation) +/*JP You("don't know that spell."); +*/ + You("‚»‚ñ‚È–‚–@‚Í’m‚ç‚È‚¢D"); else +/*JP You("are not able to teleport at will."); +*/ + You("Ž©•ª‚̈ӎv‚ŏuŠÔˆÚ“®‚Å‚«‚È‚¢D"); return 0; } } @@ -537,8 +580,13 @@ dotele() if (u.uhunger <= 100 || ACURR(A_STR) < 6) { if (!wizard) { +#if 0 /*JP*/ You("lack the strength %s.", castit ? "for a teleport spell" : "to teleport"); +#else + You("%s‚¾‚¯‚Ì—Í‚ª‚È‚¢D", + castit ? "uŠÔˆÚ“®‚Ì–‚–@‚ð¥‚¦‚é" : "uŠÔˆÚ“®‚·‚é"); +#endif return 1; } } @@ -548,14 +596,22 @@ dotele() if (wizard) energy = u.uen; else { +#if 0 /*JP*/ You("lack the energy %s.", castit ? "for a teleport spell" : "to teleport"); +#else + You("%s‚¾‚¯‚̃Gƒlƒ‹ƒM[‚ª‚È‚¢D", + castit ? "uŠÔˆÚ“®‚Ì–‚–@‚ð¥‚¦‚é" : "uŠÔˆÚ“®‚·‚é"); +#endif return 1; } } if (check_capacity( +/*JP "Your concentration falters from carrying so much.")) +*/ + "‘òŽR‚à‚Ì‚ðŽ‚¿‚·‚¬‚ďW’†‚Å‚«‚È‚¢D")) return 1; if (castit) { @@ -596,32 +652,47 @@ level_tele() if ((u.uhave.amulet || In_endgame(&u.uz) || In_sokoban(&u.uz)) && !wizard) { +/*JP You_feel("very disoriented for a moment."); +*/ + You("ˆêu•ûŒüŠ´Šo‚ð‘å‚«‚­Ž¸‚Á‚½‚悤‚È‹C‚ª‚µ‚½D"); return; } if ((Teleport_control && !Stunned) || wizard) { char qbuf[BUFSZ]; int trycnt = 0; +/*JP Strcpy(qbuf, "To what level do you want to teleport?"); +*/ + Strcpy(qbuf, "‰½ŠK‚Ɉړ®‚µ‚Ü‚·‚©H"); do { if (++trycnt == 2) { if (wizard) Strcat(qbuf, " [type a number or ? for a menu]"); else +/*JP Strcat(qbuf, " [type a number]"); +*/ + Strcat(qbuf, " [”Žš‚ð‚¢‚ê‚Ä‚Ë]"); } getlin(qbuf, buf); if (!strcmp(buf, "\033")) { /* cancelled */ if (Confusion && rnl(5)) { +/*JP pline("Oops..."); +*/ + pline("‚¨‚Á‚ƁDDD"); goto random_levtport; } return; } else if (!strcmp(buf, "*")) { goto random_levtport; } else if (Confusion && rnl(5)) { +/*JP pline("Oops..."); +*/ + pline("‚¨‚Á‚ƁDDD"); goto random_levtport; } if (wizard && !strcmp(buf, "?")) { @@ -657,21 +728,46 @@ level_tele() if (newlev == 0) { if (trycnt >= 10) goto random_levtport; +/*JP if (ynq("Go to Nowhere. Are you sure?") != 'y') +*/ + if (ynq("‚Ç‚±‚Æ‚à’m‚ê‚ʏꏊ‚ɍs‚«‚Ü‚·H‚æ‚낵‚¢‚Å‚·‚©H") != 'y') return; +#if 0 /*JP*/ You("%s in agony as your body begins to warp...", is_silent(youmonst.data) ? "writhe" : "scream"); +#else + You("‘Ì‚ªˆÚ“®‚µ‚Í‚¶‚ß‚é‚ƁC‹ê‚µ‚Ý%sDDD", + is_silent(youmonst.data) ? "‚Őg‚à‚¾‚¦‚µ‚½" : "‚Ì‚ ‚¦‚¬º‚ðo‚µ‚½"); +#endif display_nhwindow(WIN_MESSAGE, FALSE); +/*JP You("cease to exist."); +*/ + Your("‘¶Ý‚͏Á–Å‚µ‚½D"); if (invent) +/*JP Your("possessions land on the %s with a thud.", +*/ + Your("Ž‚¿‚à‚̂̓hƒTƒb‚Æ%s‚É—Ž‚¿‚½D", surface(u.ux, u.uy)); killer.format = NO_KILLER_PREFIX; +/*JP Strcpy(killer.name, "committed suicide"); +*/ + Strcpy(killer.name, "Ž©ŽE‚µ‚½"); done(DIED); +/*JP pline("An energized cloud of dust begins to coalesce."); +*/ + pline("ƒGƒlƒ‹ƒM[‚ð‚à‚Á‚½‚Ù‚±‚è‚̉Q‚ªŒ‹‡‚µ‚Í‚¶‚ß‚½D"); +#if 0 /*JP*/ Your("body rematerializes%s.", invent ? ", and you gather up all your possessions" : ""); +#else + Your("‘͍̂ĂюÀ‘̉»‚µ‚½D%s", + invent ? "‚»‚µ‚Ä‘S‚Ä‚ÌŽ‚¿•¨‚ðE‚¢ã‚°‚½D" : ""); +#endif return; } @@ -712,7 +808,10 @@ level_tele() int llimit = dunlevs_in_dungeon(&u.uz); if (newlev >= 0 || newlev <= -llimit) { +/*JP You_cant("get there from here."); +*/ + You("‚»‚±‚ɂ͍s‚¯‚È‚¢D"); return; } newlevel.dnum = u.uz.dnum; @@ -733,30 +832,65 @@ level_tele() in_mklev = FALSE; } if (newlev <= -10) { +/*JP You("arrive in heaven."); +*/ + You("“V‘‚É’H‚è‚‚¢‚½D"); +/*JP verbalize("Thou art early, but we'll admit thee."); +*/ + verbalize("“ðCŽ€‚Ê‚É‚Í‘‚·‚¬‚邪‚»‚ê‚à‚æ‚©‚낤D"); killer.format = NO_KILLER_PREFIX; +/*JP Strcpy(killer.name, "went to heaven prematurely"); +*/ + Strcpy(killer.name, "Žá‚­‚µ‚Ä“V‘‚ɍs‚Á‚½"); } else if (newlev == -9) { +/*JP You_feel("deliriously happy. "); +*/ + You("‹¶‚Á‚½‚悤‚ȍK‚¹‚ðŠ´‚¶‚½D"); +/*JP pline("(In fact, you're on Cloud 9!) "); +*/ + pline("(–{“–‚É‹ê‚ðæ‚è‰z‚¦‚½êŠ‚É‚¢‚éI) "); display_nhwindow(WIN_MESSAGE, FALSE); } else +/*JP You("are now high above the clouds..."); +*/ + You("‰_‚Ì—y‚©ã‚É‚¢‚éDDD"); if (killer.name[0]) { ; /* arrival in heaven is pending */ } else if (Levitation) { +/*JP escape_by_flying = "float gently down to earth"; +*/ + escape_by_flying = "‚ä‚Á‚­‚è’n–ʂɍ~‚肽D"; } else if (Flying) { +/*JP escape_by_flying = "fly down to the ground"; +*/ + escape_by_flying = "‚ä‚Á‚­‚è’n–ʂɍ~‚肽D"; } else { +/*JP pline("Unfortunately, you don't know how to fly."); +*/ + pline("Žc”O‚È‚ª‚çC‚ ‚È‚½‚Í”ò‚Ñ‚©‚½‚ð’m‚ç‚È‚¢D"); +/*JP You("plummet a few thousand feet to your death."); +*/ + pline("”çƒtƒB[ƒg‚ÌŽ€‚̃_ƒCƒrƒ“ƒO‚¾I"); +#if 0 /*JP*/ Sprintf(killer.name, "teleported out of the dungeon and fell to %s death", uhis()); killer.format = NO_KILLER_PREFIX; +#else + Strcpy(killer.name, "–À‹{‚ð”ò‚Ñ‚¾‚µƒ_ƒCƒrƒ“ƒO‚µ‚Ä"); + killer.format = KILLED_BY; +#endif } } @@ -770,13 +904,19 @@ level_tele() done(DIED); /* can only get here via life-saving (or declining to die in explore|debug mode); the hero has now left the dungeon... */ +/*JP escape_by_flying = "find yourself back on the surface"; +*/ + escape_by_flying = "‹C‚ª‚‚¢‚½‚ç’nã‚É–ß‚Á‚Ä‚¢‚½"; u.uz = lsav; /* restore u.uz so escape code works */ } /* calls done(ESCAPED) if newlevel==0 */ if (escape_by_flying) { +/*JP You("%s.", escape_by_flying); +*/ + You("%sD", escape_by_flying); newlevel.dnum = 0; /* specify main dungeon */ newlevel.dlevel = 0; /* escape the dungeon */ /* [dlevel used to be set to 1, but it doesn't make sense to @@ -796,7 +936,10 @@ level_tele() + dunlevs_in_dungeon(&u.uz) - 1)) { newlev = dungeons[u.uz.dnum].depth_start + dunlevs_in_dungeon(&u.uz) - 2; +/*JP pline("Sorry..."); +*/ + pline("‚¨‚Á‚ƁDDD"); } /* no teleporting out of quest dungeon */ if (In_quest(&u.uz) && newlev < depth(&qstart_level)) @@ -834,20 +977,29 @@ register struct trap *ttmp; if (!on_level(&u.uz, &u.uz0)) return; +/*JP You("activated a magic portal!"); +*/ + pline("–‚–@‚Ì“üŒû‚ªì“®‚µ‚½I"); /* prevent the poor shnook, whose amulet was stolen while in * the endgame, from accidently triggering the portal to the * next level, and thus losing the game */ if (In_endgame(&u.uz) && !u.uhave.amulet) { +/*JP You_feel("dizzy for a moment, but nothing happens..."); +*/ + You("ˆêu‚ß‚Ü‚¢‚ðŠ´‚¶‚½C‚µ‚©‚µ‰½‚à‹N‚«‚È‚©‚Á‚½DDD"); return; } target_level = ttmp->dst; schedule_goto(&target_level, FALSE, FALSE, 1, +/*JP "You feel dizzy for a moment, but the sensation passes.", +*/ + "ˆêu‚ß‚Ü‚¢‚ðŠ´‚¶‚½C‚µ‚©‚µ‚»‚ÌŠ´Šo‚͏Á‚¦‚½D", (char *) 0); } @@ -858,7 +1010,10 @@ struct trap *trap; if (In_endgame(&u.uz) || Antimagic) { if (Antimagic) shieldeff(u.ux, u.uy); +/*JP You_feel("a wrenching sensation."); +*/ + You("‚Ë‚¶‚ç‚ꂽ‚悤‚ÈŠ´Šo‚ðŠ´‚¶‚½D"); } else if (!next_to_u()) { You1(shudder_for_moment); } else if (trap->once) { @@ -873,20 +1028,35 @@ void level_tele_trap(trap) struct trap *trap; { +#if 0 /*JP*/ You("%s onto a level teleport trap!", Levitation ? (const char *) "float" : locomotion(youmonst.data, "step")); +#else + You("•Ê‚ÌŠK‚ւ̏uŠÔˆÚ“®‚Ì㩂ð%sI", + Levitation ? (const char *) "Œ©‰º‚낵‚½" + : jpast(locomotion(youmonst.data, "“¥‚Þ"))); +#endif if (Antimagic) { shieldeff(u.ux, u.uy); } if (Antimagic || In_endgame(&u.uz)) { +/*JP You_feel("a wrenching sensation."); +*/ + You("‚Ë‚¶‚ç‚ꂽ‚悤‚ÈŠ´Šo‚ðŠ´‚¶‚½D"); return; } if (!Blind) +/*JP You("are momentarily blinded by a flash of light."); +*/ + You("‚܂΂䂢Œõ‚ňêu–Ú‚ª‚­‚ç‚ñ‚¾D"); else +/*JP You("are momentarily disoriented."); +*/ + You("ˆêu•ûŒüŠ´Šo‚ðŽ¸‚Á‚½D"); deltrap(trap); newsym(u.ux, u.uy); /* get rid of trap symbol */ level_tele(); @@ -1078,8 +1248,13 @@ struct monst *mon; { if (level.flags.noteleport) { if (canseemon(mon)) +#if 0 /*JP*/ pline("A mysterious force prevents %s from teleporting!", mon_nam(mon)); +#else + pline("Šï–­‚È—Í‚ª%s‚̏uŠÔˆÚ“®‚ð–h‚¢‚¾I", + mon_nam(mon)); +#endif return TRUE; } return FALSE; @@ -1110,9 +1285,15 @@ int in_sight; if (in_sight) { if (canseemon(mtmp)) +/*JP pline("%s seems disoriented.", monname); +*/ + pline("%s‚͈êu•ûŒüŠ´Šo‚ðŽ¸‚Á‚½‚悤‚¾D", monname); else +/*JP pline("%s suddenly disappears!", monname); +*/ + pline("%s‚Í“Ë‘RÁ‚¦‚½I", monname); seetrap(trap); } } @@ -1140,8 +1321,13 @@ int in_sight; assign_level(&tolevel, &valley_level); } else if (Is_botlevel(&u.uz)) { if (in_sight && trap->tseen) +#if 0 /*JP*/ pline("%s avoids the %s.", Monnam(mtmp), (tt == HOLE) ? "hole" : "trap"); +#else + pline("%s‚Í%s‚ð‰ñ”ð‚µ‚½D", Monnam(mtmp), + (tt == HOLE) ? "ŒŠ" : "ã©"); +#endif return 0; } else { get_level(&tolevel, depth(&u.uz) + 1); @@ -1150,7 +1336,10 @@ int in_sight; if (In_endgame(&u.uz) && (mon_has_amulet(mtmp) || is_home_elemental(mptr))) { if (in_sight && mptr->mlet != S_ELEMENTAL) { +/*JP pline("%s seems to shimmer for a moment.", Monnam(mtmp)); +*/ + pline("%s‚ªˆêu‹P‚¢‚½‚悤‚ÉŒ©‚¦‚½D", Monnam(mtmp)); seetrap(trap); } return 0; @@ -1163,21 +1352,30 @@ int in_sight; if (mon_has_amulet(mtmp) || In_endgame(&u.uz)) { if (in_sight) +/*JP pline("%s seems very disoriented for a moment.", +*/ + pline("%s‚͈êu•ûŒüŠ´Šo‚ð‘å‚«‚­Ž¸‚Á‚½‚悤‚¾D", Monnam(mtmp)); return 0; } nlev = random_teleport_level(); if (nlev == depth(&u.uz)) { if (in_sight) +/*JP pline("%s shudders for a moment.", Monnam(mtmp)); +*/ + pline("%s‚͈êuk‚¦‚½D", Monnam(mtmp)); return 0; } get_level(&tolevel, nlev); } if (in_sight) { +/*JP pline("Suddenly, %s disappears out of sight.", mon_nam(mtmp)); +*/ + pline("“Ë‘R%s‚ªŽ‹ŠE‚©‚çÁ‚¦‚½D", mon_nam(mtmp)); seetrap(trap); } migrate_to_level(mtmp, ledger_no(&tolevel), migrate_typ, (coord *) 0); @@ -1225,7 +1423,10 @@ register struct obj *obj; != within_bounded_area(otx, oty, dndest.nlx, dndest.nly, dndest.nhx, dndest.nhy))); +/*JP if (flooreffects(obj, tx, ty, "fall")) { +*/ + if (flooreffects(obj, tx, ty, "—Ž‚¿‚é")) { return FALSE; } else if (otx == 0 && oty == 0) { ; /* fell through a trap door; no update of old loc needed */ @@ -1328,11 +1529,17 @@ boolean give_feedback; if (mtmp->ispriest && *in_rooms(mtmp->mx, mtmp->my, TEMPLE)) { if (give_feedback) +/*JP pline("%s resists your magic!", Monnam(mtmp)); +*/ + pline("%s‚Í–‚–@‚ð–h‚¢‚¾I", Monnam(mtmp)); return FALSE; } else if (level.flags.noteleport && u.uswallow && mtmp == u.ustuck) { if (give_feedback) +/*JP You("are no longer inside %s!", mon_nam(mtmp)); +*/ + You("%s‚Ì“à•”‚©‚ç’Eo‚µ‚½I", mon_nam(mtmp)); unstuck(mtmp); (void) rloc(mtmp, TRUE); } else if (is_rider(mtmp->data) && rn2(13) diff --git a/src/timeout.c b/src/timeout.c index e50ae39..2f53b36 100644 --- a/src/timeout.c +++ b/src/timeout.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" #include "lev.h" /* for checking save modes */ @@ -16,11 +21,19 @@ STATIC_DCL void FDECL(cleanup_burn, (ANY_P *, long)); /* He is being petrified - dialogue by inmet!tower */ static NEARDATA const char *const stoned_texts[] = { +#if 0 /*JP*/ "You are slowing down.", /* 5 */ "Your limbs are stiffening.", /* 4 */ "Your limbs have turned to stone.", /* 3 */ "You have turned to stone.", /* 2 */ "You are a statue." /* 1 */ +#else + "‚ ‚È‚½‚Í‚Ì‚ë‚­‚È‚Á‚½D", /* 5 */ + "‚ ‚È‚½‚ÌŽè‘«‚͍d’¼‚µ‚½D", /* 4 */ + "‚ ‚È‚½‚ÌŽè‘«‚͐Ή»‚µ‚½D", /* 3 */ + "‚ ‚È‚½‚͐΂ɂȂÁ‚½D", /* 2 */ + "‚ ‚È‚½‚Í’¤‘œ‚É‚È‚Á‚½D" /* 1 */ +#endif }; STATIC_OVL void @@ -64,11 +77,19 @@ stoned_dialogue() /* He is getting sicker and sicker prior to vomiting */ static NEARDATA const char *const vomiting_texts[] = { +#if 0 /*JP*/ "are feeling mildly nauseated.", /* 14 */ "feel slightly confused.", /* 11 */ "can't seem to think straight.", /* 8 */ "feel incredibly sick.", /* 5 */ "suddenly vomit!" /* 2 */ +#else + "‚¿‚å‚Á‚Æ“f‚«‹C‚ª‚µ‚½D", /* 14 */ + "­‚µ¬—‚µ‚½D", /* 11 */ + "‚Ü‚Æ‚à‚ÉŽvl‚Å‚«‚È‚­‚È‚Á‚½D", /* 8 */ + "‚Æ‚Ä‚à‹C•ª‚ªˆ«‚­‚È‚Á‚½D", /* 5 */ + "“Ë‘Ršq“f‚µ‚½I" /* 2 */ +#endif }; STATIC_OVL void @@ -122,15 +143,31 @@ vomiting_dialogue() } static NEARDATA const char *const choke_texts[] = { +#if 0 /*JP*/ "You find it hard to breathe.", "You're gasping for air.", "You can no longer breathe.", "You're turning %s.", "You suffocate." +#else + "‚ ‚È‚½‚͌ċz‚ª¢“ï‚É‚È‚Á‚½D", + "‚ ‚È‚½‚͋ꂵ‚­‚Ä‚ ‚¦‚¢‚¾D", + "‚ ‚È‚½‚Í‚à‚¤ŒÄ‹z‚ª‚Å‚«‚È‚¢D", + "‚ ‚È‚½‚Í%s‚È‚Á‚½D", + "‚ ‚È‚½‚Í’‚‘§‚µ‚½D" +#endif }; static NEARDATA const char *const choke_texts2[] = { +#if 0 /*JP*/ "Your %s is becoming constricted.", "Your blood is having trouble reaching your brain.", "The pressure on your %s increases.", "Your consciousness is fading.", "You suffocate." +#else + "‚ ‚È‚½‚Ì%s‚͍i‚߂‚¯‚ç‚ꂽD", + "ŒŒ‰t‚Ì‚ß‚®‚肪ˆ«‚­‚È‚Á‚½D", + "%s‚̈³—Í‚ª‚‚­‚È‚Á‚½D", + "ˆÓŽ¯‚ª‰“‚­‚È‚Á‚Ä‚«‚½D", + "‚ ‚È‚½‚Í’‚‘§‚µ‚½D" +#endif }; STATIC_OVL void @@ -145,7 +182,10 @@ choke_dialogue() const char *str = choke_texts[SIZE(choke_texts) - i]; if (index(str, '%')) +/*JP pline(str, hcolor(NH_BLUE)); +*/ + pline(str, jconj_adj(hcolor(NH_BLUE))); else pline1(str); } @@ -154,11 +194,19 @@ choke_dialogue() } static NEARDATA const char *const slime_texts[] = { +#if 0 /*JP*/ "You are turning a little %s.", /* 5 */ "Your limbs are getting oozy.", /* 4 */ "Your skin begins to peel away.", /* 3 */ "You are turning into %s.", /* 2 */ "You have become %s." /* 1 */ +#else + "­‚µ%s‚È‚Á‚½D", /* 5 */ + "Žè‘«‚ª—n‚¯‚Í‚¶‚ß‚½D", /* 4 */ + "”§‚ª‚Ç‚ë‚Ç‚ë‚É‚È‚Á‚Ä‚«‚½D", /* 3 */ + "%s‚É‚È‚è‚Í‚¶‚ß‚½D", /* 2 */ + "%s‚É‚È‚Á‚Ä‚µ‚Ü‚Á‚½D", /* 1 */ +#endif }; STATIC_OVL void @@ -176,10 +224,16 @@ slime_dialogue() if (index(buf, '%')) { if (i == 4L) { /* "you are turning green" */ if (!Blind) /* [what if you're already green?] */ +/*JP pline(buf, hcolor(NH_GREEN)); +*/ + pline(buf, jconj_adj(hcolor(NH_GREEN))); } else pline(buf, +/*JP an(Hallucination ? rndmonnam(NULL) : "green slime")); +*/ + Hallucination ? rndmonnam(NULL) : "—΃Xƒ‰ƒCƒ€"); } else pline1(buf); } @@ -197,7 +251,10 @@ void burn_away_slime() { if (Slimed) { +/*JP make_slimed(0L, "The slime that covers you is burned away!"); +*/ + pline("‚ ‚È‚½‚𕢂Á‚Ä‚¢‚½ƒXƒ‰ƒCƒ€‚͏Ă¯—Ž‚¿‚½I"); } } @@ -254,14 +311,22 @@ nh_timeout() u.uspellprot--; find_ac(); if (!Blind) +#if 0 /*JP*/ Norep("The %s haze around you %s.", hcolor(NH_GOLDEN), u.uspellprot ? "becomes less dense" : "disappears"); +#else + Norep("‚ ‚È‚½‚̉ñ‚è‚Ì%s–¶‚Í%sD", hcolor(NH_GOLDEN), + u.uspellprot ? "Á‚¦‚Í‚¶‚ß‚½" : "Á‚¦‚½"); +#endif } } if (u.ugallop) { if (--u.ugallop == 0L && u.usteed) +/*JP pline("%s stops galloping.", Monnam(u.usteed)); +*/ + pline("%s‚Í‘¬‹ì‚¯‚ð‚â‚ß‚½D", Monnam(u.usteed)); } for (upp = u.uprops; upp < u.uprops + SIZE(u.uprops); upp++) @@ -271,10 +336,19 @@ nh_timeout() case STONED: if (kptr && kptr->name[0]) { killer.format = kptr->format; +#if 0 /*JP*/ Strcpy(killer.name, kptr->name); +#else + Sprintf(killer.name, "%s‚̍UŒ‚‚Å", kptr->name); +#endif } else { +#if 0 /*JP*/ killer.format = NO_KILLER_PREFIX; Strcpy(killer.name, "killed by petrification"); +#else + killer.format = KILLED_BY; + Strcpy(killer.name, "Î‰»UŒ‚‚Å"); +#endif } dealloc_killer(kptr); /* (unlike sliming, you aren't changing form here) */ @@ -286,7 +360,10 @@ nh_timeout() Strcpy(killer.name, kptr->name); } else { killer.format = NO_KILLER_PREFIX; +/*JP Strcpy(killer.name, "turned into green slime"); +*/ + Strcpy(killer.name, "—΃Xƒ‰ƒCƒ€‚É‚È‚Á‚½"); } dealloc_killer(kptr); /* involuntarily break "never changed form" conduct */ @@ -297,7 +374,10 @@ nh_timeout() make_vomiting(0L, TRUE); break; case SICK: +/*JP You("die from your illness."); +*/ + You("•a‹C‚ÅŽ€‚ñ‚¾D"); if (kptr && kptr->name[0]) { killer.format = kptr->format; Strcpy(killer.name, kptr->name); @@ -320,8 +400,13 @@ nh_timeout() break; case FAST: if (!Very_fast) +#if 0 /*JP*/ You_feel("yourself slowing down%s.", Fast ? " a bit" : ""); +#else + You("%s’x‚­‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½D", + Fast ? "‚¿‚å‚Á‚Æ" : ""); +#endif break; case CONFUSION: /* So make_confused works properly */ @@ -351,9 +436,15 @@ nh_timeout() case INVIS: newsym(u.ux, u.uy); if (!Invis && !BInvis && !Blind) { +#if 0 /*JP*/ You(!See_invisible ? "are no longer invisible." : "can no longer see through yourself."); +#else + You(!See_invisible + ? "‚à‚¤“§–¾‚Å‚Í‚È‚¢D" + : "“§‚«‚Æ‚¨‚Á‚Ä‚¢‚È‚¢D"); +#endif stop_occupation(); } break; @@ -367,6 +458,13 @@ nh_timeout() heal_legs(); stop_occupation(); break; +#ifdef JPEXTENSION + case TOTTER: + Totter = 0; + make_totter(0L, TRUE); + stop_occupation(); + break; +#endif case HALLUC: set_itimeout(&HHallucination, 1L); (void) make_hallucinated(0L, TRUE, 0L); @@ -377,7 +475,10 @@ nh_timeout() if (unconscious() || Sleep_resistance) { incr_itimeout(&HSleepy, rnd(100)); } else if (Sleepy) { +/*JP You("fall asleep."); +*/ + You("–°‚è‚É—Ž‚¿‚½D"); sleeptime = rnd(20); fall_asleep(-sleeptime, TRUE); incr_itimeout(&HSleepy, sleeptime + rnd(100)); @@ -388,8 +489,13 @@ nh_timeout() break; case STRANGLED: killer.format = KILLED_BY; +#if 0 /*JP*/ Strcpy(killer.name, (u.uburied) ? "suffocation" : "strangulation"); +#else + Strcpy(killer.name, + (u.uburied) ? "’‚‘§‚µ‚Ä" : "Žñ‚ði‚ß‚ç‚ê‚Ä"); +#endif done(DIED); /* must be declining to die in explore|wizard mode; treat like being cured of strangulation by prayer */ @@ -411,7 +517,10 @@ nh_timeout() * to this number must be thoroughly play tested. */ if ((inv_weight() > -500)) { +/*JP You("make a lot of noise!"); +*/ + You("‘å‚«‚ȉ¹‚ð‚½‚Ä‚½I"); wake_nearby(); } } @@ -447,7 +556,10 @@ boolean wakeup_msg; } /* early wakeup from combat won't be possible until next monster turn */ u.usleep = monstermoves; +/*JP nomovemsg = wakeup_msg ? "You wake up." : You_can_move_again; +*/ + nomovemsg = wakeup_msg ? "–Ú‚ðŠo‚Ü‚µ‚½D" : You_can_move_again; } /* Attach an egg hatch timeout to the given egg. @@ -574,8 +686,13 @@ long timeout; boolean siblings = (hatchcount > 1), redraw = FALSE; if (cansee_hatchspot) { +#if 0 /*JP*/ Sprintf(monnambuf, "%s%s", siblings ? "some " : "", siblings ? makeplural(m_monnam(mon)) : an(m_monnam(mon))); +#else + Sprintf(monnambuf, "%s%s", siblings ? "‚¢‚­‚‚©‚Ì" : "", + a_monnam(mon)); +#endif /* we don't learn the egg type here because learning an egg type requires either seeing the egg hatch or being familiar with the egg already, @@ -587,24 +704,46 @@ long timeout; case OBJ_INVENT: knows_egg = TRUE; /* true even if you are blind */ if (!cansee_hatchspot) +#if 0 /*JP*/ You_feel("%s %s from your pack!", something, locomotion(mon->data, "drop")); +#else + pline("‰½‚©‚ª‚ ‚È‚½‚Ì”w•‰‚¢‘Ü‚©‚ç%s‚悤‚È‹C‚ª‚µ‚½D", + jpast(locomotion(mon->data, "—Ž‚¿‚é"))); +#endif else +#if 0 /*JP*/ You_see("%s %s out of your pack!", monnambuf, locomotion(mon->data, "drop")); +#else + You("%s‚ª‚ ‚È‚½‚Ì”w•‰‚¢‘Ü‚©‚ç%s‚Ì‚ðŒ©‚½D", monnambuf, + jpast(locomotion(mon->data, "—Ž‚¿‚é"))); +#endif if (yours) { +#if 0 /*JP*/ pline("%s cries sound like \"%s%s\"", siblings ? "Their" : "Its", flags.female ? "mommy" : "daddy", egg->spe ? "." : "?"); +#else + pline("‚»‚ê‚́w%s%sx‚Ɩ‚¢‚Ä‚¢‚é‚悤‚¾D", + flags.female ? "ƒ}ƒ}" : "ƒpƒp", egg->spe ? "" : "H"); +#endif } else if (mon->data->mlet == S_DRAGON && !Deaf) { +#if 0 /*JP*/ verbalize("Gleep!"); /* Mything eggs :-) */ +#else + verbalize("ƒuƒH[I"); /* Mything eggs :-) */ +#endif } break; case OBJ_FLOOR: if (cansee_hatchspot) { knows_egg = TRUE; +/*JP You_see("%s hatch.", monnambuf); +*/ + You("%s‚ª—‘‚©‚ç‚©‚¦‚é‚Ì‚ðŒ©‚½D", monnambuf); redraw = TRUE; /* update egg's map location */ } break; @@ -613,15 +752,29 @@ long timeout; if (cansee_hatchspot) { /* egg carrying monster might be invisible */ if (canseemon(egg->ocarry)) { +/*JP Sprintf(carriedby, "%s pack", +*/ + Sprintf(carriedby, "%s‚Ì”w•‰‚¢‘Ü‚©‚ç", s_suffix(a_monnam(egg->ocarry))); knows_egg = TRUE; } else if (is_pool(mon->mx, mon->my)) +/*JP Strcpy(carriedby, "empty water"); +*/ + Strcpy(carriedby, "‰½‚à‚È‚¢…’†‚©‚ç"); else +/*JP Strcpy(carriedby, "thin air"); +*/ + Strcpy(carriedby, "‰½‚à‚È‚¢‹óŠÔ‚©‚ç"); +#if 0 /*JP*/ You_see("%s %s out of %s!", monnambuf, locomotion(mon->data, "drop"), carriedby); +#else + You("%s‚ª%s%s‚Ì‚ðŒ©‚½D", monnambuf, carriedby, + locomotion(mon->data, "—Ž‚¿‚é")); +#endif } break; #if 0 @@ -705,6 +858,7 @@ slip_or_trip() name; if not, look for rocks to trip over; trip over anonymous "something" if there aren't any rocks. */ +#if 0 /*JP*/ what = (iflags.last_msg == PLNMSG_ONE_ITEM_HERE) ? ((otmp->quan == 1L) ? "it" : Hallucination ? "they" : "them") @@ -713,13 +867,29 @@ slip_or_trip() : ((otmp2 = sobj_at(ROCK, u.ux, u.uy)) == 0 ? something : (otmp2->quan == 1L ? "a rock" : "some rocks")); +#else + what = (iflags.last_msg == PLNMSG_ONE_ITEM_HERE) + ? "‚»‚ê" + : (otmp->dknown || !Blind) + ? doname(otmp) + : ((otmp2 = sobj_at(ROCK, u.ux, u.uy)) == 0 + ? something + : "Î"); +#endif if (Hallucination) { what = strcpy(buf, what); buf[0] = highc(buf[0]); +#if 0 /*JP*/ pline("Egads! %s bite%s your %s!", what, (!otmp || otmp->quan == 1L) ? "s" : "", body_part(FOOT)); +#else + pline("‚®‚í‚ŸI%s‚ª%s‚ÉŠš‚݂‚¢‚½I", what, body_part(FOOT)); +#endif } else { +/*JP You("trip over %s.", what); +*/ + You("%s‚ɂ‚܂¢‚½D", what); } if (!uarmf && otmp->otyp == CORPSE && touch_petrifies(&mons[otmp->corpsenm]) && !Stone_resistance) { @@ -728,6 +898,7 @@ slip_or_trip() instapetrify(killer.name); } } else if (rn2(3) && is_ice(u.ux, u.uy)) { +#if 0 /*JP*/ pline("%s %s%s on the ice.", u.usteed ? upstart(x_monnam(u.usteed, (has_mname(u.usteed)) ? ARTICLE_NONE @@ -735,38 +906,75 @@ slip_or_trip() (char *) 0, SUPPRESS_SADDLE, FALSE)) : "You", rn2(2) ? "slip" : "slide", on_foot ? "" : "s"); +#else + pline("%s‚Í•X‚̏ã‚ÅŠŠ‚Á‚½D", + u.usteed ? upstart(x_monnam(u.usteed, + (has_mname(u.usteed)) ? ARTICLE_NONE + : ARTICLE_THE, + (char *) 0, SUPPRESS_SADDLE, FALSE)) + : "‚ ‚È‚½"); +#endif } else { if (on_foot) { switch (rn2(4)) { case 1: +#if 0 /*JP*/ You("trip over your own %s.", Hallucination ? "elbow" : makeplural(body_part(FOOT))); +#else + You("Ž©•ª‚Ì%s‚𓥂ñ‚ł‚܂¢‚½D", + Hallucination ? "•I" : body_part(FOOT)); +#endif break; case 2: +#if 0 /*JP*/ You("slip %s.", Hallucination ? "on a banana peel" : "and nearly fall"); +#else + You("%sD", Hallucination ? + "ƒoƒiƒi‚Ì”ç‚ÅŠŠ‚Á‚½" : "ŠŠ‚Á‚Ä“]‚Ñ‚»‚¤‚É‚È‚Á‚½"); +#endif break; case 3: +/*JP You("flounder."); +*/ + You("‚¶‚½‚΂½‚µ‚½D"); break; default: +/*JP You("stumble."); +*/ + You("‚æ‚ë‚ß‚¢‚½D"); break; } } else { switch (rn2(4)) { case 1: +#if 0 /*JP*/ Your("%s slip out of the stirrups.", makeplural(body_part(FOOT))); +#else + You("‚ ‚Ԃ݂𓥂݊O‚µ‚Ä‚µ‚Ü‚Á‚½D"); +#endif break; case 2: +/*JP You("let go of the reins."); +*/ + You("Žèj‚ð•ú‚µ‚Ä‚µ‚Ü‚Á‚½D"); break; case 3: +/*JP You("bang into the saddle-horn."); +*/ + You("ƒTƒhƒ‹ƒz[ƒ“‚ɂԂ‚©‚Á‚Ä‚µ‚Ü‚Á‚½D"); break; default: +/*JP You("slide to one side of the saddle."); +*/ + You("‚·‚ׂÁ‚ĈƂ̕Б¤‚É‚¸‚ê‚Ä‚µ‚Ü‚Á‚½D"); break; } dismount_steed(DISMOUNT_FELL); @@ -783,10 +991,16 @@ const char *tailer; switch (obj->where) { case OBJ_INVENT: case OBJ_MINVENT: +/*JP pline("%s flickers%s.", Yname2(obj), tailer); +*/ + pline("%s‚Í%s“_–Å‚µ‚½D", Yname2(obj), tailer); break; case OBJ_FLOOR: +/*JP You_see("%s flicker%s.", an(xname(obj)), tailer); +*/ + You("%s‚ª%s“_–Å‚·‚é‚Ì‚ðŒ©‚½D", an(xname(obj)), tailer); break; } } @@ -799,15 +1013,27 @@ struct obj *obj; /* from adventure */ switch (obj->where) { case OBJ_INVENT: +/*JP Your("lantern is getting dim."); +*/ + Your("ƒ‰ƒ“ƒ^ƒ“‚͈­‚È‚Á‚Ä‚«‚½D"); if (Hallucination) +/*JP pline("Batteries have not been invented yet."); +*/ + pline("“d’r‚Í‚Ü‚¾”­–¾‚³‚ê‚Ä‚È‚¢‚ñ‚¾‚Á‚¯D"); break; case OBJ_FLOOR: +/*JP You_see("a lantern getting dim."); +*/ + pline("ƒ‰ƒ“ƒ^ƒ“‚ªˆÃ‚­‚È‚Á‚Ä‚«‚½‚Ì‚ªŒ©‚¦‚½D"); break; case OBJ_MINVENT: +/*JP pline("%s lantern is getting dim.", s_suffix(Monnam(obj->ocarry))); +*/ + pline("%s‚̃‰ƒ“ƒ^ƒ“‚͈­‚È‚Á‚Ä‚«‚½D", Monnam(obj->ocarry)); break; } } @@ -873,10 +1099,16 @@ long timeout; switch (obj->where) { case OBJ_INVENT: case OBJ_MINVENT: +/*JP pline("%spotion of oil has burnt away.", whose); +*/ + pline("%sƒIƒCƒ‹‚Í”R‚¦‚‚«‚½D", whose); break; case OBJ_FLOOR: +/*JP You_see("a burning potion of oil go out."); +*/ + You("ƒIƒCƒ‹‚̉΂ªÁ‚¦‚½‚Ì‚ðŒ©‚½D"); need_newsym = TRUE; break; } @@ -906,7 +1138,10 @@ long timeout; lantern_message(obj); else see_lamp_flicker(obj, +/*JP obj->age == 50L ? " considerably" : ""); +*/ + obj->age == 50L ? "Œƒ‚µ‚­" : ""); } break; @@ -918,10 +1153,16 @@ long timeout; switch (obj->where) { case OBJ_INVENT: case OBJ_MINVENT: +/*JP pline("%s seems about to go out.", Yname2(obj)); +*/ + pline("%s‚͍¡‚É‚àÁ‚¦‚»‚¤‚¾D", Yname2(obj)); break; case OBJ_FLOOR: +/*JP You_see("%s about to go out.", an(xname(obj))); +*/ + pline("%s‚ªÁ‚¦‚©‚¯‚Ä‚¢‚é‚Ì‚ªŒ©‚¦‚½D", an(xname(obj))); break; } } @@ -935,15 +1176,27 @@ long timeout; case OBJ_INVENT: case OBJ_MINVENT: if (obj->otyp == BRASS_LANTERN) +/*JP pline("%slantern has run out of power.", whose); +*/ + pline("%sƒ‰ƒ“ƒ^ƒ“‚Ì—Í‚ðŽg‚¢Ø‚Á‚½D", whose); else +/*JP pline("%s has gone out.", Yname2(obj)); +*/ + pline("%s‚͏Á‚¦‚½D", Yname2(obj)); break; case OBJ_FLOOR: if (obj->otyp == BRASS_LANTERN) +/*JP You_see("a lantern run out of power."); +*/ + You("ƒ‰ƒ“ƒ^ƒ“‚ªÁ‚¦‚é‚Ì‚ðŒ©‚½D"); else +/*JP You_see("%s go out.", an(xname(obj))); +*/ + You("%s‚ªÁ‚¦‚é‚Ì‚ðŒ©‚½D", an(xname(obj))); break; } } @@ -973,15 +1226,25 @@ long timeout; switch (obj->where) { case OBJ_INVENT: case OBJ_MINVENT: +#if 0 /*JP*/ pline("%s%scandle%s getting short.", whose, menorah ? "candelabrum's " : "", many ? "s are" : " is"); +#else + pline("%s%s‚낤‚»‚­‚Í’Z‚­‚È‚Á‚½D", whose, + menorah ? "C‘ä‚Ì" : ""); +#endif break; case OBJ_FLOOR: +#if 0 /*JP*/ You_see("%scandle%s getting short.", menorah ? "a candelabrum's " : many ? "some " : "a ", many ? "s" : ""); +#else + You("%s‚낤‚»‚­‚ª’Z‚­‚È‚é‚Ì‚ðŒ©‚½D", + menorah ? "C‘ä‚Ì" : ""); +#endif break; } break; @@ -991,15 +1254,25 @@ long timeout; switch (obj->where) { case OBJ_INVENT: case OBJ_MINVENT: +#if 0 /*JP*/ pline("%s%scandle%s flame%s flicker%s low!", whose, menorah ? "candelabrum's " : "", many ? "s'" : "'s", many ? "s" : "", many ? "" : "s"); +#else + pline("%s%s‚낤‚»‚­‚̉Š‚Í“_–Å‚µCˆÃ‚­‚È‚Á‚½I", whose, + menorah ? "C‘ä‚Ì" : ""); +#endif break; case OBJ_FLOOR: +#if 0 /*JP*/ You_see("%scandle%s flame%s flicker low!", menorah ? "a candelabrum's " : many ? "some " : "a ", many ? "s'" : "'s", many ? "s" : ""); +#else + You("%s‚낤‚»‚­‚̉Š‚ª“_–Å‚µCˆÃ‚­‚È‚é‚Ì‚ðŒ©‚½I", + menorah ? "C‘ä‚Ì" : ""); +#endif break; } break; @@ -1011,37 +1284,59 @@ long timeout; switch (obj->where) { case OBJ_INVENT: case OBJ_MINVENT: +#if 0 /*JP*/ pline("%scandelabrum's flame%s.", whose, many ? "s die" : " dies"); +#else + pline("%sC‘ä‚̉Š‚͏Á‚¦‚½D", whose); +#endif break; case OBJ_FLOOR: +#if 0 /*JP*/ You_see("a candelabrum's flame%s die.", many ? "s" : ""); +#else + You("C‘ä‚̉Š‚ªÁ‚¦‚é‚Ì‚ðŒ©‚½D"); +#endif break; } } else { switch (obj->where) { case OBJ_INVENT: case OBJ_MINVENT: +#if 0 /*JP*/ pline("%s %s consumed!", Yname2(obj), many ? "are" : "is"); +#else + pline("%s‚Í”R‚¦‚‚«‚½I", Yname2(obj)); +#endif break; case OBJ_FLOOR: /* You see some wax candles consumed! You see a wax candle consumed! */ +#if 0 /*JP*/ You_see("%s%s consumed!", many ? "some " : "", many ? xname(obj) : an(xname(obj))); +#else + You("%s‚ª”R‚¦‚‚«‚é‚Ì‚ðŒ©‚½I", xname(obj)); +#endif need_newsym = TRUE; break; } /* post message */ +#if 0 /*JP*/ pline(Hallucination ? (many ? "They shriek!" : "It shrieks!") : Blind ? "" : (many ? "Their flames die." : "Its flame dies.")); +#else + pline(Hallucination ? "‚»‚ê‚͐k‚¦‚½D" + : Blind ? "" + : "‰Š‚͏Á‚¦‚½D"); +#endif } } end_burn(obj, FALSE); @@ -1286,7 +1581,10 @@ do_storms() if (levl[u.ux][u.uy].typ == CLOUD) { /* Inside a cloud during a thunder storm is deafening. */ /* Even if already deaf, we sense the thunder's vibrations. */ +/*JP pline("Kaboom!!! Boom!! Boom!!"); +*/ + pline("ƒsƒJƒbIIƒSƒƒSƒƒSƒƒSƒIIƒh[ƒ“I"); incr_itimeout(&HDeaf, rn1(20, 30)); if (!u.uinvulnerable) { stop_occupation(); @@ -1295,7 +1593,10 @@ do_storms() nomovemsg = 0; } } else +/*JP You_hear("a rumbling noise."); +*/ + You_hear("—‹‚̉¹‚ð•·‚¢‚½D"); } /* ------------------------------------------------------------------------- diff --git a/src/topten.c b/src/topten.c index 54f2a2d..e3c3a63 100644 --- a/src/topten.c +++ b/src/topten.c @@ -88,11 +88,20 @@ int how; { static NEARDATA const char *const killed_by_prefix[] = { /* DIED, CHOKING, POISONING, STARVING, */ +/*JP "killed by ", "choked on ", "poisoned by ", "died of ", +*/ + "Ž€‚ñ‚¾", "‚Å’‚‘§‚µ‚½", "‚Ì“Å‚ÅŽ€‚ñ‚¾", "", /* DROWNING, BURNING, DISSOLVED, CRUSHING, */ +/*JP "drowned in ", "burned by ", "dissolved in ", "crushed to death by ", +*/ + "“MŽ€‚µ‚½","ÄŽ€‚µ‚½", "—nŠâ‚É—n‚¯‚½", "‰Ÿ‚µ’ׂ³‚ꂽ", /* STONING, TURNED_SLIME, GENOCIDED, */ +/*JP "petrified by ", "turned to slime by ", "killed by ", +*/ + "Î‚É‚È‚Á‚½", "‚ɃXƒ‰ƒCƒ€‚É‚³‚ꂽ", "‹sŽE‚³‚ꂽ", /* PANICKED, TRICKED, QUIT, ESCAPED, ASCENDED */ "", "", "", "", "" }; @@ -100,6 +109,10 @@ int how; char *kname = killer.name; buf[0] = '\0'; /* so strncat() can find the end */ +#if 1 /*JP*//*æ‚ɑΏۂðƒRƒs[*/ + strncat(buf, kname, siz - 1); + siz -= strlen(buf); +#endif switch (killer.format) { default: impossible("bad killer format? (%d)", killer.format); @@ -107,17 +120,29 @@ int how; case NO_KILLER_PREFIX: break; case KILLED_BY_AN: +#if 0 /*JP*//*“ú–{Œê‚Å‚Í•s—v*/ kname = an(kname); +#endif /*FALLTHRU*/ case KILLED_BY: +#if 0 /*JP*/ (void) strncat(buf, killed_by_prefix[how], siz - 1); l = strlen(buf); buf += l, siz -= l; +#else /*JP:Šù‚ɑΏۂðƒRƒs[‚µ‚Ä‚¢‚é‚Ì‚Å’P‚ɒljÁ*/ + (void) strncat(buf, killed_by_prefix[how], siz - 1); +#endif break; +#if 1 /*JP*/ + case KILLED_SUFFIX: + (void) strncat(buf, "‚ÉŽE‚³‚ꂽ", siz - 1); +#endif } +#if 0 /*JP*//*Šù‚ɃRƒs[Ï‚Ý*/ /* we're writing into buf[0] (after possibly advancing buf) rather than appending, but strncat() appends a terminator and strncpy() doesn't */ (void) strncat(buf, kname, siz - 1); +#endif } STATIC_OVL void @@ -549,8 +574,13 @@ time_t when; char pbuf[BUFSZ]; topten_print(""); Sprintf(pbuf, +#if 0 /*JP*/ "Since you were in %s mode, the score list will not be checked.", wizard ? "wizard" : "discover"); +#else + "%sƒ‚[ƒh‚ŃvƒŒƒC‚µ‚½‚̂ŃXƒRƒAƒŠƒXƒg‚ɂ͍ڂç‚È‚¢D", + wizard ? "ƒEƒBƒU[ƒh" : "”­Œ©"); +#endif topten_print(pbuf); } goto showwin; @@ -612,7 +642,10 @@ time_t when; char pbuf[BUFSZ]; Sprintf(pbuf, +/*JP "You didn't beat your previous score of %ld points.", +*/ + "‚ ‚È‚½‚͈ȑO‚Ì%ldƒ|ƒCƒ“ƒg‚̃XƒRƒA‚É“Í‚©‚È‚©‚Á‚½D", t1->points); topten_print(pbuf); topten_print(""); @@ -649,13 +682,22 @@ time_t when; if (!done_stopprint) if (rank0 > 0) { if (rank0 <= 10) { +/*JP topten_print("You made the top ten list!"); +*/ + topten_print("‚ ‚È‚½‚̓gƒbƒv10ƒŠƒXƒg‚ɍڂÁ‚½I"); } else { char pbuf[BUFSZ]; +#if 0 /*JP*/ Sprintf(pbuf, "You reached the %d%s place on the top %d list.", rank0, ordin(rank0), sysopt.entrymax); +#else + Sprintf(pbuf, + "‚ ‚È‚½‚́Cƒgƒbƒv%dƒŠƒXƒg‚Ì%dˆÊ‚ɍڂÁ‚½D", + sysopt.entrymax, rank0); +#endif topten_print(pbuf); } topten_print(""); @@ -761,7 +803,20 @@ boolean so; char linebuf[BUFSZ]; char *bp, hpbuf[24], linebuf3[BUFSZ]; int hppos, lngr; +#if 1 /*JP*/ + char who[BUFSZ]; + char where[BUFSZ]; + char action[BUFSZ]; + char car[BUFSZ]; + char cdr[BUFSZ]; + const char *jdeath; +#endif +#if 1 /*JP*/ + who[0] = '\0'; + where[0] = '\0'; + action[0] = '\0'; +#endif linebuf[0] = '\0'; if (rank) Sprintf(eos(linebuf), "%3d", rank); @@ -779,9 +834,27 @@ boolean so; */ Sprintf(eos(linebuf), "-%s", t1->plgend); if (t1->plalign[0] != '?') +/*JP Sprintf(eos(linebuf), "-%s ", t1->plalign); +*/ + Sprintf(eos(linebuf), "-%s", t1->plalign); else +/*JP Strcat(linebuf, " "); +*/ + Strcat(linebuf, ""); +#if 1 /*JP*/ + Strcat(linebuf, "‚Í"); +/*JP: “ú–{Œê‚ł́u››‚ðŽè‚Ɂv‚ðæ‚ɒljÁ‚µ‚È‚¢‚Æ•sŽ©‘R */ + jdeath = t1->death; + if (!strncmp(jdeath, "–‚œ‚¯‚ðŽè‚É", 12)) + jdeath += 12; + else if (!strncmp(jdeath, "“Vã‚Å’pJ‚ðŽó‚¯", 16)) + jdeath += 16; + else if (!strncmp(jdeath, "‹U•¨‚Ì–‚œ‚¯‚ð’Í‚Ü‚³‚ê", 24)) + jdeath += 24; +#endif +#if 0 /*JP*/ if (!strncmp("escaped", t1->death, 7)) { Sprintf(eos(linebuf), "escaped the dungeon %s[max level %d]", !strncmp(" (", t1->death + 7, 2) ? t1->death + 7 + 2 : "", @@ -789,15 +862,44 @@ boolean so; /* fixup for closing paren in "escaped... with...Amulet)[max..." */ if ((bp = index(linebuf, ')')) != 0) *bp = (t1->deathdnum == astral_level.dnum) ? '\0' : ' '; +#else + if (!strncmp("’Eo‚µ‚½", jdeath, 8) + || !strncmp("escaped", jdeath, 7)) { + char jbuf[BUFSZ]; + strncpy(jbuf, t1->death, jdeath - t1->death); + jbuf[jdeath - t1->death] = '\0'; + Sprintf(action, "%s–À‹{‚©‚ç’Eo‚µ‚½[Å‘å’n‰º%dŠK]", + jbuf, t1->maxlvl); +#endif second_line = FALSE; +#if 0 /*JP*/ } else if (!strncmp("ascended", t1->death, 8)) { +#else + } else if (!strncmp("¸“V‚µ‚½", jdeath, 8) + || !strncmp("ascended", jdeath, 8)) { +#endif +#if 0 /*JP:T*/ Sprintf(eos(linebuf), "ascended to demigod%s-hood", (t1->plgend[0] == 'F') ? "dess" : ""); +#else + Sprintf(action, "¸“V‚µ%s_‚Æ‚È‚Á‚½", + (t1->plgend[0] == 'F') ? "—" : ""); +#endif second_line = FALSE; } else { +/*JP if (!strncmp(t1->death, "quit", 4)) { +*/ + if (!strncmp(jdeath, "”²‚¯‚½", 4)) { +#if 0 /*JP*/ Strcat(linebuf, "quit"); +#else + Strcat(action, t1->death); +#endif second_line = FALSE; +#if 1 /*JP*/ + } +#else } else if (!strncmp(t1->death, "died of st", 10)) { Strcat(linebuf, "starved to death"); second_line = FALSE; @@ -812,50 +914,89 @@ boolean so; Strcat(linebuf, "turned to stone"); } else Strcat(linebuf, "died"); +#endif /*JP*/ if (t1->deathdnum == astral_level.dnum) { const char *arg, *fmt = " on the Plane of %s"; switch (t1->deathlev) { case -5: +#if 0 /*JP*/ fmt = " on the %s Plane"; +#endif +/*JP arg = "Astral"; +*/ + arg = "“VãŠE"; break; case -4: +/*JP arg = "Water"; +*/ + arg = "…‚̐¸—ìŠE"; break; case -3: +/*JP arg = "Fire"; +*/ + arg = "‰Î‚̐¸—ìŠE"; break; case -2: +/*JP arg = "Air"; +*/ + arg = "•—‚̐¸—ìŠE"; break; case -1: +/*JP arg = "Earth"; +*/ + arg = "’n‚̐¸—ìŠE"; break; default: arg = "Void"; break; } +#if 0 /*JP*/ Sprintf(eos(linebuf), fmt, arg); +#else + Sprintf(where, "%s‚É‚Ä", arg); +#endif } else { +/*JP Sprintf(eos(linebuf), " in %s", dungeons[t1->deathdnum].dname); +*/ + Sprintf(eos(linebuf), "%s", dungeons[t1->deathdnum].dname); if (t1->deathdnum != knox_level.dnum) +/*JP Sprintf(eos(linebuf), " on level %d", t1->deathlev); +*/ + Sprintf(eos(linebuf), "‚Ì’n‰º%dŠK‚É‚Ä", t1->deathlev); if (t1->deathlev != t1->maxlvl) +/*JP Sprintf(eos(linebuf), " [max %d]", t1->maxlvl); +*/ + Sprintf(eos(where), "[Å‘å’n‰º%dŠK]", t1->maxlvl); } /* kludge for "quit while already on Charon's boat" */ if (!strncmp(t1->death, "quit ", 5)) Strcat(linebuf, t1->death + 4); } +#if 0 /*JP*/ Strcat(linebuf, "."); +#endif /* Quit, starved, ascended, and escaped contain no second line */ if (second_line) +/*JP Sprintf(eos(linebuf), " %c%s.", highc(*(t1->death)), t1->death + 1); +*/ + Sprintf(action, "%s", t1->death); +#if 1 /*JP*/ + Sprintf(eos(linebuf), "%s%s%sD", who, where, action); +#endif lngr = (int) strlen(linebuf); if (t1->hp <= 0) hpbuf[0] = '-', hpbuf[1] = '\0'; @@ -863,6 +1004,26 @@ boolean so; Sprintf(hpbuf, "%d", t1->hp); /* beginning of hp column after padding (not actually padded yet) */ hppos = COLNO - (sizeof(" Hp [max]") - 1); /* sizeof(str) includes \0 */ +#if 1 /*JP*/ + while(lngr >= hppos ){ +/*JP hppos‚æ‚è‘O‚Ì“K“–‚Ȉʒu‚Å•ªŠ„‚·‚éD*/ + car[0] = '\0'; + cdr[0] = '\0'; + split_japanese(linebuf, car, cdr, hppos); + + bp = eos(car); + if (so) { + while (bp < car + (COLNO-1)) *bp++ = ' '; + *bp = 0; + topten_print_bold(car); + } else + topten_print(car); + + Sprintf(linebuf, "%15s %s", "", cdr); + lngr = (int)strlen(linebuf); + } +/*JP: “ú–{Œê‚ª“ü‚é‚Æ•¶Žš—ñ‚ðŒã‚©‚猩‚Ä‚¢‚­‚±‚Æ‚Í‚Å‚«‚È‚¢‚½‚߃Rƒƒ“ƒgƒAƒEƒg*/ +#else while (lngr >= hppos) { for (bp = eos(linebuf); !(*bp == ' ' && (bp - linebuf < hppos)); bp--) ; @@ -888,6 +1049,7 @@ boolean so; Sprintf(linebuf, "%15s %s", "", linebuf3); lngr = strlen(linebuf); } +#endif /*JP*/ /* beginning of hp column not including padding */ hppos = COLNO - 7 - (int) strlen(hpbuf); bp = eos(linebuf); diff --git a/src/trap.c b/src/trap.c index b8944ee..db6ca34 100644 --- a/src/trap.c +++ b/src/trap.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" extern const char *const destroy_strings[][3]; /* from zap.c */ @@ -40,13 +45,28 @@ STATIC_DCL void NDECL(maybe_finish_sokoban); /* mintrap() should take a flags argument, but for time being we use this */ STATIC_VAR int force_mintrap = 0; +#if 0 /*JP*/ STATIC_VAR const char *const a_your[2] = { "a", "your" }; STATIC_VAR const char *const A_Your[2] = { "A", "Your" }; STATIC_VAR const char tower_of_flame[] = "tower of flame"; STATIC_VAR const char *const A_gush_of_water_hits = "A gush of water hits"; +#endif +#if 0 /*JP*/ STATIC_VAR const char *const blindgas[6] = { "humid", "odorless", "pungent", "chilling", "acrid", "biting" }; +#else +STATIC_VAR const char * const blindgas[6] = { + "‚Þ‚µ‚Þ‚µ‚·‚é", "–³L‚Ì", + "ŽhŒƒL‚Ì‚·‚é", "—₽‚¢", + "ƒcƒ“‚Æ‚µ‚½‚É‚¨‚¢‚Ì", "‚Ђè‚Ђ肷‚é" + }; +#endif +#if 1 /*JP*/ +const char *set_you[2] = { "", "‚ ‚È‚½‚ÌŽdŠ|‚¯‚½" }; +STATIC_VAR const char *dig_you[2] = { "", "‚ ‚È‚½‚ªŒ@‚Á‚½" }; +STATIC_VAR const char *web_you[2] = { "", "‚ ‚È‚½‚ª’£‚Á‚½" }; +#endif /* called when you're hit by fire (dofiretrap,buzz,zapyourself,explode); returns TRUE if hit on torso */ @@ -82,10 +102,18 @@ struct monst *victim; item = hitting_u ? uarmh : which_armor(victim, W_ARMH); if (item) { mat_idx = objects[item->otyp].oc_material; +#if 0 /*JP*/ Sprintf(buf, "%s %s", materialnm[mat_idx], helm_simple_name(item)); +#else + Sprintf(buf, "%s‚Ì%s", materialnm[mat_idx], + helm_simple_name(item)); +#endif } +/*JP if (!burn_dmg(item, item ? buf : "helmet")) +*/ + if (!burn_dmg(item, item ? buf : "Š•")) continue; break; case 1: @@ -101,21 +129,33 @@ struct monst *victim; } item = hitting_u ? uarmu : which_armor(victim, W_ARMU); if (item) +/*JP (void) burn_dmg(item, "shirt"); +*/ + (void) burn_dmg(item, "ƒVƒƒƒc"); return TRUE; case 2: item = hitting_u ? uarms : which_armor(victim, W_ARMS); +/*JP if (!burn_dmg(item, "wooden shield")) +*/ + if (!burn_dmg(item, "–؂̏‚")) continue; break; case 3: item = hitting_u ? uarmg : which_armor(victim, W_ARMG); +/*JP if (!burn_dmg(item, "gloves")) +*/ + if (!burn_dmg(item, "¬Žè")) continue; break; case 4: item = hitting_u ? uarmf : which_armor(victim, W_ARMF); +/*JP if (!burn_dmg(item, "boots")) +*/ + if (!burn_dmg(item, "ŒC")) continue; break; } @@ -141,10 +181,20 @@ const char *ostr; int type; int ef_flags; { +#if 0 /*JP*/ static NEARDATA const char *const action[] = { "smoulder", "rust", "rot", "corrode" }; +#else + static NEARDATA const char * const action[] = { + "‚­‚·‚Ô‚Á‚½", "ŽK‚Ñ‚½", "•…‚Á‚½", "•…H‚µ‚½" }; +#endif +#if 0 /*JP*/ static NEARDATA const char *const msg[] = { "burnt", "rusted", "rotten", "corroded" }; +#else + static NEARDATA const char * const msg[] = { + "Å‚°‚½", "ŽK‚Ñ‚½", "•…‚Á‚½", "•…H‚µ‚½" }; +#endif boolean vulnerable = FALSE; boolean is_primary = TRUE; boolean check_grease = ef_flags & EF_GREASE; @@ -199,20 +249,37 @@ int ef_flags; } else if (!vulnerable || (otmp->oerodeproof && otmp->rknown)) { if (print && flags.verbose) { if (victim == &youmonst) +/*JP Your("%s %s not affected.", ostr, vtense(ostr, "are")); +*/ + Your("%s‚͉e‹¿‚ðŽó‚¯‚È‚©‚Á‚½D",ostr); else if (vismon) +#if 0 /*JP*/ pline("%s %s %s not affected.", s_suffix(Monnam(victim)), ostr, vtense(ostr, "are")); +#else + pline("%s‚Ì%s‚͉e‹¿‚ðŽó‚¯‚È‚©‚Á‚½D", Monnam(victim), + ostr); +#endif } return ER_NOTHING; } else if (otmp->oerodeproof || (otmp->blessed && !rnl(4))) { if (flags.verbose && (print || otmp->oerodeproof)) { if (victim == &youmonst) +#if 0 /*JP*/ pline("Somehow, your %s %s not affected.", ostr, vtense(ostr, "are")); +#else + pline("‚È‚º‚©C%s‚͉e‹¿‚ðŽó‚¯‚È‚©‚Á‚½D",ostr); +#endif else if (vismon) +#if 0 /*JP*/ pline("Somehow, %s %s %s not affected.", s_suffix(mon_nam(victim)), ostr, vtense(ostr, "are")); +#else + pline("‚È‚º‚©C%s‚Ì%s‚͉e‹¿‚ðŽó‚¯‚È‚©‚Á‚½D", + mon_nam(victim), ostr); +#endif else if (visobj) pline("Somehow, the %s %s not affected.", ostr, vtense(ostr, "are")); @@ -229,17 +296,34 @@ int ef_flags; return ER_NOTHING; } else if (erosion < MAX_ERODE) { +#if 0 /*JP*/ const char *adverb = (erosion + 1 == MAX_ERODE) ? " completely" : erosion ? " further" : ""; +#else + const char *adverb = (erosion + 1 == MAX_ERODE) + ? "Š®‘S‚É" + : erosion ? "‚³‚ç‚É" : ""; +#endif if (victim == &youmonst) +/*JP Your("%s %s%s!", ostr, vtense(ostr, action[type]), adverb); +*/ + pline("%s‚Í%s%sI", ostr, adverb, action[type]); else if (vismon) +#if 0 /*JP*/ pline("%s %s %s%s!", s_suffix(Monnam(victim)), ostr, vtense(ostr, action[type]), adverb); +#else + pline("%s‚Ì%s‚Í%s%sI", Monnam(victim), ostr, + adverb, action[type]); +#endif else if (visobj) +/*JP pline("The %s %s%s!", ostr, vtense(ostr, action[type]), adverb); +*/ + pline("%s‚Í%s%sI", ostr, adverb, action[type]); if (ef_flags & EF_PAY) costly_alteration(otmp, cost_type); @@ -271,14 +355,28 @@ int ef_flags; } else { if (flags.verbose && print) { if (victim == &youmonst) +#if 0 /*JP*/ Your("%s %s completely %s.", ostr, vtense(ostr, Blind ? "feel" : "look"), msg[type]); +#else + Your("%s‚ÍŠ®‘S‚É%s%sD", ostr, + msg[type], Blind ? "‚悤‚¾" : ""); +#endif else if (vismon) +#if 0 /*JP*/ pline("%s %s %s completely %s.", s_suffix(Monnam(victim)), ostr, vtense(ostr, "look"), msg[type]); +#else + pline("%s‚Ì%s‚ÍŠ®‘S‚É%sD", Monnam(victim), + ostr, msg[type]); +#endif else if (visobj) +#if 0 /*JP*/ pline("The %s %s completely %s.", ostr, vtense(ostr, "look"), msg[type]); +#else + pline("%s‚ÍŠ®‘S‚É%sD", ostr, msg[type]); +#endif } return ER_NOTHING; } @@ -293,22 +391,38 @@ register struct obj *otmp; const char *ostr; struct monst *victim; { +/*JP static const char txt[] = "protected by the layer of grease!"; +*/ + static const char txt[] = "–û‚Ì“h‚肱‚Ý‚É‚æ‚Á‚ÄŽç‚ç‚ê‚Ä‚¢‚éI"; boolean vismon = victim && (victim != &youmonst) && canseemon(victim); if (ostr) { if (victim == &youmonst) +/*JP Your("%s %s %s", ostr, vtense(ostr, "are"), txt); +*/ + Your("%s‚Í%s", ostr, txt); else if (vismon) +#if 0 /*JP*/ pline("%s's %s %s %s", Monnam(victim), ostr, vtense(ostr, "are"), txt); +#else + pline("%s‚Ì%s‚Í%s", Monnam(victim), ostr, txt); +#endif } else if (victim == &youmonst || vismon) { +/*JP pline("%s %s", Yobjnam2(otmp, "are"), txt); +*/ + Your("%s‚Í%s",xname(otmp), txt); } if (!rn2(2)) { otmp->greased = 0; if (carried(otmp)) { +/*JP pline_The("grease dissolves."); +*/ + pline("–û‚Í‚Í‚°‚Ä‚µ‚Ü‚Á‚½D"); update_inventory(); } return TRUE; @@ -483,12 +597,21 @@ boolean td; /* td == TRUE : trap door or hole */ feeltrap(t); if (!Sokoban) { if (t->ttyp == TRAPDOOR) +/*JP pline("A trap door opens up under you!"); +*/ + pline("—Ž‚µ”à‚ª‚ ‚È‚½‚Ì‘«Œ³‚ÉŠJ‚¢‚½I"); else +/*JP pline("There's a gaping hole under you!"); +*/ + pline("‚ ‚È‚½‚Ì‘«‰º‚É‚Û‚Á‚©‚è‚ÆŒŠ‚ªŠJ‚¢‚Ä‚¢‚éI"); } } else +/*JP pline_The("%s opens up under you!", surface(u.ux, u.uy)); +*/ + pline("‘«Œ³‚Ì%s‚ÉŒŠ‚ªŠJ‚¢‚½I", surface(u.ux,u.uy)); if (Sokoban && Can_fall_thru(&u.uz)) ; /* KMH -- You can't escape the Sokoban level traps */ @@ -496,19 +619,35 @@ boolean td; /* td == TRUE : trap door or hole */ || (!Can_fall_thru(&u.uz) && !levl[u.ux][u.uy].candig) || Flying || is_clinger(youmonst.data) || (Inhell && !u.uevent.invoked && newlevel == bottom)) { +/*JP dont_fall = "don't fall in."; +*/ + dont_fall = "‚µ‚©‚µ‚ ‚È‚½‚Í—Ž‚¿‚È‚©‚Á‚½D"; } else if (youmonst.data->msize >= MZ_HUGE) { +/*JP dont_fall = "don't fit through."; +*/ + dont_fall = "’ʂ蔲‚¯‚é‚ɂ̓TƒCƒY‚ª‡‚í‚È‚¢D"; } else if (!next_to_u()) { +/*JP dont_fall = "are jerked back by your pet!"; +*/ + dont_fall = "‚ ‚È‚½‚̓yƒbƒg‚É‚æ‚Á‚Ĉø‚Á‚Ï‚è‚à‚Ç‚³‚ꂽI"; } if (dont_fall) { +#if 0 /*JP*//*u‚ ‚È‚½‚́v‚ÅŽn‚Ü‚ç‚È‚¢‚à‚Ì‚à‚ ‚é*/ You1(dont_fall); +#else + pline1(dont_fall); +#endif /* hero didn't fall through, but any objects here might */ impact_drop((struct obj *) 0, u.ux, u.uy, 0); if (!td) { display_nhwindow(WIN_MESSAGE, FALSE); +/*JP pline_The("opening under you closes up."); +*/ + pline_The("‘«‰º‚ÉŠJ‚¢‚Ä‚¢‚½‚à‚͕̂‚¶‚½D"); } return; } @@ -522,11 +661,19 @@ boolean td; /* td == TRUE : trap door or hole */ dtmp.dnum = u.uz.dnum; dtmp.dlevel = newlevel; if (dist > 1) +#if 0 /*JP*/ You("fall down a %s%sshaft!", dist > 3 ? "very " : "", dist > 2 ? "deep " : ""); +#else + You("%s%sŒŠ‚Ì’†‚ð—Ž‚¿‚Ä‚¢‚Á‚½I", dist > 3 ? "‚Æ‚Ä‚à" : "", + dist > 2 ? "[‚¢" : ""); +#endif } if (!td) +/*JP Sprintf(msgbuf, "The hole in the %s above you closes up.", +*/ + Sprintf(msgbuf, "%s‚ÉŠJ‚¢‚½ŒŠ‚͕‚¶‚½D", ceiling(u.ux, u.uy)); schedule_goto(&dtmp, FALSE, TRUE, 0, (char *) 0, @@ -578,8 +725,10 @@ int *fail_reason; const char *comes_to_life; char statuename[BUFSZ], tmpbuf[BUFSZ]; static const char historic_statue_is_gone[] = +/*JP "that the historic statue is now gone"; - +*/ + "—ðŽj“I‚È’¤‘œ‚ª‚È‚­‚È‚Á‚Ä‚µ‚Ü‚Á‚½‚±‚Æ"; if (cant_revive(&mnum, TRUE, statue)) { /* mnum has changed; we won't be animating this statue as itself */ if (mnum != PM_DOPPELGANGER) @@ -650,6 +799,7 @@ int *fail_reason; set_malign(mon); } +#if 0 /*JP*/ comes_to_life = !canspotmon(mon) ? "disappears" : golem_xform @@ -657,9 +807,19 @@ int *fail_reason; : (nonliving(mon->data) || is_vampshifter(mon)) ? "moves" : "comes to life"; +#else + comes_to_life = !canspotmon(mon) + ? "Á‚¦" + : golem_xform + ? "“÷‘Ì‚É–ß‚Á" + : (nonliving(mon->data) || is_vampshifter(mon)) + ? "“®‚¢" + : "¶–½‚ð‘Ñ‚Ñ"; +#endif if ((x == u.ux && y == u.uy) || cause == ANIMATE_SPELL) { /* "the|your|Manlobbi's statue [of a wombat]" */ shkp = shop_keeper(*in_rooms(mon->mx, mon->my, SHOPBASE)); +#if 0 /*JP*/ Sprintf(statuename, "%s%s", shk_your(tmpbuf, statue), (cause == ANIMATE_SPELL /* avoid "of a shopkeeper" if it's Manlobbi himself @@ -669,19 +829,43 @@ int *fail_reason; && (mon != shkp || carried(statue))) ? xname(statue) : "statue"); +#else + Sprintf(statuename, "%s%s", shk_your(tmpbuf, statue), + (cause == ANIMATE_SPELL + && (mon != shkp || carried(statue))) + ? xname(statue) + : "’¤‘œ"); +#endif +/*JP pline("%s %s!", upstart(statuename), comes_to_life); +*/ + pline("%s‚Í%s‚½I", upstart(statuename), comes_to_life); } else if (Hallucination) { /* They don't know it's a statue */ +/*JP pline_The("%s suddenly seems more animated.", rndmonnam((char *) 0)); +*/ + pline_The("%s‚Í“Ë‘R‚æ‚芈“®“I‚É‚È‚Á‚½D", rndmonnam((char *) 0)); } else if (cause == ANIMATE_SHATTER) { if (cansee(x, y)) Sprintf(statuename, "%s%s", shk_your(tmpbuf, statue), xname(statue)); else +/*JP Strcpy(statuename, "a statue"); +*/ + Strcpy(statuename, "’¤‘œ"); +#if 0 /*JP*/ pline("Instead of shattering, %s suddenly %s!", statuename, comes_to_life); +#else + pline("%s‚͍ӂ¯‚¸‚É%s‚½I", statuename, + comes_to_life); +#endif } else { /* cause == ANIMATE_NORMAL */ +/*JP You("find %s posing as a statue.", +*/ + You("%s‚ª’¤‘œ‚Ì‚Ó‚è‚ð‚µ‚Ä‚¢‚é‚Ì‚ðŒ©‚Â‚¯‚½D", canspotmon(mon) ? a_monnam(mon) : something); if (!canspotmon(mon) && Blind) map_invisible(x, y); @@ -704,12 +888,18 @@ int *fail_reason; FALSE); if (historic) { +/*JP You_feel("guilty %s.", historic_statue_is_gone); +*/ + You_feel("%s‚Éß‚ðŠ´‚¶‚½D", historic_statue_is_gone); adjalign(-1); } } else { if (historic && cansee(x, y)) +/*JP You_feel("regret %s.", historic_statue_is_gone); +*/ + You_feel("%s‚ðŒã‰÷‚µ‚½D", historic_statue_is_gone); /* no alignment penalty */ } @@ -826,27 +1016,45 @@ unsigned trflags; * reason why the player cannot escape the trap with a dexterity * check, clinging to the ceiling, etc. */ +#if 0 /*JP*/ pline("Air currents pull you down into %s %s!", a_your[trap->madeby_u], defsyms[trap_to_defsym(ttype)].explanation); +#else + pline("‹ó‹C‚Ì—¬‚ꂪ‚ ‚È‚½‚ð%s‚Ɉø‚«–ß‚µ‚½I", + defsyms[trap_to_defsym(ttype)].explanation); +#endif /* then proceed to normal trap effect */ } else if (already_seen && !forcetrap) { if ((Levitation || (Flying && !plunged)) && (ttype == PIT || ttype == SPIKED_PIT || ttype == HOLE || ttype == BEAR_TRAP)) { +#if 0 /*JP*/ You("%s over %s %s.", Levitation ? "float" : "fly", a_your[trap->madeby_u], defsyms[trap_to_defsym(ttype)].explanation); +#else + You("%s%s‚̏ã%sD", + set_you[trap->madeby_u], + defsyms[trap_to_defsym(ttype)].explanation, + Levitation ? "‚ðŒ©‰º‚낵‚½" : "‚ð”ò‚ñ‚Å‚¢‚é"); +#endif return; } if (!Fumbling && ttype != MAGIC_PORTAL && ttype != VIBRATING_SQUARE && ttype != ANTI_MAGIC && !forcebungle && !plunged && !adj_pit && (!rn2(5) || ((ttype == PIT || ttype == SPIKED_PIT) && is_clinger(youmonst.data)))) { +#if 0 /*JP:T*/ You("escape %s %s.", (ttype == ARROW_TRAP && !trap->madeby_u) ? "an" : a_your[trap->madeby_u], defsyms[trap_to_defsym(ttype)].explanation); +#else + You("%s%s‚ð‚·‚é‚è‚Æ”ð‚¯‚½D", + set_you[trap->madeby_u], + defsyms[trap_to_defsym(ttype)].explanation); +#endif return; } } @@ -862,21 +1070,30 @@ unsigned trflags; switch (ttype) { case ARROW_TRAP: if (trap->once && trap->tseen && !rn2(15)) { +/*JP You_hear("a loud click!"); +*/ + You_hear("ƒKƒ`ƒƒƒb‚Æ‚¢‚¤‘å‚«‚ȉ¹‚ð•·‚¢‚½I"); deltrap(trap); newsym(u.ux, u.uy); break; } trap->once = 1; seetrap(trap); +/*JP pline("An arrow shoots out at you!"); +*/ + pline("–”ò‚ñ‚Å‚«‚½I"); otmp = mksobj(ARROW, TRUE, FALSE); otmp->quan = 1L; otmp->owt = weight(otmp); otmp->opoisoned = 0; if (u.usteed && !rn2(2) && steedintrap(trap, otmp)) { /* nothing */ ; +/*JP } else if (thitu(8, dmgval(otmp, &youmonst), otmp, "arrow")) { +*/ + } else if (thitu(8, dmgval(otmp, &youmonst), otmp, "–î")) { obfree(otmp, (struct obj *) 0); } else { place_object(otmp, u.ux, u.uy); @@ -889,14 +1106,20 @@ unsigned trflags; case DART_TRAP: if (trap->once && trap->tseen && !rn2(15)) { +/*JP You_hear("a soft click."); +*/ + You_hear("ƒJƒ`ƒb‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D"); deltrap(trap); newsym(u.ux, u.uy); break; } trap->once = 1; seetrap(trap); +/*JP pline("A little dart shoots out at you!"); +*/ + pline("¬‚³‚È“Š‚°–”ò‚ñ‚Å‚«‚½I"); otmp = mksobj(DART, TRUE, FALSE); otmp->quan = 1L; otmp->owt = weight(otmp); @@ -905,12 +1128,22 @@ unsigned trflags; oldumort = u.umortality; if (u.usteed && !rn2(2) && steedintrap(trap, otmp)) { /* nothing */ ; +/*JP } else if (thitu(7, dmgval(otmp, &youmonst), otmp, "little dart")) { +*/ + } else if (thitu(7, dmgval(otmp, &youmonst), otmp, "“Š‚°–î")) { if (otmp->opoisoned) +#if 0 /*JP*/ poisoned("dart", A_CON, "little dart", /* if damage triggered life-saving, poison is limited to attrib loss */ (u.umortality > oldumort) ? 0 : 10, TRUE); +#else + poisoned("“Š‚°–î", A_CON, "¬‚³‚È“Š‚°–î", + /* if damage triggered life-saving, + poison is limited to attrib loss */ + (u.umortality > oldumort) ? 0 : 10, TRUE); +#endif obfree(otmp, (struct obj *) 0); } else { place_object(otmp, u.ux, u.uy); @@ -923,7 +1156,10 @@ unsigned trflags; case ROCKTRAP: if (trap->once && trap->tseen && !rn2(15)) { +/*JP pline("A trap door in %s opens, but nothing falls out!", +*/ + pline("—Ž‚µ”à‚ª%s‚ÉŠJ‚¢‚½‚ªC‰½‚à—Ž‚¿‚Ä‚±‚È‚©‚Á‚½I", the(ceiling(u.ux, u.uy))); deltrap(trap); newsym(u.ux, u.uy); @@ -936,15 +1172,26 @@ unsigned trflags; otmp->quan = 1L; otmp->owt = weight(otmp); +#if 0 /*JP*/ pline("A trap door in %s opens and %s falls on your %s!", the(ceiling(u.ux, u.uy)), an(xname(otmp)), body_part(HEAD)); +#else + pline("—Ž‚µ”à‚ª%s‚ÉŠJ‚«C%s‚ª‚ ‚È‚½‚Ì%s‚É—Ž‚¿‚Ä‚«‚½I", + ceiling(u.ux,u.uy), xname(otmp), body_part(HEAD)); +#endif if (uarmh) { if (is_metallic(uarmh)) { +/*JP pline("Fortunately, you are wearing a hard helmet."); +*/ + pline("K‰^‚É‚àC‚ ‚È‚½‚͌ł¢Š•‚ðg‚ɂ‚¯‚Ä‚¢‚½D"); dmg = 2; } else if (flags.verbose) { +/*JP pline("%s does not protect you.", Yname2(uarmh)); +*/ + pline("%s‚Å‚Í–h‚°‚È‚¢D", xname(uarmh)); } } @@ -953,7 +1200,10 @@ unsigned trflags; stackobj(otmp); newsym(u.ux, u.uy); /* map the rock */ +/*JP losehp(Maybe_Half_Phys(dmg), "falling rock", KILLED_BY_AN); +*/ + losehp(Maybe_Half_Phys(dmg), "—ŽŠâ‚Å", KILLED_BY_AN); exercise(A_STR, FALSE); } break; @@ -963,15 +1213,29 @@ unsigned trflags; if (!Blind) { seetrap(trap); if (Hallucination) +/*JP You("notice a crease in the linoleum."); +*/ + You("°‚ÌŽdãÞ‚Ì‚µ‚í‚É‹C‚ª‚‚¢‚½D"); else +/*JP You("notice a loose board below you."); +*/ + You("‘«Œ³‚ÌŠÉ‚ñ‚¾”‚ɋC‚ª‚‚¢‚½D"); } } else { seetrap(trap); +#if 0 /*JP*/ pline("A board beneath you %s%s%s.", Deaf ? "vibrates" : "squeaks ", Deaf ? "" : trapnote(trap, 0), Deaf ? "" : " loudly"); +#else + if (Deaf) { + pline("‘«Œ³‚̔‚ª‚ä‚ꂽD"); + } else { + pline("‘«Œ³‚̔‚ª‘å‚«‚­%s‚̉¹‚É‚«‚µ‚ñ‚¾D", trapnote(trap, 0)); + } +#endif wake_nearby(); } break; @@ -984,29 +1248,55 @@ unsigned trflags; feeltrap(trap); if (amorphous(youmonst.data) || is_whirly(youmonst.data) || unsolid(youmonst.data)) { +#if 0 /*JP*/ pline("%s bear trap closes harmlessly through you.", A_Your[trap->madeby_u]); +#else + pline("%sŒF‚Ì㩂͊š‚݂‚¢‚½‚ªC‚·‚é‚Á‚ƒʂ蔲‚¯‚½D", + set_you[trap->madeby_u]); +#endif break; } if (!u.usteed && youmonst.data->msize <= MZ_SMALL) { +#if 0 /*JP*/ pline("%s bear trap closes harmlessly over you.", A_Your[trap->madeby_u]); +#else + pline("%sŒF‚Ì㩂͊š‚݂‚¢‚½‚ªC—y‚©ã•û‚¾‚Á‚½D", + set_you[trap->madeby_u]); +#endif break; } u.utrap = rn1(4, 4); u.utraptype = TT_BEARTRAP; if (u.usteed) { +#if 0 /*JP*/ pline("%s bear trap closes on %s %s!", A_Your[trap->madeby_u], s_suffix(mon_nam(u.usteed)), mbodypart(u.usteed, FOOT)); +#else + pline("%sŒF‚Ì㩂Í%s‚Ì%s‚ÉŠš‚݂‚¢‚½I", set_you[trap->madeby_u], + mon_nam(u.usteed), mbodypart(u.usteed, FOOT)); +#endif if (thitm(0, u.usteed, (struct obj *) 0, dmg, FALSE)) u.utrap = 0; /* steed died, hero not trapped */ } else { +#if 0 /*JP*/ pline("%s bear trap closes on your %s!", A_Your[trap->madeby_u], body_part(FOOT)); +#else + pline("%sŒF‚Ì㩂ª‚ ‚È‚½‚Ì%s‚ÉŠš‚݂‚¢‚½I", set_you[trap->madeby_u], + body_part(FOOT)); +#endif set_wounded_legs(rn2(2) ? RIGHT_SIDE : LEFT_SIDE, rn1(10, 10)); if (u.umonnum == PM_OWLBEAR || u.umonnum == PM_BUGBEAR) +/*JP You("howl in anger!"); +*/ + You("“{‚è‚Ì™ôšK‚ð‚ ‚°‚½I"); +/*JP losehp(Maybe_Half_Phys(dmg), "bear trap", KILLED_BY_AN); +*/ + losehp(Maybe_Half_Phys(dmg), "ŒF‚Ì㩂Å", KILLED_BY_AN); } exercise(A_DEX, FALSE); break; @@ -1015,9 +1305,15 @@ unsigned trflags; case SLP_GAS_TRAP: seetrap(trap); if (Sleep_resistance || breathless(youmonst.data)) { +/*JP You("are enveloped in a cloud of gas!"); +*/ + You("ƒKƒX‰_‚ɂ‚‚܂ꂽI"); } else { +/*JP pline("A cloud of gas puts you to sleep!"); +*/ + pline("‚ ‚È‚½‚̓KƒX‰_‚Å–°‚Á‚Ä‚µ‚Ü‚Á‚½I"); fall_asleep(-rnd(25), TRUE); } (void) steedintrap(trap, (struct obj *) 0); @@ -1033,27 +1329,45 @@ unsigned trflags; */ switch (rn2(5)) { case 0: +/*JP pline("%s you on the %s!", A_gush_of_water_hits, body_part(HEAD)); +*/ + pline("…‚ª•¬o‚µ‚Ä‚ ‚È‚½‚Ì%s‚É–½’†‚µ‚½I", body_part(HEAD)); (void) water_damage(uarmh, helm_simple_name(uarmh), TRUE); break; case 1: +/*JP pline("%s your left %s!", A_gush_of_water_hits, body_part(ARM)); +*/ + pline("…‚ª•¬o‚µ‚Ä‚ ‚È‚½‚̍¶%s‚É–½’†‚µ‚½I", body_part(ARM)); +/*JP if (water_damage(uarms, "shield", TRUE) != ER_NOTHING) +*/ + if (water_damage(uarms, "‚", TRUE) != ER_NOTHING) break; if (u.twoweap || (uwep && bimanual(uwep))) (void) water_damage(u.twoweap ? uswapwep : uwep, 0, TRUE); glovecheck: +/*JP (void) water_damage(uarmg, "gauntlets", TRUE); +*/ + (void) water_damage(uarmg, "¬Žè", TRUE); /* Not "metal gauntlets" since it gets called * even if it's leather for the message */ break; case 2: +/*JP pline("%s your right %s!", A_gush_of_water_hits, body_part(ARM)); +*/ + pline("…‚ª•¬o‚µ‚Ä‚ ‚È‚½‚̉E%s‚É–½’†‚µ‚½I", body_part(ARM)); (void) water_damage(uwep, 0, TRUE); goto glovecheck; default: +/*JP pline("%s you!", A_gush_of_water_hits); +*/ + pline("…‚ª•¬o‚µ‚Ä‚ ‚È‚½‚É–½’†‚µ‚½I"); for (otmp = invent; otmp; otmp = otmp->nobj) if (otmp->lamplit && otmp != uwep && (otmp != uswapwep || !u.twoweap)) @@ -1061,20 +1375,38 @@ unsigned trflags; if (uarmc) (void) water_damage(uarmc, cloak_simple_name(uarmc), TRUE); else if (uarm) +/*JP (void) water_damage(uarm, "armor", TRUE); +*/ + (void) water_damage(uarm, "ŠZ", TRUE); else if (uarmu) +/*JP (void) water_damage(uarmu, "shirt", TRUE); +*/ + (void) water_damage(uarmu, "ƒVƒƒƒc", TRUE); } update_inventory(); if (u.umonnum == PM_IRON_GOLEM) { int dam = u.mhmax; +/*JP pline("%s you!", A_gush_of_water_hits); +*/ + pline("…‚ª•¬o‚µ‚Ä‚ ‚È‚½‚É–½’†‚µ‚½I"); +/*JP You("are covered with rust!"); +*/ + You("ŽK‚É•¢‚í‚ꂽI"); +/*JP losehp(Maybe_Half_Phys(dam), "rusting away", KILLED_BY); +*/ + losehp(Maybe_Half_Phys(dam), "Š®‘S‚ÉŽK‚Ñ‚Ä", KILLED_BY); } else if (u.umonnum == PM_GREMLIN && rn2(3)) { +/*JP pline("%s you!", A_gush_of_water_hits); +*/ + pline("…‚ª•¬o‚µ‚Ä‚ ‚È‚½‚É–½’†‚µ‚½I"); (void) split_mon(&youmonst, (struct monst *) 0); } @@ -1093,12 +1425,25 @@ unsigned trflags; feeltrap(trap); if (!Sokoban && is_clinger(youmonst.data) && !plunged) { if (trap->tseen) { +#if 0 /*JP*/ You_see("%s %spit below you.", a_your[trap->madeby_u], ttype == SPIKED_PIT ? "spiked " : ""); +#else + pline("‘«Œ³‚É%s%s—Ž‚µŒŠ‚ð”­Œ©‚µ‚½D", dig_you[trap->madeby_u], + ttype == SPIKED_PIT ? "ƒgƒQ‚¾‚炯‚Ì" : ""); +#endif } else { +#if 0 /*JP*/ pline("%s pit %sopens up under you!", A_Your[trap->madeby_u], ttype == SPIKED_PIT ? "full of spikes " : ""); +#else + pline("%s%s—Ž‚µŒŠ‚ª‘«Œ³‚ÉŠJ‚¢‚½I", dig_you[trap->madeby_u], + ttype == SPIKED_PIT ? "ƒgƒQ‚¾‚炯‚Ì" : ""); +#endif +/*JP You("don't fall in!"); +*/ + pline("‚µ‚©‚µC‚ ‚È‚½‚Í—Ž‚¿‚È‚©‚Á‚½I"); } break; } @@ -1107,66 +1452,128 @@ unsigned trflags; if (u.usteed) { if ((trflags & RECURSIVETRAP) != 0) +/*JP Sprintf(verbbuf, "and %s fall", +*/ + Sprintf(verbbuf, "‚Æ%s", x_monnam(u.usteed, steed_article, (char *) 0, SUPPRESS_SADDLE, FALSE)); else +#if 0 /*JP*/ Sprintf(verbbuf, "lead %s", x_monnam(u.usteed, steed_article, "poor", SUPPRESS_SADDLE, FALSE)); +#else + Sprintf(verbbuf,"‚Æ%s", + x_monnam(u.usteed, steed_article, "‚©‚í‚¢‚»‚¤‚È", + SUPPRESS_SADDLE, FALSE)); +#endif } else if (adj_pit) { You("move into an adjacent pit."); } else { +#if 0 /*JP*/ Strcpy(verbbuf, !plunged ? "fall" : (Flying ? "dive" : "plunge")); +#else + Strcpy(verbbuf, + !plunged ? "—Ž‚¿‚½" : (Flying ? "”ò‚эž‚ñ‚¾" : "“Ë“ü‚µ‚½")); +#endif +/*JP You("%s into %s pit!", verbbuf, a_your[trap->madeby_u]); +*/ + You("%s—Ž‚µŒŠ‚É%s!", set_you[trap->madeby_u], verbbuf); } } /* wumpus reference */ if (Role_if(PM_RANGER) && !trap->madeby_u && !trap->once && In_quest(&u.uz) && Is_qlocate(&u.uz)) { +/*JP pline("Fortunately it has a bottom after all..."); +*/ + pline("K‚¢CŒ‹‹Ç‚͒ꂪ‚ ‚Á‚½DDD"); trap->once = 1; } else if (u.umonnum == PM_PIT_VIPER || u.umonnum == PM_PIT_FIEND) { +/*JP pline("How pitiful. Isn't that the pits?"); +*/ + pline("‚±‚Ì—Ž‚µŒŠ‚Í‚¢‚¢ŽdŽ–‚ð‚µ‚Ä‚¢‚éD"); } if (ttype == SPIKED_PIT) { +/*JP const char *predicament = "on a set of sharp iron spikes"; +*/ + const char *predicament = "‰s‚¢“S‚̃gƒQƒgƒQ‚̏ã‚É—Ž‚¿‚½"; if (u.usteed) { +#if 0 /*JP*/ pline("%s %s %s!", upstart(x_monnam(u.usteed, steed_article, "poor", SUPPRESS_SADDLE, FALSE)), adj_pit ? "steps" : "lands", predicament); +#else + pline("%s‚Í%sI", + upstart(x_monnam(u.usteed, steed_article, "‚©‚í‚¢‚»‚¤‚È", + SUPPRESS_SADDLE, FALSE)), + predicament); +#endif } else +#if 0 /*JP*/ You("%s %s!", adj_pit ? "step" : "land", predicament); +#else + You("%sI", predicament); +#endif } u.utrap = rn1(6, 2); u.utraptype = TT_PIT; if (!steedintrap(trap, (struct obj *) 0)) { if (ttype == SPIKED_PIT) { oldumort = u.umortality; +#if 0 /*JP*/ losehp(Maybe_Half_Phys(rnd(adj_pit ? 6 : 10)), plunged ? "deliberately plunged into a pit of iron spikes" : adj_pit ? "stepped into a pit of iron spikes" : "fell into a pit of iron spikes", NO_KILLER_PREFIX); +#else + losehp(Maybe_Half_Phys(rnd(adj_pit ? 6 : 10)), + plunged + ? "‚í‚´‚í‚´ƒgƒQ‚¾‚炯‚Ì—Ž‚µŒŠ‚É“Ë“ü‚µ‚Ä" + : adj_pit ? "ƒgƒQ‚¾‚炯‚Ì—Ž‚µŒŠ‚É“¥‚ݍž‚ñ‚Å" + : "ƒgƒQ‚¾‚炯‚Ì—Ž‚µŒŠ‚É—Ž‚¿‚Ä", + NO_KILLER_PREFIX); +#endif if (!rn2(6)) +#if 0 /*JP*/ poisoned("spikes", A_STR, adj_pit ? "stepping on poison spikes" : "fall onto poison spikes", /* if damage triggered life-saving, poison is limited to attrib loss */ (u.umortality > oldumort) ? 0 : 8, FALSE); +#else + poisoned("ƒgƒQ", A_STR, + adj_pit ? "“Å‚Ì“h‚ç‚ꂽƒgƒQ‚𓥂ñ‚Å" + : "“Å‚Ì“h‚ç‚ꂽƒgƒQ‚̏ã‚É—Ž‚¿‚Ä", + /* if damage triggered life-saving, + poison is limited to attrib loss */ + (u.umortality > oldumort) ? 0 : 8, FALSE); +#endif } else { /* plunging flyers take spike damage but not pit damage */ if (!adj_pit && !(plunged && (Flying || is_clinger(youmonst.data)))) +#if 0 /*JP*/ losehp(Maybe_Half_Phys(rnd(6)), plunged ? "deliberately plunged into a pit" : "fell into a pit", NO_KILLER_PREFIX); +#else + losehp(Maybe_Half_Phys(rnd(6)), + plunged ? "‚í‚´‚í‚´—Ž‚µŒŠ‚É“Ë“ü‚µ‚Ä" + : "—Ž‚µŒŠ‚É—Ž‚¿‚Ä", + NO_KILLER_PREFIX); +#endif } if (Punished && !carried(uball)) { unplacebc(); @@ -1174,7 +1581,10 @@ unsigned trflags; placebc(); } if (!adj_pit) +/*JP selftouch("Falling, you"); +*/ + selftouch("—Ž‰º’†C‚ ‚È‚½‚Í"); vision_full_recalc = 1; /* vision limits change */ exercise(A_STR, FALSE); exercise(A_DEX, FALSE); @@ -1209,27 +1619,43 @@ unsigned trflags; if (acidic(youmonst.data) || u.umonnum == PM_GELATINOUS_CUBE || u.umonnum == PM_FIRE_ELEMENTAL) { if (webmsgok) +#if 0 /*JP*/ You("%s %s spider web!", (u.umonnum == PM_FIRE_ELEMENTAL) ? "burn" : "dissolve", a_your[trap->madeby_u]); +#else + You("%s‚­‚à‚Ì‘ƒ‚ð%sI", + web_you[trap->madeby_u], + (u.umonnum == PM_FIRE_ELEMENTAL) ? "Ä‚¢‚½" + : "‚±‚È‚²‚È‚É‚µ‚½"); +#endif deltrap(trap); newsym(u.ux, u.uy); break; } if (webmsgok) +/*JP You("flow through %s spider web.", a_your[trap->madeby_u]); +*/ + You("%s‚­‚à‚Ì‘ƒ‚ð‚·‚é‚肃ʂ蔲‚¯‚½D", web_you[trap->madeby_u]); break; } if (webmaker(youmonst.data)) { if (webmsgok) +#if 0 /*JP*/ pline(trap->madeby_u ? "You take a walk on your web." : "There is a spider web here."); +#else + pline(trap->madeby_u ? "Ž©•ª‚Å’£‚Á‚½‚­‚à‚Ì‘ƒ‚̏ã‚ð•à‚¢‚½D" + : "‚±‚±‚É‚Í‚­‚à‚Ì‘ƒ‚ª‚ ‚éD"); +#endif break; } if (webmsgok) { char verbbuf[BUFSZ]; +#if 0 /*JP*/ if (forcetrap) { Strcpy(verbbuf, "are caught by"); } else if (u.usteed) { @@ -1242,6 +1668,20 @@ unsigned trflags; : locomotion(youmonst.data, "stumble")); } You("%s %s spider web!", verbbuf, a_your[trap->madeby_u]); +#else + if (forcetrap) { + Strcpy(verbbuf, "‚ ‚È‚½‚Í"); + } else if (u.usteed) { + Sprintf(verbbuf, "‚ ‚È‚½‚Æ%s", + x_monnam(u.usteed, steed_article, "‚©‚í‚¢‚»‚¤‚È", + SUPPRESS_SADDLE, FALSE)); + } else { + Sprintf(verbbuf, "‚ ‚È‚½‚Í%s", + Levitation ? (const char *) "•‚‚«‚È‚ª‚ç" + : jconj(locomotion(youmonst.data, "‚‚܂¸‚­"), "‚Ä")); + } + pline("%s%s‚­‚à‚Ì‘ƒ‚ɂЂÁ‚©‚©‚Á‚½I", verbbuf, web_you[trap->madeby_u]); +#endif } u.utraptype = TT_WEB; @@ -1291,7 +1731,10 @@ unsigned trflags; else { u.utrap = 0; if (webmsgok) +/*JP You("tear through %s web!", a_your[trap->madeby_u]); +*/ + You("%s‚­‚à‚Ì‘ƒ‚ðØ‚è—ô‚¢‚½I", web_you[trap->madeby_u]); deltrap(trap); newsym(u.ux, u.uy); /* get rid of trap symbol */ } @@ -1307,9 +1750,18 @@ unsigned trflags; if (!rn2(30)) { deltrap(trap); newsym(u.ux, u.uy); /* update position */ +/*JP You("are caught in a magical explosion!"); +*/ + You("–‚–@‚Ì”š”­‚𗁂т½I"); +/*JP losehp(rnd(10), "magical explosion", KILLED_BY_AN); +*/ + losehp(rnd(10), "–‚–@‚Ì”š”­‚𗁂тÄ", KILLED_BY_AN); +/*JP Your("body absorbs some of the magical energy!"); +*/ + Your("‘Ì‚Í–‚–@‚̃Gƒlƒ‹ƒM[‚ð­‚µ‹z‚¢‚Æ‚Á‚½I"); u.uen = (u.uenmax += 2); break; } else { @@ -1347,11 +1799,20 @@ unsigned trflags; if (Passes_walls) dmgval2 = (dmgval2 + 3) / 4; +#if 0 /*JP*/ You_feel((dmgval2 >= hp) ? "unbearably torpid!" : (dmgval2 >= hp / 4) ? "very lethargic." : "sluggish."); +#else + You_feel((dmgval2 >= hp) ? "‘Ï‚¦‚ç‚ê‚È‚¢‚Ù‚Ç–³‹C—Í‚É‚È‚Á‚½I" + : (dmgval2 >= hp / 4) ? "‚Æ‚Ä‚à‹C‚¾‚é‚­‚È‚Á‚½D" + : "‚à‚Ì‚®‚³‚È‹C•ª‚É‚È‚Á‚½D"); +#endif /* opposite of magical explosion */ +/*JP losehp(dmgval2, "anti-magic implosion", KILLED_BY_AN); +*/ + losehp(dmgval2, "”½–‚–@‚Ì“à•””j—ô‚Å", KILLED_BY_AN); } break; @@ -1360,23 +1821,41 @@ unsigned trflags; seetrap(trap); if (u.usteed) +/*JP Sprintf(verbbuf, "lead %s", +*/ + Sprintf(verbbuf, "%s‚Æ‚Æ‚à‚É”ò‚эž‚ñ‚¾", x_monnam(u.usteed, steed_article, (char *) 0, SUPPRESS_SADDLE, FALSE)); else +#if 0 /*JP*/ Sprintf(verbbuf, "%s", Levitation ? (const char *) "float" : locomotion(youmonst.data, "step")); +#else + Sprintf(verbbuf,"%s", + jpast(Levitation ? (const char *)"•‚‚«‚È‚ª‚ç”ò‚Ñ‚±‚Þ" + : locomotion(youmonst.data, "“¥‚ݍž‚Þ"))); +#endif +/*JP You("%s onto a polymorph trap!", verbbuf); +*/ + You("•Ï‰»‚Ì㩂É%sI", verbbuf); if (Antimagic || Unchanging) { shieldeff(u.ux, u.uy); +/*JP You_feel("momentarily different."); +*/ + You("ˆêuˆá‚Á‚½Š´‚¶‚ª‚µ‚½D"); /* Trap did nothing; don't remove it --KAA */ } else { (void) steedintrap(trap, (struct obj *) 0); deltrap(trap); /* delete trap before polymorph */ newsym(u.ux, u.uy); /* get rid of trap symbol */ +/*JP You_feel("a change coming over you."); +*/ + You("•Ï‰»‚ª–K‚ꂽ‚悤‚È‹C‚ª‚µ‚½D"); polyself(0); } break; @@ -1389,16 +1868,33 @@ unsigned trflags; if (!already_seen && rn2(3)) break; feeltrap(trap); +#if 0 /*JP*/ pline("%s %s in a pile of soil below you.", already_seen ? "There is" : "You discover", trap->madeby_u ? "the trigger of your mine" : "a trigger"); +#else + if(already_seen) + pline("‚±‚±‚É‚Í%s’n—‹‚Ì‹N”šƒXƒCƒbƒ`‚ª‚ ‚éD", + set_you[trap->madeby_u]); + else + You("‘«‰º‚Ì“y‚ÌŽR‚É%s’n—‹‚Ì‹N”šƒXƒCƒbƒ`‚ð‚݂‚¯‚½D", + set_you[trap->madeby_u]); +#endif if (already_seen && rn2(3)) break; +#if 0 /*JP*/ pline("KAABLAMM!!! %s %s%s off!", forcebungle ? "Your inept attempt sets" : "The air currents set", already_seen ? a_your[trap->madeby_u] : "", already_seen ? " land mine" : "it"); +#else + pline("‚¿‚ã‚ǁ[‚ñII%s%s%s‹N”šƒXƒCƒbƒ`‚ª”­“®‚µ‚½I", + forcebungle ? "•sŠí—p‚È‚¹‚¢‚Å" + : "‹ó‹C‚Ì—¬‚ê‚Å", + already_seen ? set_you[trap->madeby_u] : "", + already_seen ? "’n—‹‚Ì" : ""); +#endif } else { /* prevent landmine from killing steed, throwing you to * the ground, and you being affected again by the same @@ -1409,8 +1905,13 @@ unsigned trflags; if (recursive_mine) break; feeltrap(trap); +#if 0 /*JP*/ pline("KAABLAMM!!! You triggered %s land mine!", a_your[trap->madeby_u]); +#else + pline("‚¿‚ã‚ǁ[‚ñII%s’n—‹‚Ì‹N”šƒXƒCƒbƒ`‚𓥂ñ‚¾I", + set_you[trap->madeby_u]); +#endif if (u.usteed) steed_mid = u.usteed->m_id; recursive_mine = TRUE; @@ -1425,7 +1926,10 @@ unsigned trflags; if (steed_mid && saddle && !u.usteed) (void) keep_saddle_with_steedcorpse(steed_mid, fobj, saddle); newsym(u.ux, u.uy); /* update trap symbol */ +/*JP losehp(Maybe_Half_Phys(rnd(16)), "land mine", KILLED_BY_AN); +*/ + losehp(Maybe_Half_Phys(rnd(16)), "’n—‹‚𓥂ñ‚Å", KILLED_BY_AN); /* fall recursively into the pit... */ if ((trap = t_at(u.ux, u.uy)) != 0) dotrap(trap, RECURSIVETRAP); @@ -1437,12 +1941,18 @@ unsigned trflags; int style = ROLL | (trap->tseen ? LAUNCH_KNOWN : 0); feeltrap(trap); +/*JP pline("Click! You trigger a rolling boulder trap!"); +*/ + pline("ƒJƒ`ƒbI‚ ‚È‚½‚Í‹Šâ‚Ì㩂̃XƒCƒbƒ`‚𓥂ñ‚¾I"); if (!launch_obj(BOULDER, trap->launch.x, trap->launch.y, trap->launch2.x, trap->launch2.y, style)) { deltrap(trap); newsym(u.ux, u.uy); /* get rid of trap symbol */ +/*JP pline("Fortunately for you, no boulder was released."); +*/ + pline("‰^‚Ì‚æ‚¢‚±‚Æ‚ÉŠâ‚Í“]‚ª‚Á‚Ä‚±‚È‚©‚Á‚½D"); } break; } @@ -1471,16 +1981,26 @@ boolean noprefix; { static char tnbuf[12]; const char *tn, +#if 0 /*JP*/ *tnnames[12] = { "C note", "D flat", "D note", "E flat", "E note", "F note", "F sharp", "G note", "G sharp", "A note", "B flat", "B note" }; +#else + *tnnames[12] = { "ƒh", "ƒŒó", "ƒŒ", "ƒ~ó", + "ƒ~", "ƒtƒ@", "ƒtƒ@ò", "ƒ\", + "ƒ\ò", "ƒ‰", "ƒVó", "ƒV" }; +#endif tnbuf[0] = '\0'; tn = tnnames[trap->tnote]; +#if 0 /*JP*/ if (!noprefix) Sprintf(tnbuf, "%s ", (*tn == 'A' || *tn == 'E' || *tn == 'F') ? "an" : "a"); Sprintf(eos(tnbuf), "%s", tn); +#else + Sprintf(tnbuf, "%s‚̉¹", tn); +#endif return tnbuf; } @@ -1522,7 +2042,10 @@ struct obj *otmp; && !steed->msleeping && steed->mcanmove) { if (sleep_monst(steed, rnd(25), -1)) /* no in_sight check here; you can feel it even if blind */ +/*JP pline("%s suddenly falls asleep!", Monnam(steed)); +*/ + pline("%s‚͂Ƃ‚º‚ñ–°‚Á‚Ä‚µ‚Ü‚Á‚½I", Monnam(steed)); } steedhit = TRUE; break; @@ -1543,7 +2066,10 @@ struct obj *otmp; if (!can_saddle(steed) || !can_ride(steed)) dismount_steed(DISMOUNT_POLY); else +/*JP You("have to adjust yourself in the saddle on %s.", +*/ + You("%s‚̈Ƃ̏ã‚ōÀ‚è‚È‚¨‚µ‚½D", x_monnam(steed, ARTICLE_A, (char *) 0, SUPPRESS_SADDLE, FALSE)); } @@ -1707,8 +2233,13 @@ int style; switch (style) { case ROLL | LAUNCH_UNSEEN: if (otyp == BOULDER) { +#if 0 /*JP*/ You_hear(Hallucination ? "someone bowling." : "rumbling in the distance."); +#else + You_hear(Hallucination ? "’N‚©‚ªƒ{[ƒŠƒ“ƒO‚ð‚µ‚Ä‚¢‚鉹‚ð•·‚¢‚½D" + : "‰“‚­‚̃SƒƒSƒ‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D"); +#endif } style &= ~LAUNCH_UNSEEN; goto roll; @@ -1757,7 +2288,10 @@ int style; if ((mtmp = m_at(bhitpos.x, bhitpos.y)) != 0) { if (otyp == BOULDER && throws_rocks(mtmp->data)) { if (rn2(3)) { +/*JP pline("%s snatches the boulder.", Monnam(mtmp)); +*/ + pline("%s‚ÍŠâ‚ð‚‚©‚ÝŽæ‚Á‚½D", Monnam(mtmp)); singleobj->otrapped = 0; (void) mpickobj(mtmp, singleobj); used_up = TRUE; @@ -1790,11 +2324,19 @@ int style; switch (t->ttyp) { case LANDMINE: if (rn2(10) > 2) { +#if 0 /*JP*/ pline( "KAABLAMM!!!%s", cansee(bhitpos.x, bhitpos.y) ? " The rolling boulder triggers a land mine." : ""); +#else + pline( + "‚¿‚ã‚ǁ[‚ñII%s", + cansee(bhitpos.x, bhitpos.y) + ? "“]‚ª‚Á‚Ä‚«‚½Šâ‚ª’n—‹‚Ì‹N”šƒXƒCƒbƒ`‚𓥂ñ‚¾D" + : ""); +#endif deltrap(t); del_engr_at(bhitpos.x, bhitpos.y); place_object(singleobj, bhitpos.x, bhitpos.y); @@ -1813,9 +2355,15 @@ int style; case LEVEL_TELEP: case TELEP_TRAP: if (cansee(bhitpos.x, bhitpos.y)) +/*JP pline("Suddenly the rolling boulder disappears!"); +*/ + pline("“]‚ª‚Á‚Ä‚«‚½Šâ‚ª‚Ƃ‚º‚ñÁ‚¦‚½I"); else +/*JP You_hear("a rumbling stop abruptly."); +*/ + pline("ƒSƒƒSƒ‚Æ‚¢‚¤‰¹‚ª“Ë‘RŽ~‚Ü‚Á‚½D"); singleobj->otrapped = 0; if (t->ttyp == TELEP_TRAP) (void) rloco(singleobj); @@ -1842,7 +2390,10 @@ int style; /* the boulder won't be used up if there is a monster in the trap; stop rolling anyway */ x2 = bhitpos.x, y2 = bhitpos.y; /* stops here */ +/*JP if (flooreffects(singleobj, x2, y2, "fall")) { +*/ + if (flooreffects(singleobj, x2, y2, "—Ž‚¿‚é")) { used_up = TRUE; launch_drop_spot((struct obj *) 0, 0, 0); } @@ -1852,20 +2403,32 @@ int style; if (used_up || dist == -1) break; } +/*JP if (flooreffects(singleobj, bhitpos.x, bhitpos.y, "fall")) { +*/ + if (flooreffects(singleobj, bhitpos.x, bhitpos.y, "—Ž‚¿‚é")) { used_up = TRUE; launch_drop_spot((struct obj *) 0, 0, 0); break; } if (otyp == BOULDER && (otmp2 = sobj_at(BOULDER, bhitpos.x, bhitpos.y)) != 0) { +/*JP const char *bmsg = " as one boulder sets another in motion"; +*/ + const char *bmsg = "‚ЂƂ‚̊₪‘¼‚ÌŠâ‚ð“®‚©‚µ‚½‚©‚̂悤‚ȁC"; if (!isok(bhitpos.x + dx, bhitpos.y + dy) || !dist || IS_ROCK(levl[bhitpos.x + dx][bhitpos.y + dy].typ)) +/*JP bmsg = " as one boulder hits another"; +*/ + bmsg = "‚ЂƂ‚̊₪‘¼‚ÌŠâ‚É“–‚½‚Á‚½‚悤‚È"; +/*JP You_hear("a loud crash%s!", +*/ + You_hear("%s‘å‚«‚ȃSƒ“‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½I", cansee(bhitpos.x, bhitpos.y) ? bmsg : ""); obj_extract_self(otmp2); /* pass off the otrapped flag to the next boulder */ @@ -1879,7 +2442,10 @@ int style; } if (otyp == BOULDER && closed_door(bhitpos.x, bhitpos.y)) { if (cansee(bhitpos.x, bhitpos.y)) +/*JP pline_The("boulder crashes through a door."); +*/ + pline("Šâ‚Í”à‚ð”j‰ó‚µ‚½D"); levl[bhitpos.x][bhitpos.y].doormask = D_BROKEN; if (dist) unblock_point(bhitpos.x, bhitpos.y); @@ -2051,7 +2617,10 @@ register struct monst *mtmp; if (!rn2(2)) { mtmp->mtrapped = 0; if (canseemon(mtmp)) +/*JP pline("%s pulls free...", Monnam(mtmp)); +*/ + pline("%s‚͏•‚¯ã‚°‚ç‚ꂽD", Monnam(mtmp)); fill_pit(mtmp->mx, mtmp->my); } } else { @@ -2060,13 +2629,19 @@ register struct monst *mtmp; } else if (metallivorous(mptr)) { if (trap->ttyp == BEAR_TRAP) { if (canseemon(mtmp)) +/*JP pline("%s eats a bear trap!", Monnam(mtmp)); +*/ + pline("%s‚ÍŒF‚Ì㩂ðH‚ׂ½I", Monnam(mtmp)); deltrap(trap); mtmp->meating = 5; mtmp->mtrapped = 0; } else if (trap->ttyp == SPIKED_PIT) { if (canseemon(mtmp)) +/*JP pline("%s munches on some spikes!", Monnam(mtmp)); +*/ + pline("%s‚̓gƒQƒgƒQ‚ðH‚ׂ½I", Monnam(mtmp)); trap->ttyp = PIT; mtmp->meating = 5; } @@ -2104,8 +2679,13 @@ register struct monst *mtmp; case ARROW_TRAP: if (trap->once && trap->tseen && !rn2(15)) { if (in_sight && see_it) +#if 0 /*JP:T*/ pline("%s triggers a trap but nothing happens.", Monnam(mtmp)); +#else + pline("%s‚ª‚í‚È‚ð‹N“®‚³‚¹‚½‚ª‰½‚à‹N‚±‚ç‚È‚©‚Á‚½D", + Monnam(mtmp)); +#endif deltrap(trap); newsym(mtmp->mx, mtmp->my); break; @@ -2123,8 +2703,13 @@ register struct monst *mtmp; case DART_TRAP: if (trap->once && trap->tseen && !rn2(15)) { if (in_sight && see_it) +#if 0 /*JP:T*/ pline("%s triggers a trap but nothing happens.", Monnam(mtmp)); +#else + pline("%s‚ª‚í‚È‚ð‹N“®‚³‚¹‚½‚ª‰½‚à‹N‚±‚ç‚È‚©‚Á‚½D", + Monnam(mtmp)); +#endif deltrap(trap); newsym(mtmp->mx, mtmp->my); break; @@ -2144,7 +2729,10 @@ register struct monst *mtmp; if (trap->once && trap->tseen && !rn2(15)) { if (in_sight && see_it) pline( +/*JP "A trap door above %s opens, but nothing falls out!", +*/ + "%s‚̏ã‚Ì”à‚ªŠJ‚¢‚½‚ªC‰½‚à—Ž‚¿‚Ä‚±‚È‚©‚Á‚½I", mon_nam(mtmp)); deltrap(trap); newsym(mtmp->mx, mtmp->my); @@ -2165,15 +2753,26 @@ register struct monst *mtmp; /* stepped on a squeaky board */ if (in_sight) { if (!Deaf) { +#if 0 /*JP*/ pline("A board beneath %s squeaks %s loudly.", mon_nam(mtmp), trapnote(trap, 0)); +#else + pline("%s‚Ì‘«Œ³‚̔‚ª‘å‚«‚­%s‚É‚«‚µ‚ñ‚¾D", + mon_nam(mtmp), trapnote(trap, 0)); +#endif seetrap(trap); } else { +/*JP pline("%s stops momentarily and appears to cringe.", +*/ + pline("%s‚͈êuŽ~‚Ü‚Á‚Đg‚ð‚·‚­‚ß‚½‚悤‚¾D", Monnam(mtmp)); } } else +/*JP You_hear("a distant %s squeak.", trapnote(trap, 1)); +*/ + You_hear("‰“‚­‚Å%s‚Å‚«‚µ‚Þ‰¹‚ð•·‚¢‚½D", trapnote(trap, 1)); /* wake up nearby monsters */ wake_nearto(mtmp->mx, mtmp->my, 40); break; @@ -2182,18 +2781,31 @@ register struct monst *mtmp; && !is_whirly(mptr) && !unsolid(mptr)) { mtmp->mtrapped = 1; if (in_sight) { +#if 0 /*JP*/ pline("%s is caught in %s bear trap!", Monnam(mtmp), a_your[trap->madeby_u]); +#else + pline("%s‚Í%sŒF‚Ì㩂ɂ‚©‚Ü‚Á‚½I", Monnam(mtmp), + set_you[trap->madeby_u]); +#endif seetrap(trap); } else { if (mptr == &mons[PM_OWLBEAR] || mptr == &mons[PM_BUGBEAR]) +/*JP You_hear("the roaring of an angry bear!"); +*/ + You_hear("“{‚è‚Ì™ôšK‚ð•·‚¢‚½I"); } } else if (force_mintrap) { if (in_sight) { +#if 0 /*JP*/ pline("%s evades %s bear trap!", Monnam(mtmp), a_your[trap->madeby_u]); +#else + pline("%s‚Í%sŒF‚Ìã©‚ð‚½‚­‚Ý‚É”ð‚¯‚½I", Monnam(mtmp), + set_you[trap->madeby_u]); +#endif seetrap(trap); } } @@ -2204,7 +2816,10 @@ register struct monst *mtmp; if (!resists_sleep(mtmp) && !breathless(mptr) && !mtmp->msleeping && mtmp->mcanmove) { if (sleep_monst(mtmp, rnd(25), -1) && in_sight) { +/*JP pline("%s suddenly falls asleep!", Monnam(mtmp)); +*/ + pline("%s‚Í“Ë‘R–°‚è‚É—Ž‚¿‚½I", Monnam(mtmp)); seetrap(trap); } } @@ -2217,34 +2832,58 @@ register struct monst *mtmp; switch (rn2(5)) { case 0: if (in_sight) +#if 0 /*JP*/ pline("%s %s on the %s!", A_gush_of_water_hits, mon_nam(mtmp), mbodypart(mtmp, HEAD)); +#else + pline("…‚ª•¬o‚µ‚āC%s‚Ì%s‚É–½’†‚µ‚½I", + mon_nam(mtmp), mbodypart(mtmp, HEAD)); +#endif target = which_armor(mtmp, W_ARMH); (void) water_damage(target, helm_simple_name(target), TRUE); break; case 1: if (in_sight) +#if 0 /*JP*/ pline("%s %s's left %s!", A_gush_of_water_hits, mon_nam(mtmp), mbodypart(mtmp, ARM)); +#else + pline("…‚ª•¬o‚µ‚āC%s‚̍¶%s‚É–½’†‚µ‚½I", + mon_nam(mtmp), mbodypart(mtmp, ARM)); +#endif target = which_armor(mtmp, W_ARMS); +/*JP if (water_damage(target, "shield", TRUE) != ER_NOTHING) +*/ + if (water_damage(target, "‚", TRUE) != ER_NOTHING) break; target = MON_WEP(mtmp); if (target && bimanual(target)) (void) water_damage(target, 0, TRUE); glovecheck: target = which_armor(mtmp, W_ARMG); +/*JP (void) water_damage(target, "gauntlets", TRUE); +*/ + (void) water_damage(target, "¬Žè", TRUE); break; case 2: if (in_sight) +#if 0 /*JP*/ pline("%s %s's right %s!", A_gush_of_water_hits, mon_nam(mtmp), mbodypart(mtmp, ARM)); +#else + pline("…‚ª•¬o‚µ‚āC%s‚̉E%s‚É–½’†‚µ‚½I", + mon_nam(mtmp), mbodypart(mtmp, ARM)); +#endif (void) water_damage(MON_WEP(mtmp), 0, TRUE); goto glovecheck; default: if (in_sight) +/*JP pline("%s %s!", A_gush_of_water_hits, mon_nam(mtmp)); +*/ + pline("…‚ª•¬o‚µ‚āC%s‚É–½’†‚µ‚½I", mon_nam(mtmp)); for (otmp = mtmp->minvent; otmp; otmp = otmp->nobj) if (otmp->lamplit && (otmp->owornmask & (W_WEP | W_SWAPWEP)) == 0) @@ -2253,16 +2892,28 @@ register struct monst *mtmp; (void) water_damage(target, cloak_simple_name(target), TRUE); else if ((target = which_armor(mtmp, W_ARM)) != 0) +/*JP (void) water_damage(target, "armor", TRUE); +*/ + (void) water_damage(target, "ŠZ", TRUE); else if ((target = which_armor(mtmp, W_ARMU)) != 0) +/*JP (void) water_damage(target, "shirt", TRUE); +*/ + (void) water_damage(target, "ƒVƒƒƒc", TRUE); } if (mptr == &mons[PM_IRON_GOLEM]) { if (in_sight) +/*JP pline("%s falls to pieces!", Monnam(mtmp)); +*/ + pline("%s‚Í‚­‚¾‚¯‚¿‚Á‚½I", Monnam(mtmp)); else if (mtmp->mtame) +/*JP pline("May %s rust in peace.", mon_nam(mtmp)); +*/ + pline("%s‚æCˆÀ‚ç‚©‚ÉŽK‚Ñ‚ñŽ–‚ðD", mon_nam(mtmp)); mondied(mtmp); if (mtmp->mhp <= 0) trapkilled = TRUE; @@ -2274,16 +2925,29 @@ register struct monst *mtmp; case FIRE_TRAP: mfiretrap: if (in_sight) +#if 0 /*JP*/ pline("A %s erupts from the %s under %s!", tower_of_flame, surface(mtmp->mx, mtmp->my), mon_nam(mtmp)); +#else + pline("‰Î’Œ‚ª%s‚Ì‘«Œ³‚Ì%s‚©‚ç—§‚¿‚Ì‚Ú‚Á‚½I", + mon_nam(mtmp), surface(mtmp->mx,mtmp->my)); +#endif else if (see_it) /* evidently `mtmp' is invisible */ +#if 0 /*JP*/ You_see("a %s erupt from the %s!", tower_of_flame, surface(mtmp->mx, mtmp->my)); +#else + You("‰Î’Œ‚ª%s‚©‚琶‚¶‚é‚Ì‚ðŒ©‚½I", + surface(mtmp->mx,mtmp->my)); +#endif if (resists_fire(mtmp)) { if (in_sight) { shieldeff(mtmp->mx, mtmp->my); +/*JP pline("%s is uninjured.", Monnam(mtmp)); +*/ + pline("‚ªC%s‚͏‚‚©‚È‚¢D", Monnam(mtmp)); } } else { int num = d(2, 4), alt; @@ -2326,7 +2990,10 @@ register struct monst *mtmp; } if (burn_floor_objects(mtmp->mx, mtmp->my, see_it, FALSE) && !see_it && distu(mtmp->mx, mtmp->my) <= 3 * 3) +/*JP You("smell smoke."); +*/ + pline("‰Œ‚Ì“õ‚¢‚ª‚µ‚½D"); if (is_ice(mtmp->mx, mtmp->my)) melt_ice(mtmp->mx, mtmp->my, (char *) 0); if (see_it) @@ -2334,7 +3001,10 @@ register struct monst *mtmp; break; case PIT: case SPIKED_PIT: +/*JP fallverb = "falls"; +*/ + fallverb = "—Ž‚¿‚é"; if (is_flyer(mptr) || is_floater(mptr) || (mtmp->wormno && count_wsegs(mtmp) > 5) || is_clinger(mptr)) { @@ -2342,25 +3012,43 @@ register struct monst *mtmp; /* openfallingtrap; not inescapable here */ if (in_sight) { seetrap(trap); +/*JP pline("%s doesn't fall into the pit.", Monnam(mtmp)); +*/ + pline("%s‚Í—Ž‚µŒŠ‚É—Ž‚¿‚È‚©‚Á‚½D", Monnam(mtmp)); } break; /* inescapable = FALSE; */ } if (!inescapable) break; /* avoids trap */ +#if 0 /*JP*/ fallverb = "is dragged"; /* sokoban pit */ +#else + fallverb = "‚¸‚è—Ž‚¿‚é"; /* sokoban pit */ +#endif } if (!passes_walls(mptr)) mtmp->mtrapped = 1; if (in_sight) { +#if 0 /*JP*/ pline("%s %s into %s pit!", Monnam(mtmp), fallverb, a_your[trap->madeby_u]); +#else + pline("%s‚Í%s—Ž‚µŒŠ‚É%sI", Monnam(mtmp), + set_you[trap->madeby_u], jpast(fallverb)); +#endif if (mptr == &mons[PM_PIT_VIPER] || mptr == &mons[PM_PIT_FIEND]) +/*JP pline("How pitiful. Isn't that the pits?"); +*/ + pline("‚±‚Ì—Ž‚µŒŠ‚Í‚¢‚¢ŽdŽ–‚ð‚µ‚Ä‚¢‚éD"); seetrap(trap); } +/*JP mselftouch(mtmp, "Falling, ", FALSE); +*/ + mselftouch(mtmp, "—Ž‰º’†C", FALSE); if (mtmp->mhp <= 0 || thitm(0, mtmp, (struct obj *) 0, rnd((tt == PIT) ? 6 : 10), FALSE)) trapkilled = TRUE; @@ -2381,17 +3069,26 @@ register struct monst *mtmp; seetrap(trap); if (tt == TRAPDOOR) pline( +/*JP "A trap door opens, but %s doesn't fall through.", +*/ + "—Ž‚µ”à‚ªŠJ‚¢‚½‚ªC%s‚Í—Ž‚¿‚È‚©‚Á‚½D", mon_nam(mtmp)); else /* (tt == HOLE) */ +/*JP pline("%s doesn't fall through the hole.", +*/ + pline("%s‚ÍŒŠ‚É—Ž‚¿‚È‚©‚Á‚½D", Monnam(mtmp)); } break; /* inescapable = FALSE; */ } if (inescapable) { /* sokoban hole */ if (in_sight) { +/*JP pline("%s seems to be yanked down!", Monnam(mtmp)); +*/ + pline("%s‚͈ø‚«—Ž‚³‚ꂽ‚悤‚¾I", Monnam(mtmp)); /* suppress message in mlevel_tele_trap() */ in_sight = FALSE; seetrap(trap); @@ -2420,18 +3117,31 @@ register struct monst *mtmp; if (acidic(mptr) || mptr == &mons[PM_GELATINOUS_CUBE] || mptr == &mons[PM_FIRE_ELEMENTAL]) { if (in_sight) +#if 0 /*JP*/ pline("%s %s %s spider web!", Monnam(mtmp), (mptr == &mons[PM_FIRE_ELEMENTAL]) ? "burns" : "dissolves", a_your[trap->madeby_u]); +#else + pline("%s%s‚­‚à‚Ì‘ƒ‚ð%sI", + Monnam(mtmp), + web_you[trap->madeby_u], + (mptr == &mons[PM_FIRE_ELEMENTAL]) ? + "Ä‚¢‚½" : "‚±‚È‚²‚È‚É‚µ‚½"); +#endif deltrap(trap); newsym(mtmp->mx, mtmp->my); break; } if (in_sight) { +#if 0 /*JP*/ pline("%s flows through %s spider web.", Monnam(mtmp), a_your[trap->madeby_u]); +#else + pline("%s‚Í%s‚­‚à‚Ì‘ƒ‚ð‚·‚é‚肃ʂ蔲‚¯‚½D", Monnam(mtmp), + web_you[trap->madeby_u]); +#endif seetrap(trap); } break; @@ -2441,7 +3151,10 @@ register struct monst *mtmp; case PM_OWLBEAR: /* Eric Backus */ case PM_BUGBEAR: if (!in_sight) { +/*JP You_hear("the roaring of a confused bear!"); +*/ + You_hear("¬—‚Ì™ôšK‚ð•·‚¢‚½I"); mtmp->mtrapped = 1; break; } @@ -2453,8 +3166,13 @@ register struct monst *mtmp; || (mtmp->wormno && count_wsegs(mtmp) > 5)) { tear_web = TRUE; } else if (in_sight) { +#if 0 /*JP*/ pline("%s is caught in %s spider web.", Monnam(mtmp), a_your[trap->madeby_u]); +#else + pline("%s‚Í%s‚­‚à‚Ì‘ƒ‚ɂ‚©‚Ü‚Á‚½D", Monnam(mtmp), + web_you[trap->madeby_u]); +#endif seetrap(trap); } mtmp->mtrapped = tear_web ? 0 : 1; @@ -2478,14 +3196,24 @@ register struct monst *mtmp; } if (tear_web) { if (in_sight) +#if 0 /*JP*/ pline("%s tears through %s spider web!", Monnam(mtmp), a_your[trap->madeby_u]); +#else + pline("%s‚Í%s‚­‚à‚Ì‘ƒ‚ðˆø‚«—ô‚¢‚½I", Monnam(mtmp), + web_you[trap->madeby_u]); +#endif deltrap(trap); newsym(mtmp->mx, mtmp->my); } else if (force_mintrap && !mtmp->mtrapped) { if (in_sight) { +#if 0 /*JP*/ pline("%s avoids %s spider web!", Monnam(mtmp), a_your[trap->madeby_u]); +#else + pline("%s‚Í%s‚­‚à‚Ì‘ƒ‚ð”ð‚¯‚½I", Monnam(mtmp), + web_you[trap->madeby_u]); +#endif seetrap(trap); } } @@ -2505,7 +3233,10 @@ register struct monst *mtmp; mtmp->mspec_used += d(2, 2); if (in_sight) { seetrap(trap); +/*JP pline("%s seems lethargic.", Monnam(mtmp)); +*/ + pline("%sˆêu–³‹C—ÍŠ´‚ðŠ´‚¶‚½D", Monnam(mtmp)); } } } else { /* take some damage */ @@ -2528,7 +3259,10 @@ register struct monst *mtmp; if ((mtmp->mhp -= dmgval2) <= 0) monkilled(mtmp, in_sight +/*JP ? "compression from an anti-magic field" +*/ + ? "”½–‚–@‹óŠÔ‚̈³k" : (const char *) 0, -AD_MAGM); if (mtmp->mhp <= 0) @@ -2544,7 +3278,10 @@ register struct monst *mtmp; boolean already_seen = trap->tseen; if (in_sight && !already_seen) { +/*JP pline("A trigger appears in a pile of soil below %s.", +*/ + pline("%s‚Ì‘«Œ³‚Ì“y‚ÌŽR‚É‹N”šƒXƒCƒbƒ`‚ªŒ»‚í‚ꂽD", mon_nam(mtmp)); seetrap(trap); } @@ -2552,16 +3289,28 @@ register struct monst *mtmp; break; if (in_sight) { newsym(mtmp->mx, mtmp->my); +#if 0 /*JP*/ pline_The("air currents set %s off!", already_seen ? "a land mine" : "it"); +#else + pline("‹ó‹C‚Ì—¬‚ê‚ŃXƒCƒbƒ`‚ª“ü‚Á‚½I"); +#endif } } else if (in_sight) { newsym(mtmp->mx, mtmp->my); +#if 0 /*JP*/ pline("KAABLAMM!!! %s triggers %s land mine!", Monnam(mtmp), a_your[trap->madeby_u]); +#else + pline("‚¿‚ã‚ǁ[‚ñII%s‚Í%s’n—‹‚Ì‹N”šƒXƒCƒbƒ`‚𓥂ñ‚¾I", Monnam(mtmp), + set_you[trap->madeby_u]); +#endif } if (!in_sight) +/*JP pline("Kaablamm! You hear an explosion in the distance!"); +*/ + pline("‚¿‚ã‚ǁ[‚ñI‚ ‚È‚½‚͉“•û‚Ì”š”­‰¹‚ð•·‚¢‚½I"); blow_up_landmine(trap); /* explosion might have destroyed a drawbridge; don't dish out more damage if monster is already dead */ @@ -2579,7 +3328,10 @@ register struct monst *mtmp; trapkilled = TRUE; if (unconscious()) { multi = -1; +/*JP nomovemsg = "The explosion awakens you!"; +*/ + nomovemsg = "”š”­‚Å‚ ‚È‚½‚Í‹N‚«‚½I"; } break; case POLY_TRAP: @@ -2599,8 +3351,13 @@ register struct monst *mtmp; newsym(mtmp->mx, mtmp->my); if (in_sight) +#if 0 /*JP*/ pline("Click! %s triggers %s.", Monnam(mtmp), trap->tseen ? "a rolling boulder trap" : something); +#else + pline("ƒJƒ`ƒbI%s‚Í%s‚̃XƒCƒbƒ`‚𓥂ñ‚¾I", Monnam(mtmp), + trap->tseen ? "—ŽŠâ‚Ìã©" : "‰½‚©"); +#endif if (launch_obj(BOULDER, trap->launch.x, trap->launch.y, trap->launch2.x, trap->launch2.y, style)) { if (in_sight) @@ -2616,11 +3373,19 @@ register struct monst *mtmp; case VIBRATING_SQUARE: if (see_it && !Blind) { if (in_sight) +#if 0 /*JP*/ pline("You see a strange vibration beneath %s %s.", s_suffix(mon_nam(mtmp)), makeplural(mbodypart(mtmp, FOOT))); +#else + pline("%s‚Ì%s‚ª•sŽv‹c‚ɐU“®‚µ‚Ä‚¢‚é‚Ì‚ðŒ©‚½D", + mon_nam(mtmp), mbodypart(mtmp, FOOT)); +#endif else +/*JP pline("You see the ground vibrate in the distance."); +*/ + pline("‰“‚­‚Å’n–Ê‚ªU“®‚µ‚Ä‚¢‚é‚Ì‚ðŒ©‚½D"); seetrap(trap); } break; @@ -2643,7 +3408,10 @@ const char *str; return; if (poly_when_stoned(youmonst.data) && polymon(PM_STONE_GOLEM)) return; +/*JP You("turn to stone..."); +*/ + You("Î‚É‚È‚Á‚½DDD"); killer.format = KILLED_BY; if (str != killer.name) Strcpy(killer.name, str ? str : ""); @@ -2667,7 +3435,10 @@ boolean byplayer; mon_adjust_speed(mon, -3, (struct obj *) 0); if (cansee(mon->mx, mon->my)) +/*JP pline("%s turns to stone.", Monnam(mon)); +*/ + pline("%s‚͐΂ɂȂÁ‚½D", Monnam(mon)); if (byplayer) { stoned = TRUE; xkilled(mon, 0); @@ -2683,8 +3454,14 @@ const char *arg; if (uwep && uwep->otyp == CORPSE && touch_petrifies(&mons[uwep->corpsenm]) && !Stone_resistance) { +/*JP pline("%s touch the %s corpse.", arg, mons[uwep->corpsenm].mname); +*/ + pline("%s%s‚ÌŽ€‘̂ɐG‚Á‚½D", arg, mons[uwep->corpsenm].mname); +/*JP Sprintf(kbuf, "%s corpse", an(mons[uwep->corpsenm].mname)); +*/ + Sprintf(kbuf, "%s‚ÌŽ€‘Ì‚Å", mons[uwep->corpsenm].mname); instapetrify(kbuf); /* life-saved; unwield the corpse if we can't handle it */ if (!uarmg && !Stone_resistance) @@ -2694,8 +3471,14 @@ const char *arg; allow two-weapon combat when either weapon is a corpse] */ if (u.twoweap && uswapwep && uswapwep->otyp == CORPSE && touch_petrifies(&mons[uswapwep->corpsenm]) && !Stone_resistance) { +/*JP pline("%s touch the %s corpse.", arg, mons[uswapwep->corpsenm].mname); +*/ + pline("%s%s‚ÌŽ€‘̂ɐG‚Á‚½D", arg, mons[uswapwep->corpsenm].mname); +/*JP Sprintf(kbuf, "%s corpse", an(mons[uswapwep->corpsenm].mname)); +*/ + Sprintf(kbuf, "%s‚ÌŽ€‘Ì‚Å", mons[uswapwep->corpsenm].mname); instapetrify(kbuf); /* life-saved; unwield the corpse */ if (!uarmg && !Stone_resistance) @@ -2714,9 +3497,15 @@ boolean byplayer; if (mwep && mwep->otyp == CORPSE && touch_petrifies(&mons[mwep->corpsenm]) && !resists_ston(mon)) { if (cansee(mon->mx, mon->my)) { +#if 0 /*JP*/ pline("%s%s touches %s.", arg ? arg : "", arg ? mon_nam(mon) : Monnam(mon), corpse_xname(mwep, (const char *) 0, CXN_PFX_THE)); +#else + pline("%s%s‚Í%s‚ÌŽ€‘̂ɐG‚Á‚½D", arg ? arg : "", + arg ? mon_nam(mon) : Monnam(mon), + corpse_xname(mwep, (const char *) 0, CXN_PFX_THE)); +#endif } minstapetrify(mon, byplayer); /* if life-saved, might not be able to continue wielding */ @@ -2732,39 +3521,73 @@ float_up() if (u.utrap) { if (u.utraptype == TT_PIT) { u.utrap = 0; +/*JP You("float up, out of the pit!"); +*/ + You("•‚‚«ã‚ª‚Á‚āC—Ž‚µŒŠ‚©‚ço‚½I"); vision_full_recalc = 1; /* vision limits change */ fill_pit(u.ux, u.uy); } else if (u.utraptype == TT_INFLOOR) { +/*JP Your("body pulls upward, but your %s are still stuck.", +*/ + Your("‘͈̂ø‚«ã‚°‚ç‚ꂽD‚µ‚©‚µ%s‚Í‚Ü‚¾‚Í‚Ü‚Á‚Ä‚¢‚éD", makeplural(body_part(LEG))); } else { +/*JP You("float up, only your %s is still stuck.", body_part(LEG)); +*/ + You("•‚‚«o‚½D%s‚¾‚¯‚ª‚Í‚Ü‚Á‚Ä‚¢‚éD", body_part(LEG)); } #if 0 } else if (Is_waterlevel(&u.uz)) { +/*JP pline("It feels as though you've lost some weight."); +*/ + You("‚Ü‚é‚ő̏d‚ªŒ¸‚Á‚½‚悤‚ÉŠ´‚¶‚½D"); #endif } else if (u.uinwater) { spoteffects(TRUE); } else if (u.uswallow) { +#if 0 /*JP*/ You(is_animal(u.ustuck->data) ? "float away from the %s." : "spiral up into %s.", is_animal(u.ustuck->data) ? surface(u.ux, u.uy) : mon_nam(u.ustuck)); +#else + You(is_animal(u.ustuck->data) ? "%s‚Ì’†‚Å•‚‚¢‚½D" + : "%s‚Ì’†‚Å‚®‚é‚®‚é‰ñ“]‚µ‚½D", + is_animal(u.ustuck->data) ? surface(u.ux, u.uy) + : mon_nam(u.ustuck)); +#endif } else if (Hallucination) { +/*JP pline("Up, up, and awaaaay! You're walking on air!"); +*/ + pline("ã‚êCã‚êCã‚ê‚¥‚¥‚¥‚¥I‚ ‚È‚½‚͋󒆂ð•à‚¢‚Ä‚¢‚éI"); } else if (Is_airlevel(&u.uz)) { +/*JP You("gain control over your movements."); +*/ + You("‚¤‚Ü‚­•à‚¯‚é‚悤‚É‚È‚Á‚½D"); } else { +/*JP You("start to float in the air!"); +*/ + You("‹ó’†‚É•‚‚«‚Í‚¶‚ß‚½I"); } if (u.usteed && !is_floater(u.usteed->data) && !is_flyer(u.usteed->data)) { if (Lev_at_will) { +/*JP pline("%s magically floats up!", Monnam(u.usteed)); +*/ + pline("%s‚Í–‚–@‚Ì—Í‚Å•‚‚¢‚½I", Monnam(u.usteed)); } else { +/*JP You("cannot stay on %s.", mon_nam(u.usteed)); +*/ + You("%s‚̏ã‚ɏæ‚Á‚Ä‚¢‚ç‚ê‚È‚¢D", mon_nam(u.usteed)); dismount_steed(DISMOUNT_GENERIC); } } @@ -2784,7 +3607,10 @@ int x, y; if ((t = t_at(x, y)) && ((t->ttyp == PIT) || (t->ttyp == SPIKED_PIT)) && (otmp = sobj_at(BOULDER, x, y))) { obj_extract_self(otmp); +/*JP (void) flooreffects(otmp, x, y, "settle"); +*/ + (void) flooreffects(otmp, x, y, "‚Í‚Ü‚é"); } } @@ -2817,8 +3643,12 @@ long hmask, emask; /* might cancel timeout */ } } if (u.uswallow) { +#if 0 /*JP*/ You("float down, but you are still %s.", is_animal(u.ustuck->data) ? "swallowed" : "engulfed"); +#else + You("’…’n‚µ‚½‚ªC‚Ü‚¾ˆù‚ݍž‚܂ꂽ‚Ü‚Ü‚¾D"); +#endif return 1; } @@ -2839,11 +3669,21 @@ long hmask, emask; /* might cancel timeout */ if (!Flying) { if (!u.uswallow && u.ustuck) { if (sticks(youmonst.data)) +#if 0 /*JP:T*/ You("aren't able to maintain your hold on %s.", mon_nam(u.ustuck)); +#else + You("%s‚ð‚‚©‚Ü‚¦‘±‚¯‚Ä‚¢‚ç‚ê‚È‚­‚È‚Á‚½D", + mon_nam(u.ustuck)); +#endif else +#if 0 /*JP:T*/ pline("Startled, %s can no longer hold you!", mon_nam(u.ustuck)); +#else + pline("%s‚Í‹Á‚¢‚Ä‚ ‚È‚½‚ð•ú‚µ‚Ä‚µ‚Ü‚Á‚½I", + mon_nam(u.ustuck)); +#endif u.ustuck = 0; } /* kludge alert: @@ -2865,9 +3705,15 @@ long hmask, emask; /* might cancel timeout */ if (!trap) { trap = t_at(u.ux, u.uy); if (Is_airlevel(&u.uz)) { +/*JP You("begin to tumble in place."); +*/ + You("‚»‚̏ê‚łЂÁ‚­‚è•Ô‚è‚Í‚¶‚ß‚½D"); } else if (Is_waterlevel(&u.uz) && !no_msg) { +/*JP You_feel("heavier."); +*/ + You("d‚­‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½D"); /* u.uinwater msgs already in spoteffects()/drown() */ } else if (!u.uinwater && !no_msg) { if (!(emask & W_SADDLE)) { @@ -2878,13 +3724,25 @@ long hmask, emask; /* might cancel timeout */ * once levitation ceases knocks you off your feet. */ if (Hallucination) +/*JP pline("Bummer! You've crashed."); +*/ + pline("‚â‚ß‚Ä‚¥I‚ ‚È‚½‚Í’@‚«‚‚¯‚ç‚ꂽD"); else +/*JP You("fall over."); +*/ + You("‚‚܂¢‚½D"); +/*JP losehp(rnd(2), "dangerous winds", KILLED_BY); +*/ + losehp(rnd(2), "ŠëŒ¯‚È•—‚Å", KILLED_BY); if (u.usteed) dismount_steed(DISMOUNT_FELL); +/*JP selftouch("As you fall, you"); +*/ + selftouch("—Ž‚¿‚È‚ª‚çC‚ ‚È‚½‚Í"); } else if (u.usteed && (is_floater(u.usteed->data) || is_flyer(u.usteed->data))) { You("settle more firmly in the saddle."); @@ -2894,7 +3752,10 @@ long hmask, emask; /* might cancel timeout */ ? "splashed down" : "hit the ground"); } else { +/*JP You("float gently to the %s.", surface(u.ux, u.uy)); +*/ + You("Ã‚©‚É%s‚Ü‚Å’H‚è‚‚¢‚½D", surface(u.ux, u.uy)); } } } @@ -2979,16 +3840,30 @@ struct obj *box; /* null for floor trap */ */ if ((box && !carried(box)) ? is_pool(box->ox, box->oy) : Underwater) { +/*JP pline("A cascade of steamy bubbles erupts from %s!", +*/ + pline("ö‹C‚Ì–A‚ª%s‚©‚炵‚ã[‚Á‚Æ”­¶‚µ‚½I", the(box ? xname(box) : surface(u.ux, u.uy))); if (Fire_resistance) +/*JP You("are uninjured."); +*/ + You("‚‚©‚È‚¢D"); else +/*JP losehp(rnd(3), "boiling water", KILLED_BY); +*/ + losehp(rnd(3), "•¦“«‚µ‚½…‚Å", KILLED_BY); return; } +#if 0 /*JP*/ pline("A %s %s from %s!", tower_of_flame, box ? "bursts" : "erupts", the(box ? xname(box) : surface(u.ux, u.uy))); +#else + pline("‰Î’Œ‚ª%s‚©‚ç%sI", box ? xname(box) : surface(u.ux,u.uy), + box ? "‚«o‚µ‚½" : "—§‚¿‚Ì‚Ú‚Á‚½"); +#endif if (Fire_resistance) { shieldeff(u.ux, u.uy); num = rn2(2); @@ -3021,9 +3896,16 @@ struct obj *box; /* null for floor trap */ u.uhpmax -= rn2(min(u.uhpmax, num + 1)), context.botl = 1; } if (!num) +/*JP You("are uninjured."); +*/ + You("‚‚©‚È‚¢D"); else +#if 0 /*JP*/ losehp(num, tower_of_flame, KILLED_BY_AN); /* fire damage */ +#else + losehp(num, "‰Î’Œ‚Å", KILLED_BY_AN); /* fire damage */ +#endif burn_away_slime(); if (burnarmor(&youmonst) || rn2(3)) { @@ -3032,7 +3914,10 @@ struct obj *box; /* null for floor trap */ destroy_item(POTION_CLASS, AD_FIRE); } if (!box && burn_floor_objects(u.ux, u.uy, see_it, TRUE) && !see_it) +/*JP You("smell paper burning."); +*/ + You("Ž†‚Ì‚±‚°‚é“õ‚¢‚ª‚µ‚½D"); if (is_ice(u.ux, u.uy)) melt_ice(u.ux, u.uy, (char *) 0); } @@ -3049,14 +3934,23 @@ domagictrap() register int cnt = rnd(4); if (!resists_blnd(&youmonst)) { +/*JP You("are momentarily blinded by a flash of light!"); +*/ + You("‚܂΂䂢Œõ‚ňêu–Ú‚ª‚­‚ç‚ñ‚¾I"); make_blinded((long) rn1(5, 10), FALSE); if (!Blind) Your1(vision_clears); } else if (!Blind) { +/*JP You_see("a flash of light!"); +*/ + You("‚܂΂䂢Œõ‚𗁂т½I"); } else +/*JP You_hear("a deafening roar!"); +*/ + You_hear("Ž¨‚ð‚‚ñ‚´‚­‚悤‚È™ôšK‚ð•·‚¢‚½I"); incr_itimeout(&HDeaf, rn1(20, 30)); while (cnt--) (void) makemon((struct permonst *) 0, u.ux, u.uy, NO_MM_FLAGS); @@ -3072,35 +3966,67 @@ domagictrap() /* odd feelings */ case 13: +/*JP pline("A shiver runs up and down your %s!", body_part(SPINE)); +*/ + pline("k‚¦‚ª‚ ‚È‚½‚Ì%s‚ð‘–‚Á‚½I", body_part(SPINE)); break; case 14: +#if 0 /*JP*/ You_hear(Hallucination ? "the moon howling at you." : "distant howling."); +#else + You_hear(Hallucination ? "ŒŽ‚ª–i‚¦‚Ä‚¢‚é‚Ì‚ð•·‚¢‚½D" + : "‰“•û‚̉“–i‚ð•·‚¢‚½D"); +#endif break; case 15: if (on_level(&u.uz, &qstart_level)) +#if 0 /*JP*/ You_feel( "%slike the prodigal son.", (flags.female || (Upolyd && is_neuter(youmonst.data))) ? "oddly " : ""); +#else /*JP ¹‘‚̃‹ƒJ“`‚æ‚è */ + You("%s•ú“ ‘§Žq‚̂悤‚É‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½D", + (flags.female || (Upolyd && is_neuter(youmonst.data))) + ? "ˆÙí‚É" + : ""); +#endif else +#if 0 /*JP*/ You("suddenly yearn for %s.", Hallucination ? "Cleveland" : (In_quest(&u.uz) || at_dgn_entrance("The Quest")) ? "your nearby homeland" : "your distant homeland"); +#else + You("“Ë‘R%s‚ª—ö‚µ‚­‚È‚Á‚½D", + Hallucination ? "ÂX" + : (In_quest(&u.uz) || at_dgn_entrance("ƒNƒGƒXƒg")) + ? "‚·‚®‚»‚±‚É‚ ‚éŒÌ‹½" + : "‚Í‚é‚©‚©‚È‚½‚̌̋½"); +#endif break; case 16: +/*JP Your("pack shakes violently!"); +*/ + Your("‘Ü‚ÍŒƒ‚µ‚­—h‚ꂽI"); break; case 17: +/*JP You(Hallucination ? "smell hamburgers." : "smell charred flesh."); +*/ + You(Hallucination ? "ƒnƒ“ƒo[ƒK[‚Ì“õ‚¢‚ª‚µ‚½D" : "•Å‚°‚Ì“÷‚Ì“õ‚¢‚ª‚µ‚½D"); break; case 18: +/*JP You_feel("tired."); +*/ + You("”æ‚ê‚ðŠ´‚¶‚½D"); break; /* very occasionally something nice happens. */ @@ -3178,10 +4104,16 @@ xchar x, y; return FALSE; /* Container is burnt up - dump contents out */ if (in_sight) +/*JP pline("%s catches fire and burns.", Yname2(obj)); +*/ + pline("%s‚͉΂ª‚‚¢‚Ä”R‚¦‚½D", Yname2(obj)); if (Has_contents(obj)) { if (in_sight) +/*JP pline("Its contents fall out."); +*/ + pline("’†g‚ªo‚Ä‚«‚½D"); for (otmp = obj->cobj; otmp; otmp = ncobj) { ncobj = otmp->nobj; obj_extract_self(otmp); @@ -3204,21 +4136,34 @@ xchar x, y; return FALSE; if (obj->otyp == SPE_BOOK_OF_THE_DEAD) { if (in_sight) +/*JP pline("Smoke rises from %s.", the(xname(obj))); +*/ + pline("%s‚©‚牌‚ª‚ ‚ª‚Á‚½D", the(xname(obj))); return FALSE; } dindx = (obj->oclass == SCROLL_CLASS) ? 3 : 4; if (in_sight) +#if 0 /*JP*/ pline("%s %s.", Yname2(obj), destroy_strings[dindx][(obj->quan > 1L)]); +#else + pline("%s‚Í%sD", Yname2(obj), + destroy_strings[dindx][(obj->quan > 1L)]); +#endif setnotworn(obj); delobj(obj); return TRUE; } else if (obj->oclass == POTION_CLASS) { dindx = (obj->otyp != POT_OIL) ? 1 : 2; if (in_sight) +#if 0 /*JP*/ pline("%s %s.", Yname2(obj), destroy_strings[dindx][(obj->quan > 1L)]); +#else + pline("%s‚Í%sD", Yname2(obj), + destroy_strings[dindx][(obj->quan > 1L)]); +#endif setnotworn(obj); delobj(obj); return TRUE; @@ -3249,7 +4194,10 @@ xchar x, y; } if (num && (Blind && !couldsee(x, y))) +/*JP You("smell smoke."); +*/ + You("‰Œ‚Ì‚É‚¨‚¢‚ª‚µ‚½D"); return num; } @@ -3277,10 +4225,18 @@ struct obj *obj; ) { if (!Blind) { if (victim == &youmonst) +/*JP pline("Your %s.", aobjnam(obj, "fade")); +*/ + pline("%s‚Ì•¶Žš‚Í”–‚ꂽD", xname(obj)); else if (vismon) +#if 0 /*JP*/ pline("%s %s.", s_suffix(Monnam(victim)), aobjnam(obj, "fade")); +#else + pline("%s‚Ì%s‚Ì•¶Žš‚Í”–‚ꂽD", Monnam(victim), + xname(obj)); +#endif } } obj->otyp = SCR_BLANK_PAPER; @@ -3333,7 +4289,10 @@ boolean force; } else if (Is_container(obj) && !Is_box(obj) && (obj->otyp != OILSKIN_SACK || (obj->cursed && !rn2(3)))) { if (carried(obj)) +/*JP pline("Water gets into your %s!", ostr); +*/ + pline("…‚ª%s‚Ì’†‚É“ü‚Á‚½I", ostr); water_damage_chain(obj->cobj, FALSE); return ER_NOTHING; @@ -3350,7 +4309,10 @@ boolean force; return 0; #endif if (carried(obj)) +/*JP pline("Your %s %s.", ostr, vtense(ostr, "fade")); +*/ + pline("%s‚Ì•¶Žš‚Í”–‚ꂽD", ostr); obj->otyp = SCR_BLANK_PAPER; obj->dknown = 0; @@ -3360,12 +4322,18 @@ boolean force; return ER_DAMAGED; } else if (obj->oclass == SPBOOK_CLASS) { if (obj->otyp == SPE_BOOK_OF_THE_DEAD) { +/*JP pline("Steam rises from %s.", the(xname(obj))); +*/ + pline("ö‹C‚ª%s‚©‚ç—§‚¿‚Ì‚Ú‚Á‚½D", xname(obj)); return 0; } if (carried(obj)) +/*JP pline("Your %s %s.", ostr, vtense(ostr, "fade")); +*/ + pline("%s‚Ì•¶Žš‚Í”–‚ꂽD", ostr); if (obj->otyp == SPE_NOVEL) { obj->novelidx = 0; @@ -3399,10 +4367,14 @@ boolean force; * variant. */ bufp = simpleonames(obj); +#if 0 /*JP*/ pline("%s %s %s!", /* "A potion explodes!" */ !exploded ? (one ? "A" : "Some") : (one ? "Another" : "More"), bufp, vtense(bufp, "explode")); +#else + pline("–ò•r‚ª”š”­‚µ‚½I"); +#endif if (acid_ctx.ctx_valid) { if (obj->dknown) acid_ctx.dkn_boom++; @@ -3416,7 +4388,10 @@ boolean force; return ER_DESTROYED; } else if (obj->odiluted) { if (carried(obj)) +/*JP pline("Your %s %s further.", ostr, vtense(ostr, "dilute")); +*/ + pline("%s‚Í‚³‚ç‚É”–‚Ü‚Á‚½D", ostr); obj->otyp = POT_WATER; obj->dknown = 0; @@ -3427,7 +4402,10 @@ boolean force; return ER_DAMAGED; } else if (obj->otyp != POT_WATER) { if (carried(obj)) +/*JP pline("Your %s %s.", ostr, vtense(ostr, "dilute")); +*/ + pline("%s‚Í”–‚Ü‚Á‚½D", ostr); obj->odiluted++; if (carried(obj)) @@ -3533,10 +4511,18 @@ drown() } if (!u.uinwater) { +#if 0 /*JP*/ You("%s into the water%c", Is_waterlevel(&u.uz) ? "plunge" : "fall", Amphibious || Swimming ? '.' : '!'); +#else + You("…‚Ì’†‚É%s%s", Is_waterlevel(&u.uz) ? "”ò‚Ñ‚±‚ñ‚¾" : "—Ž‚¿‚½", + Amphibious || Swimming ? "D" : "I"); +#endif if (!Swimming && !Is_waterlevel(&u.uz)) +/*JP You("sink like %s.", Hallucination ? "the Titanic" : "a rock"); +*/ + You("%s‚̂悤‚É’¾‚ñ‚¾D", Hallucination ? "ƒ^ƒCƒ^ƒjƒbƒN†" : "Šâ"); } water_damage_chain(invent, FALSE); @@ -3544,30 +4530,49 @@ drown() if (u.umonnum == PM_GREMLIN && rn2(3)) (void) split_mon(&youmonst, (struct monst *) 0); else if (u.umonnum == PM_IRON_GOLEM) { +/*JP You("rust!"); +*/ + You("ŽK‚Ñ‚½I"); i = Maybe_Half_Phys(d(2, 6)); if (u.mhmax > i) u.mhmax -= i; +/*JP losehp(i, "rusting away", KILLED_BY); +*/ + losehp(i, "Š®‘S‚ÉŽK‚Ñ‚Ä", KILLED_BY); } if (inpool_ok) return FALSE; if ((i = number_leashed()) > 0) { +#if 0 /*JP*/ pline_The("leash%s slip%s loose.", (i > 1) ? "es" : "", (i > 1) ? "" : "s"); +#else + pline("•R‚ª‚ä‚é‚ñ‚¾D"); +#endif unleash_all(); } if (Amphibious || Swimming) { if (Amphibious) { if (flags.verbose) +/*JP pline("But you aren't drowning."); +*/ + pline("‚µ‚©‚µC‚ ‚È‚½‚Í“M‚ê‚È‚©‚Á‚½D"); if (!Is_waterlevel(&u.uz)) { if (Hallucination) +/*JP Your("keel hits the bottom."); +*/ + You("’ê‚Ƀj[ƒhƒƒbƒv‚ðŒˆ‚ß‚½D"); else +/*JP You("touch bottom."); +*/ + You("’ê‚ɂ‚¢‚½D"); } } if (Punished) { @@ -3582,13 +4587,20 @@ drown() } if ((Teleportation || can_teleport(youmonst.data)) && !Unaware && (Teleport_control || rn2(3) < Luck + 2)) { +#if 0 /*JP*/ You("attempt a teleport spell."); /* utcsri!carroll */ +#else + You("uŠÔˆÚ“®‚ÌŽô•¶‚ð¥‚¦‚Ä‚Ý‚½D"); +#endif if (!level.flags.noteleport) { (void) dotele(); if (!is_pool(u.ux, u.uy)) return TRUE; } else +/*JP pline_The("attempted teleport spell fails."); +*/ + pline("uŠÔˆÚ“®‚ÌŽô•¶‚ÍŽ¸”s‚µ‚½D"); } if (u.usteed) { dismount_steed(DISMOUNT_GENERIC); @@ -3601,7 +4613,10 @@ drown() while still asleep; we can't do that the same way that waking due to combat is handled; note unmul() clears u.usleep */ if (u.usleep) +/*JP unmul("Suddenly you wake up!"); +*/ + unmul("“Ë‘R‚ ‚È‚½‚Í–Ú‚ªŠo‚ß‚½I"); /* being doused will revive from fainting */ if (is_fainted()) reset_faint(); @@ -3630,19 +4645,34 @@ crawl: /* time to do some strip-tease... */ boolean succ = Is_waterlevel(&u.uz) ? TRUE : emergency_disrobe(&lost); +/*JP You("try to crawl out of the water."); +*/ + You("…‚©‚ç‚Í‚¢‚ ‚ª‚낤‚Æ‚µ‚½D"); if (lost) +/*JP You("dump some of your gear to lose weight..."); +*/ + You("‘Ì‚ðŒy‚­‚·‚邽‚ß‚¢‚­‚‚©•¨‚ð“Š‚°‚·‚Ä‚½DDD"); if (succ) { +/*JP pline("Pheew! That was close."); +*/ + pline("ƒnƒ@ƒnƒ@I‚ ‚Ô‚È‚©‚Á‚½D"); teleds(x, y, TRUE); return TRUE; } /* still too much weight */ +/*JP pline("But in vain."); +*/ + pline("‚ªC–³‘Ê‚¾‚Á‚½D"); } u.uinwater = 1; +/*JP You("drown."); +*/ + You("“M‚ꂽD"); for (i = 0; i < 5; i++) { /* arbitrary number of loops */ /* killer format and name are reconstructed every iteration because lifesaving resets them */ @@ -3657,12 +4687,20 @@ crawl: if (safe_teleds(TRUE)) break; /* successful life-save */ /* nowhere safe to land; repeat drowning loop... */ +/*JP pline("You're still drowning."); +*/ + You("‚Ü‚¾“M‚ê‚Ä‚¢‚éD"); } if (u.uinwater) { u.uinwater = 0; +#if 0 /*JP*/ You("find yourself back %s.", Is_waterlevel(&u.uz) ? "in an air bubble" : "on land"); +#else + You("‚¢‚‚̂܂ɂ©%s‚É‚¢‚é‚Ì‚É‹C‚ª‚‚¢‚½D", + Is_waterlevel(&u.uz) ? "‹ó‹C‚Ì–A‚Ì’†" : "’n–Ê"); +#endif } return TRUE; } @@ -3673,13 +4711,19 @@ int n; { if (!u.uenmax) { /* energy is completely gone */ +/*JP You_feel("momentarily lethargic."); +*/ + You("ˆêu–³‹C—ÍŠ´‚ðŠ´‚¶‚½D"); } else { /* throttle further loss a bit when there's not much left to lose */ if (n > u.uenmax || n > u.ulevel) n = rnd(n); +/*JP You_feel("your magical energy drain away%c", (n > u.uen) ? '!' : '.'); +*/ + You("–‚–@‚̃Gƒlƒ‹ƒM[‚ª‹z‚¢‚Æ‚ç‚ꂽ‚悤‚È‹C‚ª‚µ‚½%s", (n > u.uen) ? "I" : "D"); u.uen -= n; if (u.uen < 0) { u.uenmax -= rnd(-u.uen); @@ -3696,19 +4740,31 @@ int dountrap() { if (near_capacity() >= HVY_ENCUMBER) { +/*JP pline("You're too strained to do that."); +*/ + pline("㩂ð‰ðœ‚µ‚悤‚É‚à•¨‚ðŽ‚¿‚·‚¬‚Ä‚¢‚éD"); return 0; } if ((nohands(youmonst.data) && !webmaker(youmonst.data)) || !youmonst.data->mmove) { +/*JP pline("And just how do you expect to do that?"); +*/ + pline("‚¢‚Á‚½‚¢‰½‚ðŠú‘Ò‚µ‚Ä‚¢‚é‚ñ‚¾‚¢H"); return 0; } else if (u.ustuck && sticks(youmonst.data)) { +/*JP pline("You'll have to let go of %s first.", mon_nam(u.ustuck)); +*/ + pline("%s‚ðŽè—£‚³‚È‚¢‚±‚Æ‚É‚Í‚Å‚«‚È‚¢D", mon_nam(u.ustuck)); return 0; } if (u.ustuck || (welded(uwep) && bimanual(uwep))) { +/*JP Your("%s seem to be too busy for that.", makeplural(body_part(HAND))); +*/ + Your("‚»‚ñ‚È‚±‚Æ‚ð‚·‚é—]—T‚È‚ñ‚Ä‚È‚¢D"); return 0; } return untrap(FALSE); @@ -3824,12 +4880,18 @@ boolean force_failure; /* Test for monster first, monsters are displayed instead of trap. */ if (mtmp && (!mtmp->mtrapped || !holdingtrap)) { +/*JP pline("%s is in the way.", Monnam(mtmp)); +*/ + pline("‚»‚±‚É‚Í%s‚ª‚¢‚éD", Monnam(mtmp)); return 0; } /* We might be forced to move onto the trap's location. */ if (sobj_at(BOULDER, ttmp->tx, ttmp->ty) && !Passes_walls && !under_u) { +/*JP There("is a boulder in your way."); +*/ + pline("‚»‚±‚ɂ͊₪‚ ‚éD"); return 0; } /* duplicate tight-space checks from test_move */ @@ -3838,8 +4900,13 @@ boolean force_failure; if ((invent && (inv_weight() + weight_cap() > 600)) || bigmonst(youmonst.data)) { /* don't allow untrap if they can't get thru to it */ +#if 0 /*JP*/ You("are unable to reach the %s!", defsyms[trap_to_defsym(ttype)].explanation); +#else + You("%s‚É“Í‚©‚È‚¢I", + defsyms[trap_to_defsym(ttype)].explanation); +#endif return 0; } } @@ -3848,15 +4915,23 @@ boolean force_failure; if (u.usteed && P_SKILL(P_RIDING) < P_BASIC) rider_cant_reach(); else +#if 0 /*JP*/ You("are unable to reach the %s!", defsyms[trap_to_defsym(ttype)].explanation); +#else + You("%s‚É“Í‚©‚È‚¢I", + defsyms[trap_to_defsym(ttype)].explanation); +#endif return 0; } /* Will our hero succeed? */ if (force_failure || untrap_prob(ttmp)) { if (rnl(5)) { +/*JP pline("Whoops..."); +*/ + pline("‚¤‚í‚ÁDDD"); if (mtmp) { /* must be a trap that holds monsters */ if (ttype == BEAR_TRAP) { if (mtmp->mtame) @@ -3869,7 +4944,10 @@ boolean force_failure; if (ttmp2) { pline_The( +/*JP "webbing sticks to you. You're caught too!"); +*/ + "‚­‚à‚Ì‘ƒ‚ª‚ ‚È‚½‚É‚©‚ç‚ñ‚Å‚«‚½D‚Ü‚·‚Ü‚·•ß‚Ü‚Á‚Ä‚µ‚Ü‚Á‚½I"); dotrap(ttmp2, NOWEBMSG); if (u.usteed && u.utrap) { /* you, not steed, are trapped */ @@ -3877,7 +4955,10 @@ boolean force_failure; } } } else +/*JP pline("%s remains entangled.", Monnam(mtmp)); +*/ + pline("%s‚Í‚©‚ç‚Ü‚Á‚½‚Ü‚Ü‚¾D", Monnam(mtmp)); } } else if (under_u) { dotrap(ttmp, 0); @@ -3885,10 +4966,16 @@ boolean force_failure; move_into_trap(ttmp); } } else { +#if 0 /*JP*/ pline("%s %s is difficult to %s.", ttmp->madeby_u ? "Your" : under_u ? "This" : "That", defsyms[trap_to_defsym(ttype)].explanation, (ttype == WEB) ? "remove" : "disarm"); +#else + pline("%s%s‚ð‰ðœ‚·‚é‚͍̂¢“D", + ttmp->madeby_u ? "‚ ‚È‚½‚ÌŽdŠ|‚¯‚½" : under_u ? "‚±‚Ì" : "‚»‚Ì", + defsyms[trap_to_defsym(ttype)].explanation); +#endif } return 1; } @@ -3906,13 +4993,19 @@ struct monst *mtmp; && mtmp->data->mlet != S_HUMAN) { mtmp->mpeaceful = 1; set_malign(mtmp); /* reset alignment */ +/*JP pline("%s is grateful.", Monnam(mtmp)); +*/ + pline("%s‚ÍŠì‚ñ‚Å‚¢‚éD", Monnam(mtmp)); } /* Helping someone out of a trap is a nice thing to do, * A lawful may be rewarded, but not too often. */ if (!rn2(3) && !rnl(8) && u.ualign.type == A_LAWFUL) { adjalign(1); +/*JP You_feel("that you did the right thing."); +*/ + You("³‚µ‚¢‚±‚Æ‚ð‚µ‚½‚悤‚È‹C‚ª‚µ‚½D"); } } } @@ -3933,16 +5026,28 @@ struct trap *ttmp; There's no need for a cockatrice test, only the trap is touched */ if ((mtmp = m_at(ttmp->tx, ttmp->ty)) != 0) { mtmp->mtrapped = 0; +#if 0 /*JP*/ You("remove %s %s from %s.", the_your[ttmp->madeby_u], (ttmp->ttyp == BEAR_TRAP) ? "bear trap" : "webbing", mon_nam(mtmp)); +#else + You("%s%s‚ð%s‚©‚ç‚Í‚¸‚µ‚½D", set_you[ttmp->madeby_u], + (ttmp->ttyp == BEAR_TRAP) ? "ŒF‚Ìã©" : "‚­‚à‚Ì‘ƒ", + mon_nam(mtmp)); +#endif reward_untrap(ttmp, mtmp); } else { if (ttmp->ttyp == BEAR_TRAP) { +/*JP You("disarm %s bear trap.", the_your[ttmp->madeby_u]); +*/ + You("%sŒF‚Ì㩂ð‰ðœ‚µ‚½D", set_you[ttmp->madeby_u]); cnv_trap_obj(BEARTRAP, 1, ttmp, FALSE); } else /* if (ttmp->ttyp == WEB) */ { +/*JP You("succeed in removing %s web.", the_your[ttmp->madeby_u]); +*/ + You("%s‚­‚à‚Ì‘ƒ‚ðŽæ‚菜‚¢‚½D", set_you[ttmp->madeby_u]); deltrap(ttmp); } } @@ -3958,7 +5063,10 @@ struct trap *ttmp; if (fails < 2) return fails; +/*JP You("disarm %s land mine.", the_your[ttmp->madeby_u]); +*/ + You("%s’n—‹‚ð‰ðœ‚µ‚½D", set_you[ttmp->madeby_u]); cnv_trap_obj(LAND_MINE, 1, ttmp, FALSE); return 1; } @@ -3994,7 +5102,11 @@ struct trap *ttmp; useup(obj); /* oil */ makeknown(POT_OIL); } +#if 0 /*JP*/ You("repair the squeaky board."); /* no madeby_u */ +#else + You("‚«‚µ‚ޔ‚ðC—‚µ‚½D"); /* no madeby_u */ +#endif deltrap(ttmp); newsym(u.ux + u.dx, u.uy + u.dy); more_experienced(1, 5); @@ -4012,7 +5124,10 @@ int otyp; if (fails < 2) return fails; +/*JP You("disarm %s trap.", the_your[ttmp->madeby_u]); +*/ + pline("%s㩂ð‰ðœ‚µ‚½D", set_you[ttmp->madeby_u]); cnv_trap_obj(otyp, 50 - rnl(50), ttmp, FALSE); return 1; } @@ -4029,14 +5144,22 @@ boolean stuff; int wc = weight_cap(); if (((wt * 2) / wc) >= HVY_ENCUMBER) { +#if 0 /*JP*/ pline("%s is %s for you to lift.", Monnam(mtmp), stuff ? "carrying too much" : "too heavy"); +#else + pline("%s‚Í%sŽ‚¿‚ ‚°‚邱‚Æ‚ª‚Å‚«‚È‚¢D", Monnam(mtmp), + stuff ? "•¨‚ðŽ‚¿‚·‚¬‚Ä‚¨‚è" : "d‚·‚¬‚Ä"); +#endif if (!ttmp->madeby_u && !mtmp->mpeaceful && mtmp->mcanmove && !mindless(mtmp->data) && mtmp->data->mlet != S_HUMAN && rnl(10) < 3) { mtmp->mpeaceful = 1; set_malign(mtmp); /* reset alignment */ +/*JP pline("%s thinks it was nice of you to try.", Monnam(mtmp)); +*/ + pline("%s‚Í‚ ‚È‚½‚Ì“w—Í‚ÉŠ´ŽÓ‚µ‚Ä‚¢‚é‚悤‚¾D", Monnam(mtmp)); } return 0; } @@ -4063,7 +5186,10 @@ struct trap *ttmp; * Test the monster first - monsters are displayed before traps. */ if (!mtmp->mtrapped) { +/*JP pline("%s isn't trapped.", Monnam(mtmp)); +*/ + pline("%s‚Í㩂ɂ©‚©‚Á‚Ä‚¢‚È‚¢D", Monnam(mtmp)); return 0; } /* Do you have the necessary capacity to lift anything? */ @@ -4072,48 +5198,80 @@ struct trap *ttmp; /* Will our hero succeed? */ if ((uprob = untrap_prob(ttmp)) && !mtmp->msleeping && mtmp->mcanmove) { +#if 0 /*JP*/ You("try to reach out your %s, but %s backs away skeptically.", makeplural(body_part(ARM)), mon_nam(mtmp)); +#else + You("%s‚ð·‚µ‰„‚ׂ悤‚Æ‚µ‚½‚ª%s‚ÍŒx‰ú‚µ‚Ä‚¢‚éD", + body_part(ARM), mon_nam(mtmp)); +#endif return 1; } /* is it a cockatrice?... */ if (touch_petrifies(mtmp->data) && !uarmg && !Stone_resistance) { +#if 0 /*JP*/ You("grab the trapped %s using your bare %s.", mtmp->data->mname, makeplural(body_part(HAND))); +#else + You("㩂ɂ©‚©‚Á‚Ä‚¢‚é%s‚ð‘f%s‚Å’Í‚ñ‚¾D", mtmp->data->mname, + body_part(HAND)); +#endif if (poly_when_stoned(youmonst.data) && polymon(PM_STONE_GOLEM)) { display_nhwindow(WIN_MESSAGE, FALSE); } else { char kbuf[BUFSZ]; +#if 0 /*JP*/ Sprintf(kbuf, "trying to help %s out of a pit", an(mtmp->data->mname)); +#else + Sprintf(kbuf, "㩂ɂ©‚©‚Á‚Ä‚¢‚é%s‚ð•‚¯‚悤‚Æ‚µ‚Ä", + a_monnam(mtmp)); +#endif instapetrify(kbuf); return 1; } } /* need to do cockatrice check first if sleeping or paralyzed */ if (uprob) { +/*JP You("try to grab %s, but cannot get a firm grasp.", mon_nam(mtmp)); +*/ + You("%s‚ð‚‚©‚à‚¤‚Æ‚µ‚½‚ªC‚µ‚Á‚©‚è‚ƈ¬‚ê‚È‚©‚Á‚½D", mon_nam(mtmp)); if (mtmp->msleeping) { mtmp->msleeping = 0; +/*JP pline("%s awakens.", Monnam(mtmp)); +*/ + pline("%s‚Í–Ú‚ðŠo‚Ü‚µ‚½D", Monnam(mtmp)); } return 1; } +#if 0 /*JP*/ You("reach out your %s and grab %s.", makeplural(body_part(ARM)), mon_nam(mtmp)); +#else + You("%s‚ðL‚΂µ‚Ä%s‚ð‚‚©‚ñ‚¾D", body_part(ARM), + mon_nam(mtmp)); +#endif if (mtmp->msleeping) { mtmp->msleeping = 0; +/*JP pline("%s awakens.", Monnam(mtmp)); +*/ + pline("%s‚Í–Ú‚ðŠo‚Ü‚µ‚½D", Monnam(mtmp)); } else if (mtmp->mfrozen && !rn2(mtmp->mfrozen)) { /* After such manhandling, perhaps the effect wears off */ mtmp->mcanmove = 1; mtmp->mfrozen = 0; +/*JP pline("%s stirs.", Monnam(mtmp)); +*/ + pline("%s‚Í“®‚«Žn‚ß‚½D", Monnam(mtmp)); } /* is the monster too heavy? */ @@ -4127,7 +5285,10 @@ struct trap *ttmp; if (!try_lift(mtmp, ttmp, wt, TRUE)) return 1; +/*JP You("pull %s out of the pit.", mon_nam(mtmp)); +*/ + You("%s‚ð—Ž‚µŒŠ‚©‚ç‚ЂÁ‚Ï‚Á‚½D", mon_nam(mtmp)); mtmp->mtrapped = 0; fill_pit(mtmp->mx, mtmp->my); reward_untrap(ttmp, mtmp); @@ -4154,7 +5315,10 @@ boolean force; x = u.ux + u.dx; y = u.uy + u.dy; if (!isok(x, y)) { +/*JP pline_The("perils lurking there are beyond your grasp."); +*/ + pline_The("‚»‚±‚É‚ ‚éŠëŒ¯‚Í‚ ‚È‚½‚ÌŽè‚É•‰‚¦‚È‚¢D"); return 0; } ttmp = t_at(x, y); @@ -4176,16 +5340,28 @@ boolean force; if (ttmp) Strcat(the_trap, an(trapdescr)); if (ttmp && boxcnt) +/*JP Strcat(the_trap, " and "); +*/ + Strcat(the_trap, "‚Æ"); if (boxcnt) +/*JP Strcat(the_trap, (boxcnt == 1) ? "a container" : "containers"); +*/ + Strcat(the_trap, "—eŠí"); useplural = ((ttmp && boxcnt > 0) || boxcnt > 1); /* note: boxcnt and useplural will always be 0 for !here case */ if (ttmp || boxcnt) +#if 0 /*JP*/ There("%s %s %s but you can't reach %s%s.", useplural ? "are" : "is", the_trap, here ? "here" : "there", useplural ? "them" : "it", u.usteed ? " while mounted" : ""); +#else + pline("%s‚ª‚ ‚邪C%s“Í‚©‚È‚¢D", + the_trap, + u.usteed ? "æ‚Á‚Ä‚¢‚é‚Æ" : ""); +#endif trap_skipped = (ttmp != 0); } else { /* deal_with_floor_trap */ @@ -4193,17 +5369,31 @@ boolean force; Strcpy(the_trap, the(trapdescr)); if (boxcnt) { if (ttmp->ttyp == PIT || ttmp->ttyp == SPIKED_PIT) { +#if 0 /*JP*/ You_cant("do much about %s%s.", the_trap, u.utrap ? " that you're stuck in" : " while standing on the edge of it"); +#else + pline("%s%s‚ɑ΂µ‚Ä‚Í‚½‚¢‚µ‚½‚±‚Æ‚Í‚Å‚«‚È‚¢D", + u.utrap ? "Ž©•ª‚ª‚Í‚Ü‚Á‚Ä‚¢‚é" + : "‚·‚®‚»‚΂Ì", + the_trap); +#endif trap_skipped = TRUE; deal_with_floor_trap = FALSE; } else { +#if 0 /*JP*/ Sprintf( qbuf, "There %s and %s here. %s %s?", (boxcnt == 1) ? "is a container" : "are containers", an(trapdescr), (ttmp->ttyp == WEB) ? "Remove" : "Disarm", the_trap); +#else + Sprintf( + qbuf, "” ‚Æ%s‚ª‚ ‚éD%sH", + trapdescr, + (ttmp->ttyp == WEB) ? "Žæ‚菜‚­" : "‰ðœ‚·‚é"); +#endif switch (ynq(qbuf)) { case 'q': return 0; @@ -4216,8 +5406,12 @@ boolean force; } if (deal_with_floor_trap) { if (u.utrap) { +#if 0 /*JP*/ You("cannot deal with %s while trapped%s!", the_trap, (x == u.ux && y == u.uy) ? " in it" : ""); +#else + pline("㩂ɂ©‚©‚Á‚Ä‚¢‚éŠÔ‚Í㩂ð‰ðœ‚Å‚«‚È‚¢I"); +#endif return 1; } if ((mtmp = m_at(x, y)) != 0 @@ -4241,16 +5435,25 @@ boolean force; case PIT: case SPIKED_PIT: if (here) { +/*JP You("are already on the edge of the pit."); +*/ + You("‚à‚¤—Ž‚µŒŠ‚Ì’[‚É‚¢‚éD"); return 0; } if (!mtmp) { +/*JP pline("Try filling the pit instead."); +*/ + pline("‚È‚ñ‚Æ‚©–„‚߂邱‚Æ‚ðl‚¦‚Ä‚Ý‚½‚çH"); return 0; } return help_monster_out(mtmp, ttmp); default: +/*JP You("cannot disable %s trap.", !here ? "that" : "this"); +*/ + pline("%sã©‚Í‰ðœ‚Å‚«‚È‚¢D", !here ? "‚»‚Ì" : "‚±‚Ì"); return 0; } } @@ -4259,9 +5462,15 @@ boolean force; if (boxcnt) { for (otmp = level.objects[x][y]; otmp; otmp = otmp->nexthere) if (Is_box(otmp)) { +#if 0 /*JP*/ (void) safe_qbuf(qbuf, "There is ", " here. Check it for traps?", otmp, doname, ansimpleoname, "a box"); +#else + (void) safe_qbuf(qbuf, "", + "‚ª‚ ‚éD㩂𒲂ׂ܂·‚©H", otmp, + doname, ansimpleoname, "” "); +#endif switch (ynq(qbuf)) { case 'q': return 0; @@ -4273,11 +5482,17 @@ boolean force; && (force || (!confused && rn2(MAXULEV + 1 - u.ulevel) < 10))) || (!force && confused && !rn2(3))) { +/*JP You("find a trap on %s!", the(xname(otmp))); +*/ + pline("%s‚É㩂𔭌©‚µ‚½I", the(xname(otmp))); if (!confused) exercise(A_WIS, TRUE); +/*JP switch (ynq("Disarm it?")) { +*/ + switch (ynq("‰ðœ‚µ‚Ü‚·‚©H")) { case 'q': return 1; case 'n': @@ -4295,20 +5510,34 @@ boolean force; > ch)) { (void) chest_trap(otmp, FINGER, TRUE); } else { +/*JP You("disarm it!"); +*/ + You("‰ðœ‚µ‚½I"); otmp->otrapped = 0; } } else +/*JP pline("That %s was not trapped.", xname(otmp)); +*/ + pline("‚»‚Ì%s‚É㩂͂Ȃ¢D", xname(otmp)); return 1; } else { +/*JP You("find no traps on %s.", the(xname(otmp))); +*/ + pline("㩂𔭌©‚Å‚«‚È‚©‚Á‚½D"); return 1; } } +#if 0 /*JP*/ You(trap_skipped ? "find no other traps here." : "know of no traps here."); +#else + You(trap_skipped ? "‘¼‚Ìã©‚ðŒ©‚Â‚¯‚ç‚ê‚È‚©‚Á‚½D" + : "‚±‚±‚É㩂ª‚È‚¢‚±‚Æ‚ð’m‚Á‚Ä‚¢‚éD"); +#endif return 0; } @@ -4320,36 +5549,60 @@ boolean force; if (!IS_DOOR(levl[x][y].typ)) { if (!trap_skipped) +/*JP You("know of no traps there."); +*/ + You("‚»‚±‚É㩂ª‚È‚¢‚±‚Æ‚ð’m‚Á‚Ä‚¢‚éD"); return 0; } switch (levl[x][y].doormask) { case D_NODOOR: +/*JP You("%s no door there.", Blind ? "feel" : "see"); +*/ + pline("‚»‚±‚É‚Í”à‚ª‚È‚¢%sD", Blind ? "‚悤‚¾" : "‚悤‚ÉŒ©‚¦‚é"); return 0; case D_ISOPEN: +/*JP pline("This door is safely open."); +*/ + pline("‚»‚Ì”à‚͈À‘S‚ÉŠJ‚¢‚Ä‚¢‚éD"); return 0; case D_BROKEN: +/*JP pline("This door is broken."); +*/ + pline("‚»‚Ì”à‚͉ó‚ê‚Ä‚¢‚éD"); return 0; } if ((levl[x][y].doormask & D_TRAPPED && (force || (!confused && rn2(MAXULEV - u.ulevel + 11) < 10))) || (!force && confused && !rn2(3))) { +/*JP You("find a trap on the door!"); +*/ + pline("”à‚É㩂𔭌©‚µ‚½I"); exercise(A_WIS, TRUE); +/*JP if (ynq("Disarm it?") != 'y') +*/ + if (ynq("‰ðœ‚µ‚Ü‚·‚©H") != 'y') return 1; if (levl[x][y].doormask & D_TRAPPED) { ch = 15 + (Role_if(PM_ROGUE) ? u.ulevel * 3 : u.ulevel); exercise(A_DEX, TRUE); if (!force && (confused || Fumbling || rnd(75 + level_difficulty() / 2) > ch)) { +/*JP You("set it off!"); +*/ + You("ƒXƒCƒbƒ`‚ð“ü‚ê‚Ä‚µ‚Ü‚Á‚½I"); +/*JP b_trapped("door", FINGER); +*/ + b_trapped("”à", FINGER); levl[x][y].doormask = D_NODOOR; unblock_point(x, y); newsym(x, y); @@ -4357,14 +5610,23 @@ boolean force; if (*in_rooms(x, y, SHOPBASE)) add_damage(x, y, 0L); } else { +/*JP You("disarm it!"); +*/ + You("‰ðœ‚µ‚½I"); levl[x][y].doormask &= ~D_TRAPPED; } } else +/*JP pline("This door was not trapped."); +*/ + pline("”à‚É㩂͂Ȃ©‚Á‚½D"); return 1; } else { +/*JP You("find no traps on the door."); +*/ + pline("”à‚É㩂𔭌©‚Å‚«‚È‚©‚Á‚½D"); return 1; } } @@ -4389,8 +5651,12 @@ boolean *noticed; /* set to true iff hero notices the effect; */ return FALSE; trapdescr = defsyms[trap_to_defsym(t->ttyp)].explanation; +#if 0 /*JP*/ which = t->tseen ? the_your[t->madeby_u] : index(vowels, *trapdescr) ? "an" : "a"; +#else + which = t->tseen ? set_you[t->madeby_u] : ""; +#endif if (ishero) { if (!u.utrap) @@ -4400,10 +5666,19 @@ boolean *noticed; /* set to true iff hero notices the effect; */ /* give message only if trap was the expected type */ if (u.utraptype == TT_BEARTRAP || u.utraptype == TT_WEB) { if (u.usteed) +/*JP Sprintf(buf, "%s is", noit_Monnam(u.usteed)); +*/ + Strcpy(buf, noit_Monnam(u.usteed)); else +/*JP Strcpy(buf, "You are"); +*/ + Strcpy(buf, "‚ ‚È‚½"); +/*JP pline("%s released from %s %s.", buf, which, trapdescr); +*/ + pline("%s‚Í%s%s‚©‚ç‰ð•ú‚³‚ꂽD", buf, which, trapdescr); } } else { if (!mon->mtrapped) @@ -4411,15 +5686,28 @@ boolean *noticed; /* set to true iff hero notices the effect; */ mon->mtrapped = 0; if (canspotmon(mon)) { *noticed = TRUE; +#if 0 /*JP*/ pline("%s is released from %s %s.", Monnam(mon), which, trapdescr); +#else + pline("%s‚Í%s%s‚©‚ç‰ð•ú‚³‚ꂽD", Monnam(mon), which, + trapdescr); +#endif } else if (cansee(t->tx, t->ty) && t->tseen) { *noticed = TRUE; if (t->ttyp == WEB) +#if 0 /*JP*/ pline("%s is released from %s %s.", Something, which, trapdescr); +#else + pline("‰½ŽÒ‚©‚Í%s%s‚©‚ç‰ð•ú‚³‚ꂽD", which, + trapdescr); +#endif else /* BEAR_TRAP */ +/*JP pline("%s %s opens.", upstart(strcpy(buf, which)), trapdescr); +*/ + pline("%s%s‚ÍŠJ‚¢‚½D", which, trapdescr); } /* might pacify monster if adjacent */ if (rn2(2) && distu(mon->mx, mon->my) <= 2) @@ -4531,33 +5819,51 @@ boolean disarm; otmp->otrapped = 0; /* trap is one-shot; clear flag first in case chest kills you and ends up in bones file */ +/*JP You(disarm ? "set it off!" : "trigger a trap!"); +*/ + You(disarm ? "ƒXƒCƒbƒ`‚ð“ü‚ê‚Ä‚µ‚Ü‚Á‚½I" : "㩂ɂЂÁ‚©‚©‚Á‚½I"); display_nhwindow(WIN_MESSAGE, FALSE); if (Luck > -13 && rn2(13 + Luck) > 7) { /* saved by luck */ /* trap went off, but good luck prevents damage */ switch (rn2(13)) { case 12: case 11: +/*JP msg = "explosive charge is a dud"; +*/ + msg = "”š”­‚Í•s”­‚¾‚Á‚½"; break; case 10: case 9: +/*JP msg = "electric charge is grounded"; +*/ + msg = "“dŒ‚‚ª•úo‚³‚ꂽ‚ªƒA[ƒX‚³‚ê‚Ä‚¢‚½"; break; case 8: case 7: +/*JP msg = "flame fizzles out"; +*/ + msg = "‰Š‚̓Vƒ…[‚Á‚ƏÁ‚¦‚½"; break; case 6: case 5: case 4: +/*JP msg = "poisoned needle misses"; +*/ + msg = "“Őj‚ÍŽh‚³‚ç‚È‚©‚Á‚½"; break; case 3: case 2: case 1: case 0: +/*JP msg = "gas cloud blows away"; +*/ + msg = "ƒKƒX‰_‚͐‚«”ò‚ñ‚¾"; break; default: impossible("chest disarm bug"); @@ -4565,7 +5871,10 @@ boolean disarm; break; } if (msg) +/*JP pline("But luckily the %s!", msg); +*/ + pline("‚µ‚©‚µ‰^‚Ì‚æ‚¢‚±‚Æ‚É%sI", msg); } else { switch (rn2(20) ? ((Luck >= 13) ? 0 : rn2(13 - Luck)) : rn2(26)) { case 25: @@ -4585,8 +5894,14 @@ boolean disarm; insider = (*u.ushops && inside_shop(u.ux, u.uy) && *in_rooms(ox, oy, SHOPBASE) == *u.ushops); +/*JP pline("%s!", Tobjnam(obj, "explode")); +*/ + pline("%s‚Í”š”­‚µ‚½I", xname(obj)); +/*JP Sprintf(buf, "exploding %s", xname(obj)); +*/ + Sprintf(buf, "%s‚Ì”š”­‚Å", xname(obj)); if (costly) loss += stolen_value(obj, ox, oy, (boolean) shkp->mpeaceful, @@ -4616,11 +5931,21 @@ boolean disarm; exercise(A_STR, FALSE); if (costly && loss) { if (insider) +#if 0 /*JP*/ You("owe %ld %s for objects destroyed.", loss, currency(loss)); +#else + You("Ší•¨”j‘¹‚Å%ld%s‚ÌŽØ‚è‚ð‚‚­‚Á‚½D", loss, + currency(loss)); +#endif else { +#if 0 /*JP*/ You("caused %ld %s worth of damage!", loss, currency(loss)); +#else + You("%ld%s•ª‚Ì‘¹ŠQ‚ðˆø‚«‚¨‚±‚µ‚½I", loss, + currency(loss)); +#endif make_angry_shk(shkp, ox, oy); } } @@ -4630,16 +5955,28 @@ boolean disarm; case 19: case 18: case 17: +/*JP pline("A cloud of noxious gas billows from %s.", the(xname(obj))); +*/ + pline("—L“ŃKƒX‚ª%s‚©‚ç‰Q‚Ü‚¢‚½D", the(xname(obj))); +/*JP poisoned("gas cloud", A_STR, "cloud of poison gas", 15, FALSE); +*/ + poisoned("ƒKƒX‰_", A_STR, "ƒKƒX‰_", 15, FALSE); exercise(A_CON, FALSE); break; case 16: case 15: case 14: case 13: +/*JP You_feel("a needle prick your %s.", body_part(bodypart)); +*/ + You("%sƒ`ƒNƒb‚Æ‚¢‚¤’É‚Ý‚ðŠ´‚¶‚½D", body_part(bodypart)); +/*JP poisoned("needle", A_CON, "poisoned needle", 10, FALSE); +*/ + poisoned("j", A_CON, "“Őj", 10, FALSE); exercise(A_CON, FALSE); break; case 12: @@ -4653,45 +5990,76 @@ boolean disarm; case 6: { int dmg; +/*JP You("are jolted by a surge of electricity!"); +*/ + You("“d‹CƒVƒ‡ƒbƒN‚ð‚­‚ç‚Á‚½I"); if (Shock_resistance) { shieldeff(u.ux, u.uy); +/*JP You("don't seem to be affected."); +*/ + pline("‚µ‚©‚µ‚ ‚È‚½‚͉e‹¿‚ðŽó‚¯‚È‚¢D"); dmg = 0; } else dmg = d(4, 4); destroy_item(RING_CLASS, AD_ELEC); destroy_item(WAND_CLASS, AD_ELEC); if (dmg) +/*JP losehp(dmg, "electric shock", KILLED_BY_AN); +*/ + losehp(dmg, "“d‹CƒVƒ‡ƒbƒN‚Å", KILLED_BY_AN); break; } /* case 6 */ case 5: case 4: case 3: if (!Free_action) { +/*JP pline("Suddenly you are frozen in place!"); +*/ + pline("“Ë‘R‚»‚̏ê‚Å“®‚¯‚È‚­‚È‚Á‚½I"); nomul(-d(5, 6)); multi_reason = "frozen by a trap"; exercise(A_DEX, FALSE); nomovemsg = You_can_move_again; } else +/*JP You("momentarily stiffen."); +*/ + You("ˆêud’¼‚µ‚½D"); break; case 2: case 1: case 0: +#if 0 /*JP*/ pline("A cloud of %s gas billows from %s.", Blind ? blindgas[rn2(SIZE(blindgas))] : rndcolor(), the(xname(obj))); +#else + pline("%sƒKƒX‰_‚ª%s‚Ì’ê‚ʼnQ‚Ü‚¢‚½D", + Blind ? blindgas[rn2(SIZE(blindgas))] : + jconj_adj(rndcolor()), xname(obj)); +#endif if (!Stunned) { if (Hallucination) +/*JP pline("What a groovy feeling!"); +*/ + pline("‚È‚ñ‚Ä‘f“G‚È‚ñ‚¾I"); else +#if 0 /*JP*/ You("%s%s...", stagger(youmonst.data, "stagger"), Halluc_resistance ? "" : Blind ? " and get dizzy" : " and your vision blurs"); +#else + You("‚­‚ç‚­‚炵%s‚½...", + Halluc_resistance ? "" + : Blind ? "C‚ß‚Ü‚¢‚ª‚µ" + : "CŒiF‚ª‚ڂ₯‚Ä‚«"); +#endif } make_stunned((HStun & TIMEOUT) + (long) rn1(7, 16), FALSE); (void) make_hallucinated( @@ -4875,9 +6243,15 @@ int bodypart; int lvl = level_difficulty(), dmg = rnd(5 + (lvl < 5 ? lvl : 2 + lvl / 2)); +/*JP pline("KABOOM!! %s was booby-trapped!", The(item)); +*/ + pline("‚¿‚ã‚ǁ[‚ñII%s‚Ƀu[ƒr[ƒgƒ‰ƒbƒv‚ªŽdŠ|‚¯‚ç‚ê‚Ä‚¢‚½I", item); wake_nearby(); +/*JP losehp(Maybe_Half_Phys(dmg), "explosion", KILLED_BY_AN); +*/ + losehp(Maybe_Half_Phys(dmg), "ƒu[ƒr[ƒgƒ‰ƒbƒv‚Ì”š”­‚Å", KILLED_BY_AN); exercise(A_STR, FALSE); if (bodypart) exercise(A_CON, FALSE); @@ -4909,12 +6283,18 @@ boolean nocorpse; */ if (!strike) { if (obj && cansee(mon->mx, mon->my)) +/*JP pline("%s is almost hit by %s!", Monnam(mon), doname(obj)); +*/ + pline("‚à‚¤­‚µ‚Å%s‚ª%s‚É–½’†‚·‚é‚Æ‚±‚낾‚Á‚½I", doname(obj), Monnam(mon)); } else { int dam = 1; if (obj && cansee(mon->mx, mon->my)) +/*JP pline("%s is hit by %s!", Monnam(mon), doname(obj)); +*/ + pline("%s‚ª%s‚É–½’†‚µ‚½I", doname(obj), Monnam(mon)); if (d_override) dam = d_override; else if (obj) { @@ -4948,14 +6328,30 @@ unconscious() if (multi >= 0) return FALSE; +#if 0 /*JP*/ return (boolean) (u.usleep || (nomovemsg && (!strncmp(nomovemsg, "You awake", 9) || !strncmp(nomovemsg, "You regain con", 14) || !strncmp(nomovemsg, "You are consci", 14)))); +#else +/*JP 3.6.0 ‚ł̏oŒ»ˆÊ’u/‰ñ” + "You awake" : potion.c(1) + "You regain con": eat.c(1) + "You are consci": eat.c(1) +*/ + return (boolean) (u.usleep + || (nomovemsg + && (!strncmp(nomovemsg, "–Ú‚ª‚³‚ß‚½‚ª“ª’É", 18) + || !strncmp(nomovemsg, "‚ ‚È‚½‚͐³‹C‚¢‚½", 18) + || !strncmp(nomovemsg, "‚ ‚È‚½‚Í‚Ü‚½³‹C‚Ã", 18)))); +#endif } +/*JP static const char lava_killer[] = "molten lava"; +*/ +static const char lava_killer[] = "‚Ç‚ë‚Ç‚ë‚Ì—nŠâ‚Å"; boolean lava_effects() @@ -4994,7 +6390,10 @@ lava_effects() */ if (Wwalking && uarmf && is_organic(uarmf) && !uarmf->oerodeproof) { obj = uarmf; +/*JP pline("%s into flame!", Yobjnam2(obj, "burst")); +*/ + Your("%s‚Í”R‚¦‚½I", xname(obj)); iflags.in_lava_effects++; /* (see above) */ (void) Boots_off(); useup(obj); @@ -5003,13 +6402,19 @@ lava_effects() if (!Fire_resistance) { if (Wwalking) { +/*JP pline_The("lava here burns you!"); +*/ + pline("—nŠâ‚ª‚ ‚È‚½‚ðÄ‚«‚‚­‚µ‚½I"); if (usurvive) { losehp(dmg, lava_killer, KILLED_BY); /* lava damage */ goto burn_stuff; } } else +/*JP You("fall into the lava!"); +*/ + You("—nŠâ‚É—Ž‚¿‚½I"); usurvive = Lifesaved || discover; if (wizard) @@ -5027,12 +6432,20 @@ lava_effects() /* above, we set in_use for objects which are to be destroyed */ if (obj->otyp == SPE_BOOK_OF_THE_DEAD && !Blind) { if (usurvive) +#if 0 /*JP*/ pline("%s glows a strange %s, but remains intact.", The(xname(obj)), hcolor("dark red")); +#else + pline("%s‚Í•sŽv‹c‚É%s‹P‚¢‚½‚ªC–³‚̂悤‚¾D", + xname(obj), jconj_adj(hcolor("ˆÃÔF‚Ì"))); +#endif } else if (obj->in_use) { if (obj->owornmask) { if (usurvive) +/*JP pline("%s into flame!", Yobjnam2(obj, "burst")); +*/ + Your("%s‚Í”R‚¦‚½I", xname(obj)); remove_worn_item(obj, TRUE); } useupall(obj); @@ -5051,14 +6464,23 @@ lava_effects() because lifesaving resets them */ killer.format = KILLED_BY; Strcpy(killer.name, lava_killer); +/*JP You("%s...", boil_away ? "boil away" : "burn to a crisp"); +*/ + You("%sDDD", boil_away ? "•¦“«‚µ‚½" : "”R‚¦‚ăpƒŠƒpƒŠ‚É‚È‚Á‚½"); done(BURNING); if (safe_teleds(TRUE)) break; /* successful life-save */ /* nowhere safe to land; repeat burning loop */ +/*JP pline("You're still burning."); +*/ + You("‚Ü‚¾”R‚¦‚Ä‚¢‚éD"); } +/*JP You("find yourself back on solid %s.", surface(u.ux, u.uy)); +*/ + You("‚¢‚‚̂܂ɂ©ŒÅ‚¢%s‚É–ß‚Á‚Ä‚¢‚½D", surface(u.ux, u.uy)); return TRUE; } else if (!Wwalking && (!u.utrap || u.utraptype != TT_LAVA)) { boil_away = !Fire_resistance; @@ -5066,9 +6488,15 @@ lava_effects() hero needs to escape immediately */ u.utrap = rn1(4, 4) + ((boil_away ? 2 : rn1(4, 12)) << 8); u.utraptype = TT_LAVA; +#if 0 /*JP*/ You("sink into the lava%s!", !boil_away ? ", but it only burns slightly" : " and are about to be immolated"); +#else + You("—nŠâ‚É’¾‚ñ%s‚¾I", !boil_away + ? "‚¾‚ªC‚¿‚å‚Á‚Əł°‚½‚¾‚¯" + : "‚ŏĂ«ŽE‚³‚ê‚»‚¤"); +#endif if (u.uhp > 1) losehp(!boil_away ? 1 : (u.uhp / 2), lava_killer, KILLED_BY); /* lava damage */ @@ -5085,7 +6513,10 @@ burn_stuff: void sink_into_lava() { +/*JP static const char sink_deeper[] = "You sink deeper into the lava."; +*/ + static const char sink_deeper[] = "‚ ‚È‚½‚Í‚æ‚è[‚­—nŠâ‚É’¾‚ñ‚¾D"; if (!u.utrap || u.utraptype != TT_LAVA) { ; /* do nothing; this shouldn't happen */ @@ -5102,8 +6533,14 @@ sink_into_lava() u.utrap -= (1 << 8); if (u.utrap < (1 << 8)) { killer.format = KILLED_BY; +/*JP Strcpy(killer.name, "molten lava"); +*/ + Strcpy(killer.name, "‚Ç‚ë‚Ç‚ë‚Ì—nŠâ‚Å"); +/*JP You("sink below the surface and die."); +*/ + You("Š®‘S‚É—nŠâ‚Ì’†‚É’¾‚ñ‚ŁAŽ€‚É‚Ü‚µ‚½DDD"); burn_away_slime(); /* add insult to injury? */ done(DISSOLVED); } else if (!u.umoved) { diff --git a/src/uhitm.c b/src/uhitm.c index d41f716..bfd3ff4 100644 --- a/src/uhitm.c +++ b/src/uhitm.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" STATIC_DCL boolean FDECL(known_hitum, (struct monst *, struct obj *, int *, @@ -134,7 +139,10 @@ struct obj *wep; /* uwep for attack(), null for kick_monster() */ if (!canspotmon(mtmp) && !glyph_is_warning(glyph_at(bhitpos.x, bhitpos.y)) && !glyph_is_invisible(levl[bhitpos.x][bhitpos.y].glyph) && !(!Blind && mtmp->mundetected && hides_under(mtmp->data))) { +/*JP pline("Wait! There's %s there you can't see!", something); +*/ + pline("‚¿‚å‚Á‚Æ‘Ò‚Á‚½IŽp‚ÌŒ©‚¦‚È‚¢%s‚ª‚¢‚éI", something); map_invisible(bhitpos.x, bhitpos.y); /* if it was an invisible mimic, treat it as if we stumbled * onto a visible mimic @@ -176,10 +184,18 @@ struct obj *wep; /* uwep for attack(), null for kick_monster() */ struct obj *obj; if (Blind || (is_pool(mtmp->mx, mtmp->my) && !Underwater)) +/*JP pline("Wait! There's a hidden monster there!"); +*/ + pline("‘҂āI‰ö•¨‚ª‰B‚ê‚Ä‚¢‚éI"); else if ((obj = level.objects[mtmp->mx][mtmp->my]) != 0) +#if 0 /*JP*/ pline("Wait! There's %s hiding under %s!", an(l_monnam(mtmp)), doname(obj)); +#else + pline("‘҂āI%s‚̉º‚É%s‚ª‰B‚ê‚Ä‚¢‚éI", + doname(obj), l_monnam(mtmp)); +#endif return TRUE; } } @@ -201,7 +217,10 @@ struct obj *wep; /* uwep for attack(), null for kick_monster() */ return FALSE; } if (canspotmon(mtmp)) { +/*JP Sprintf(qbuf, "Really attack %s?", mon_nam(mtmp)); +*/ + Sprintf(qbuf, "–{“–‚É%s‚ðUŒ‚‚·‚é‚́H", mon_nam(mtmp)); if (!paranoid_query(ParanoidHit, qbuf)) { context.move = 0; return TRUE; @@ -225,11 +244,17 @@ struct monst *mtmp; if (Role_if(PM_KNIGHT) && u.ualign.type == A_LAWFUL && (!mtmp->mcanmove || mtmp->msleeping || (mtmp->mflee && !mtmp->mavenge))) { +/*JP You("caitiff!"); +*/ + pline("‚±‚ê‚͔ڋ¯‚ȍs‚¢‚¾I"); adjalign(-1); } else if (Role_if(PM_SAMURAI) && mtmp->mpeaceful) { /* attacking peaceful creatures is bad for the samurai's giri */ +/*JP You("dishonorably attack the innocent!"); +*/ + pline("–³ŽÀ‚ÌŽÒ‚ðUŒ‚‚·‚é‚Ì‚Í•s–¼—_‚¾I"); adjalign(-1); } } @@ -349,11 +374,17 @@ register struct monst *mtmp; monflee(mtmp, rnd(6), FALSE, FALSE); Strcpy(buf, y_monnam(mtmp)); buf[0] = highc(buf[0]); +/*JP You("stop. %s is in the way!", buf); +*/ + You("Ž~‚Ü‚Á‚½D%s‚ª“¹‚É‚¢‚éI", buf); return TRUE; } else if ((mtmp->mfrozen || (!mtmp->mcanmove) || (mtmp->data->mmove == 0)) && rn2(6)) { +/*JP pline("%s doesn't seem to move!", Monnam(mtmp)); +*/ + pline("%s‚Í“®‚¯‚È‚¢‚悤‚¾I", Monnam(mtmp)); return TRUE; } else return FALSE; @@ -372,12 +403,18 @@ register struct monst *mtmp; if (Upolyd && noattacks(youmonst.data)) { /* certain "pacifist" monsters don't attack */ +/*JP You("have no way to attack monsters physically."); +*/ + You("•¨—“I‚ɉö•¨‚ðUŒ‚‚·‚é‚·‚ׂª‚È‚¢D"); mtmp->mstrategy &= ~STRAT_WAITMASK; goto atk_done; } +/*JP if (check_capacity("You cannot fight while so heavily loaded.") +*/ + if (check_capacity("‚ ‚È‚½‚Í•¨‚ð‚½‚­‚³‚ñŽ‚¿‚·‚¬‚Đ킦‚È‚¢D") /* consume extra nutrition during combat; maybe pass out */ || overexertion()) goto atk_done; @@ -389,13 +426,23 @@ register struct monst *mtmp; unweapon = FALSE; if (flags.verbose) { if (uwep) +/*JP You("begin bashing monsters with %s.", +*/ + You("%s‚ʼnö•¨‚ð‚È‚®‚è‚‚¯‚½D", yobjnam(uwep, (char *) 0)); else if (!cantwield(youmonst.data)) +#if 0 /*JP*/ You("begin %sing monsters with your %s %s.", Role_if(PM_MONK) ? "strik" : "bash", uarmg ? "gloved" : "bare", /* Del Lamb */ makeplural(body_part(HAND))); +#else + You("%s%s‚ʼnö•¨‚ð%s‚‚¯‚½D", + uarmg ? "ƒOƒ[ƒu‚ð•t‚¯‚½" : "‘f", + body_part(HAND), + Role_if(PM_MONK) ? "‘Å‚¿" : "‚È‚®‚è"); +#endif } } exercise(A_STR, TRUE); /* you're exercising muscles */ @@ -445,7 +492,10 @@ struct attack *uattk; /* this may need to be generalized if weapons other than Stormbringer acquire similar anti-social behavior... */ if (flags.verbose) +/*JP Your("bloodthirsty blade attacks!"); +*/ + Your("•Ší‚ÍŒŒ‚É‹Q‚¦‚Ä‚¢‚éI"); } if (!*mhit) { @@ -627,9 +677,15 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */ && rnl(4) == 4 - 1) { boolean more_than_1 = (obj->quan > 1L); +#if 0 /*JP*/ pline("As you hit %s, %s%s breaks into splinters.", mon_nam(mon), more_than_1 ? "one of " : "", yname(obj)); +#else + pline("%s‚ðUŒ‚‚·‚é‚ƁC%s%s‚Í‚±‚Á‚Ï‚Ý‚¶‚ñ‚É‚È‚Á‚½D", + mon_nam(mon), yname(obj), + more_than_1 ? "‚̂ЂƂÂ" : ""); +#endif if (!more_than_1) uwepgone(); /* set unweapon */ useup(obj); @@ -648,7 +704,10 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */ } else if (mon->mflee && Role_if(PM_ROGUE) && !Upolyd /* multi-shot throwing is too powerful here */ && hand_to_hand) { +/*JP You("strike %s from behind!", mon_nam(mon)); +*/ + You("%s‚ð”wŒã‚©‚çUŒ‚‚µ‚½I", mon_nam(mon)); tmp += rnd(u.ulevel); hittxt = TRUE; } else if (dieroll == 2 && obj == uwep @@ -672,8 +731,13 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */ */ setmnotwielded(mon, monwep); mon->weapon_check = NEED_WEAPON; +#if 0 /*JP*/ pline("%s from the force of your blow!", Yobjnam2(monwep, "shatter")); +#else + pline("%s‚Ì%s‚Í‚ ‚È‚½‚̈ꌂ‚Å•²X‚É‚È‚Á‚½I", + Monnam(mon), xname(monwep)); +#endif m_useupall(mon, monwep); /* If someone just shattered MY weapon, I'd flee! */ if (rn2(4)) { @@ -735,7 +799,9 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */ } else { if (mdat == &mons[PM_SHADE] && !shade_aware(obj)) { tmp = 0; +#if 0 /*JP*/ Strcpy(unconventional, cxname(obj)); +#endif } else { switch (obj->otyp) { case BOULDER: /* 1d20 */ @@ -745,7 +811,10 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */ break; case MIRROR: if (breaktest(obj)) { +/*JP You("break %s. That's bad luck!", ysimple_name(obj)); +*/ + You("%s‹¾‚ð‰ó‚µ‚Ä‚µ‚Ü‚Á‚½D‚±‚è‚á‚Ü‚¢‚Á‚½I", ysimple_name(obj)); change_luck(-2); useup(obj); obj = (struct obj *) 0; @@ -756,7 +825,10 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */ tmp = 1; break; case EXPENSIVE_CAMERA: +/*JP You("succeed in destroying %s. Congratulations!", +*/ + You("%sƒJƒƒ‰‚ð‰ó‚·‚±‚Æ‚ª‚Å‚«‚½D‚¨‚ß‚Å‚Æ‚¤I", ysimple_name(obj)); release_camera_demon(obj, u.ux, u.uy); useup(obj); @@ -765,10 +837,17 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */ if (touch_petrifies(&mons[obj->corpsenm])) { tmp = 1; hittxt = TRUE; +#if 0 /*JP*/ You("hit %s with %s.", mon_nam(mon), corpse_xname(obj, (const char *) 0, obj->dknown ? CXN_PFX_THE : CXN_ARTICLE)); +#else + You("%s‚ð%s‚ōUŒ‚‚µ‚½D", mon_nam(mon), + corpse_xname(obj, (const char *) 0, + obj->dknown ? CXN_PFX_THE + : CXN_ARTICLE)); +#endif obj->dknown = 1; if (!munstone(mon, TRUE)) minstapetrify(mon, TRUE); @@ -812,12 +891,20 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */ if (touch_petrifies(&mons[obj->corpsenm])) { /*learn_egg_type(obj->corpsenm);*/ +#if 0 /*JP*/ pline("Splat! You hit %s with %s %s egg%s!", mon_nam(mon), obj->known ? "the" : cnt > 1L ? "some" : "a", obj->known ? mons[obj->corpsenm].mname : "petrifying", plur(cnt)); +#else + pline("ƒrƒ`ƒƒƒbI‚ ‚È‚½‚Í%s‚É%s%s‚Ì—‘‚ð“Š‚°‚‚¯‚½I", + mon_nam(mon), + cnt > 1L ? "‚¢‚­‚‚©‚Ì" : "", + obj->known ? mons[obj->corpsenm].mname + : "Î‰»"); +#endif obj->known = 1; /* (not much point...) */ useup_eggs(obj); if (!munstone(mon, TRUE)) @@ -826,15 +913,27 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */ break; return (boolean) (mon->mhp > 0); } else { /* ordinary egg(s) */ +#if 0 /*JP*/ const char *eggp = (obj->corpsenm != NON_PM && obj->known) ? the(mons[obj->corpsenm].mname) : (cnt > 1L) ? "some" : "an"; You("hit %s with %s egg%s.", mon_nam(mon), eggp, plur(cnt)); +#else + const char *eggp = + (obj->corpsenm != NON_PM && obj->known) + ? mons[obj->corpsenm].mname : ""; + You("%s‚É%s%s—‘‚ð“Š‚°‚‚¯‚½D", + mon_nam(mon), eggp, *eggp ? "‚Ì" : ""); +#endif if (touch_petrifies(mdat) && !stale_egg(obj)) { +#if 0 /*JP*/ pline_The("egg%s %s alive any more...", plur(cnt), (cnt == 1L) ? "isn't" : "aren't"); +#else + pline("‚à‚¤—‘‚ª›z‰»‚·‚邱‚Æ‚Í‚È‚¢‚¾‚낤DDD"); +#endif if (obj->timed) obj_stop_timers(obj); obj->otyp = ROCK; @@ -846,7 +945,10 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */ if (thrown) place_object(obj, mon->mx, mon->my); } else { +/*JP pline("Splat!"); +*/ + pline("ƒrƒ`ƒƒƒbI"); useup_eggs(obj); exercise(A_WIS, FALSE); } @@ -869,11 +971,21 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */ : AT_WEAP), obj)) { if (Blind) { +#if 0 /*JP*/ pline(obj->otyp == CREAM_PIE ? "Splat!" : "Splash!"); +#else + pline(obj->otyp == CREAM_PIE ? "ƒrƒVƒƒƒbI" + : "ƒsƒ`ƒƒƒbI"); +#endif } else if (obj->otyp == BLINDING_VENOM) { +#if 0 /*JP*/ pline_The("venom blinds %s%s!", mon_nam(mon), mon->mcansee ? "" : " further"); +#else + pline("“ʼnt‚Å%s‚Í%s–Ú‚ªŒ©‚¦‚È‚­‚È‚Á‚½I", mon_nam(mon), + mon->mcansee ? "" : "‚³‚ç‚É"); +#endif } else { char *whom = mon_nam(mon); char *what = The(xname(obj)); @@ -883,10 +995,20 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */ /* note: s_suffix returns a modifiable buffer */ if (haseyes(mdat) && mdat != &mons[PM_FLOATING_EYE]) +#if 0 /*JP*/ whom = strcat(strcat(s_suffix(whom), " "), mbodypart(mon, FACE)); +#else + whom = strcat(strcat(s_suffix(whom), "‚Ì"), + mbodypart(mon, FACE)); +#endif +#if 0 /*JP*/ pline("%s %s over %s!", what, vtense(what, "splash"), whom); +#else + pline("%s‚Í%s‚É‚Ô‚¿‚Ü‚¯‚ç‚ꂽI", + what, whom); +#endif } setmangry(mon); mon->mcansee = 0; @@ -896,7 +1018,10 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */ else mon->mblinded += tmp; } else { +/*JP pline(obj->otyp == CREAM_PIE ? "Splat!" : "Splash!"); +*/ + pline(obj->otyp==CREAM_PIE ? "ƒrƒVƒƒƒbI" : "ƒsƒ`ƒƒƒbI"); setmangry(mon); } if (thrown) @@ -909,10 +1034,16 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */ break; case ACID_VENOM: /* thrown (or spit) */ if (resists_acid(mon)) { +/*JP Your("venom hits %s harmlessly.", mon_nam(mon)); +*/ + pline("“ʼnt‚Í%s‚É‚ÍŒø‰Ê‚ª‚È‚©‚Á‚½D", mon_nam(mon)); tmp = 0; } else { +/*JP Your("venom burns %s!", mon_nam(mon)); +*/ + Your("“ʼnt‚Í%s‚ðÄ‚¢‚½I", mon_nam(mon)); tmp = dmgval(obj, mon); } if (thrown) @@ -985,10 +1116,16 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */ if (nopoison < 2) nopoison = 2; if (Role_if(PM_SAMURAI)) { +/*JP You("dishonorably use a poisoned weapon!"); +*/ + You("•s–¼—_‚É‚à“Å‚Ì•Ší‚ðŽg—p‚µ‚½I"); adjalign(-sgn(u.ualign.type)); } else if (u.ualign.type == A_LAWFUL && u.ualign.record > -10) { +/*JP You_feel("like an evil coward for using a poisoned weapon."); +*/ + You("“Å‚Ì•Ší‚ðŽg—p‚·‚é‚͔̂ڋ¯‚¾‚ÆŠ´‚¶‚½D"); adjalign(-1); } if (obj && !rn2(nopoison)) { @@ -1010,10 +1147,14 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */ tmp = 0; if (mdat == &mons[PM_SHADE]) { if (!hittxt) { +#if 0 /*JP*/ const char *what = *unconventional ? unconventional : "attack"; Your("%s %s harmlessly through %s.", what, vtense(what, "pass"), mon_nam(mon)); +#else + Your("UŒ‚‚Í%s‚ð’Ê‚è‚Ê‚¯‚½D", mon_nam(mon)); +#endif hittxt = TRUE; } } else { @@ -1024,9 +1165,15 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */ if (jousting) { tmp += d(2, (obj == uwep) ? 10 : 2); /* [was in dmgval()] */ +/*JP You("joust %s%s", mon_nam(mon), canseemon(mon) ? exclam(tmp) : "."); +*/ + You("%s‚É“ËŒ‚‚µ‚½%s", mon_nam(mon), canseemon(mon) ? exclam(tmp) : "D"); if (jousting < 0) { +/*JP pline("%s shatters on impact!", Yname2(obj)); +*/ + Your("%s‚͏Ռ‚‚ʼnó‚ꂽI", xname(obj)); /* (must be either primary or secondary weapon to get here) */ u.twoweap = FALSE; /* untwoweapon() is too verbose here */ if (obj == uwep) @@ -1048,8 +1195,13 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */ if (rnd(100) < P_SKILL(P_BARE_HANDED_COMBAT) && !bigmonst(mdat) && !thick_skinned(mdat)) { if (canspotmon(mon)) +#if 0 /*JP*/ pline("%s %s from your powerful strike!", Monnam(mon), makeplural(stagger(mon->data, "stagger"))); +#else + pline("%s‚Í‚ ‚È‚½‚̉ïS‚̈ꌂ‚Å‚æ‚ë‚ß‚¢‚½I", + Monnam(mon)); +#endif /* avoid migrating a dead monster */ if (mon->mhp > tmp) { mhurtle(mon, u.dx, u.dy, 1); @@ -1084,7 +1236,10 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */ && obj && obj == uwep && objects[obj->otyp].oc_material == IRON && hand_to_hand) { if (clone_mon(mon, 0, 0)) { +/*JP pline("%s divides as you hit it!", Monnam(mon)); +*/ + pline("‚ ‚È‚½‚̍UŒ‚‚Å%s‚Í•ª—ô‚µ‚½I", Monnam(mon)); hittxt = TRUE; } } @@ -1095,10 +1250,18 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */ if (thrown) hit(mshot_xname(obj), mon, exclam(tmp)); else if (!flags.verbose) +/*JP You("hit it."); +*/ + pline("UŒ‚‚Í–½’†‚µ‚½D"); else +#if 0 /*JP*/ You("%s %s%s", Role_if(PM_BARBARIAN) ? "smite" : "hit", mon_nam(mon), canseemon(mon) ? exclam(tmp) : "."); +#else + Your("%s‚ւ̍UŒ‚‚Í–½’†‚µ‚½%s", + mon_nam(mon), canseemon(mon) ? exclam(tmp) : "D"); +#endif } if (silvermsg) { @@ -1108,23 +1271,45 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */ if (canspotmon(mon)) { if (barehand_silver_rings == 1) +/*JP fmt = "Your silver ring sears %s!"; +*/ + fmt = "%s‚Í‹â‚ÌŽw—ւŏĂ©‚ꂽI"; else if (barehand_silver_rings == 2) +/*JP fmt = "Your silver rings sear %s!"; +*/ + fmt = "%s‚Í‹â‚ÌŽw—ւŏĂ©‚ꂽI"; else if (silverobj && saved_oname[0]) { +#if 0 /*JP*/ Sprintf(silverobjbuf, "Your %s%s %s %%s!", strstri(saved_oname, "silver") ? "" : "silver ", saved_oname, vtense(saved_oname, "sear")); +#else + Sprintf(silverobjbuf, "%%s‚Í%s%s‚ŏĂ©‚ꂽI", + strstri(saved_oname, "‹â") ? + "" : "‹â‚Ì", + saved_oname); +#endif fmt = silverobjbuf; } else +/*JP fmt = "The silver sears %s!"; +*/ + fmt = "%s‚Í‹â‚ŏĂ©‚ꂽI"; } else { *whom = highc(*whom); /* "it" -> "It" */ +/*JP fmt = "%s is seared!"; +*/ + fmt = "%s‚͏Ă©‚ꂽI"; } /* note: s_suffix returns a modifiable buffer */ if (!noncorporeal(mdat) && !amorphous(mdat)) +/*JP whom = strcat(s_suffix(whom), " flesh"); +*/ + whom = strcat(s_suffix(whom), "‚Ì“÷"); pline(fmt, whom); } /* if a "no longer poisoned" message is coming, it will be last; @@ -1137,9 +1322,15 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */ /* [note: thrown obj might go away during killed/xkilled call] */ if (needpoismsg) +/*JP pline_The("poison doesn't seem to affect %s.", mon_nam(mon)); +*/ + pline("“Å‚Í%s‚ÉŒø‚©‚È‚©‚Á‚½‚悤‚¾D", mon_nam(mon)); if (poiskilled) { +/*JP pline_The("poison was deadly..."); +*/ + pline("“Å‚Í’vŽ€—Ê‚¾‚Á‚½DDD"); if (!already_killed) xkilled(mon, 0); destroyed = TRUE; /* return FALSE; */ @@ -1152,12 +1343,19 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */ mon->mconf = 1; if (!mon->mstun && mon->mcanmove && !mon->msleeping && canseemon(mon)) +/*JP pline("%s appears confused.", Monnam(mon)); +*/ + pline("%s‚͍¬—‚µ‚Ä‚¢‚é‚悤‚¾D", Monnam(mon)); } } if (unpoisonmsg) +#if 0 /*JP*/ Your("%s %s no longer poisoned.", saved_oname, vtense(saved_oname, "are")); +#else + Your("%s‚Í‚à‚¤“Å‚ª“h‚ç‚ê‚Ä‚¢‚È‚¢D", xname(obj)); +#endif return destroyed ? FALSE : TRUE; } @@ -1210,6 +1408,7 @@ struct attack *mattk; protection might fail (33% chance) when the armor is cursed */ if (obj && (obj->greased || obj->otyp == OILSKIN_CLOAK) && (!obj->cursed || rn2(3))) { +#if 0 /*JP*/ You("%s %s %s %s!", mattk->adtyp == AD_WRAP ? "slip off of" : "grab, but cannot hold onto", @@ -1219,9 +1418,21 @@ struct attack *mattk; (obj->greased || objects[obj->otyp].oc_name_known) ? xname(obj) : cloak_simple_name(obj)); +#else + You("%s‚Ì%s%s%sI", + mon_nam(mdef), obj->greased ? "–û‚Ì“h‚ç‚ꂽ" : "ŠŠ‚è‚â‚·‚¢", + (obj->greased || objects[obj->otyp].oc_name_known) + ? xname(obj) + : cloak_simple_name(obj), + mattk->adtyp == AD_WRAP ? "‚ÅŠŠ‚Á‚½" + : "‚ð‚‚©‚܂悤‚Æ‚µ‚½‚ªC‚Å‚«‚È‚©‚Á‚½"); +#endif if (obj->greased && !rn2(2)) { +/*JP pline_The("grease wears off."); +*/ + pline("–û‚Í—Ž‚¿‚Ä‚µ‚Ü‚Á‚½D"); obj->greased = 0; } return TRUE; @@ -1276,7 +1487,10 @@ demonpet() struct permonst *pm; struct monst *dtmp; +/*JP pline("Some hell-p has arrived!"); +*/ + pline("’n–‚Ì’‡ŠÔ‚ªŒ»‚í‚ꂽI"); i = !rn2(6) ? ndemon(u.ualign.type) : NON_PM; pm = i != NON_PM ? &mons[i] : youmonst.data; if ((dtmp = makemon(pm, u.ux, u.uy, NO_MM_FLAGS)) != 0) @@ -1342,11 +1556,19 @@ struct attack *mattk; if (stealoid) { /* we will be taking everything */ if (gender(mdef) == (int) u.mfemale && youmonst.data->mlet == S_NYMPH) +/*JP You("charm %s. She gladly hands over her possessions.", +*/ + You("%s‚ð‚¤‚Á‚Ƃ肳‚¹‚½D”ޏ—‚Í‚æ‚낱‚ñ‚ÅŽ‚¿•¨‚ð‚³‚µ‚¾‚µ‚½D", mon_nam(mdef)); else +#if 0 /*JP*/ You("seduce %s and %s starts to take off %s clothes.", mon_nam(mdef), mhe(mdef), mhis(mdef)); +#else + You("%s‚ð—U˜f‚µ‚½D%s‚Í•ž‚ð’E‚¬‚Í‚¶‚ß‚½D", + mon_nam(mdef), mhe(mdef)); +#endif } while ((otmp = mdef->minvent) != 0) { @@ -1362,12 +1584,21 @@ struct attack *mattk; update_mon_intrinsics(mdef, otmp, FALSE, FALSE); if (otmp == stealoid) /* special message for final item */ +#if 0 /*JP*/ pline("%s finishes taking off %s suit.", Monnam(mdef), mhis(mdef)); +#else + pline("%s‚Í’E‚¬I‚¦‚½D", Monnam(mdef)); +#endif } /* give the object to the character */ +#if 0 /*JP*/ otmp = hold_another_object(otmp, "You snatched but dropped %s.", doname(otmp), "You steal: "); +#else + otmp = hold_another_object(otmp, "‚ ‚È‚½‚Í%s‚𓐂ñ‚¾‚ª—Ž‚Æ‚µ‚½D", + doname(otmp), "‚𓐂ñ‚¾D"); +#endif if (otmp->where != OBJ_INVENT) continue; if (theft_petrifies(otmp)) @@ -1408,8 +1639,12 @@ register struct attack *mattk; switch (mattk->adtyp) { case AD_STUN: if (!Blind) +#if 0 /*JP*/ pline("%s %s for a moment.", Monnam(mdef), makeplural(stagger(pd, "stagger"))); +#else + pline("%s‚͈êu‚­‚ç‚­‚炵‚½D", Monnam(mdef)); +#endif mdef->mstun = 1; goto physical; case AD_LEGS: @@ -1456,10 +1691,16 @@ register struct attack *mattk; break; } if (!Blind) +/*JP pline("%s is %s!", Monnam(mdef), on_fire(pd, mattk)); +*/ + pline("%s‚Í%sI", Monnam(mdef), on_fire(mdef->data, mattk)); if (pd == &mons[PM_STRAW_GOLEM] || pd == &mons[PM_PAPER_GOLEM]) { if (!Blind) +/*JP pline("%s burns completely!", Monnam(mdef)); +*/ + pline("%s‚ÍŠ®‘S‚É”R‚¦s‚«‚½I", Monnam(mdef)); xkilled(mdef, 2); tmp = 0; break; @@ -1469,7 +1710,10 @@ register struct attack *mattk; tmp += destroy_mitem(mdef, SPBOOK_CLASS, AD_FIRE); if (resists_fire(mdef)) { if (!Blind) +/*JP pline_The("fire doesn't heat %s!", mon_nam(mdef)); +*/ + pline("‰Š‚Í%s‚ɉe‹¿‚ª‚È‚¢I", mon_nam(mdef)); golemeffects(mdef, AD_FIRE, tmp); shieldeff(mdef->mx, mdef->my); tmp = 0; @@ -1483,11 +1727,17 @@ register struct attack *mattk; break; } if (!Blind) +/*JP pline("%s is covered in frost!", Monnam(mdef)); +*/ + pline("%s‚Í•X‚Å•¢‚í‚ꂽI", Monnam(mdef)); if (resists_cold(mdef)) { shieldeff(mdef->mx, mdef->my); if (!Blind) +/*JP pline_The("frost doesn't chill %s!", mon_nam(mdef)); +*/ + pline("•X‚Í%s‚𓀂炷‚±‚Æ‚ª‚Å‚«‚È‚¢I", mon_nam(mdef)); golemeffects(mdef, AD_COLD, tmp); tmp = 0; } @@ -1499,11 +1749,17 @@ register struct attack *mattk; break; } if (!Blind) +/*JP pline("%s is zapped!", Monnam(mdef)); +*/ + pline("%s‚Í“dŒ‚‚ð‚­‚ç‚Á‚½I", Monnam(mdef)); tmp += destroy_mitem(mdef, WAND_CLASS, AD_ELEC); if (resists_elec(mdef)) { if (!Blind) +/*JP pline_The("zap doesn't shock %s!", mon_nam(mdef)); +*/ + pline("“dŒ‚‚Í%s‚ɉe‹¿‚ð—^‚¦‚È‚¢I", mon_nam(mdef)); golemeffects(mdef, AD_ELEC, tmp); shieldeff(mdef->mx, mdef->my); tmp = 0; @@ -1535,9 +1791,15 @@ register struct attack *mattk; obj_extract_self(mongold); if (merge_choice(invent, mongold) || inv_cnt(FALSE) < 52) { addinv(mongold); +/*JP Your("purse feels heavier."); +*/ + You("à•z‚ªd‚­‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½D"); } else { +/*JP You("grab %s's gold, but find no room in your knapsack.", +*/ + You("%s‚Ì‚¨‹à‚ð‚‚©‚ñ‚¾‚ªCŽ‚¿•¨‘Ü‚É“ü‚ç‚È‚©‚Á‚½D", mon_nam(mdef)); dropy(mongold); } @@ -1557,13 +1819,19 @@ register struct attack *mattk; Strcpy(nambuf, Monnam(mdef)); if (u_teleport_mon(mdef, FALSE) && u_saw_mon && !(canseemon(mdef) || (u.uswallow && u.ustuck == mdef))) +/*JP pline("%s suddenly disappears!", nambuf); +*/ + pline("%s‚Í“Ë‘RÁ‚¦‚½I", nambuf); } break; case AD_BLND: if (can_blnd(&youmonst, mdef, mattk->aatyp, (struct obj *) 0)) { if (!Blind && mdef->mcansee) +/*JP pline("%s is blinded.", Monnam(mdef)); +*/ + pline("%s‚Í–Ú‚ªŒ©‚¦‚È‚­‚È‚Á‚½D", Monnam(mdef)); mdef->mcansee = 0; tmp += mdef->mblinded; if (tmp > 127) @@ -1576,13 +1844,19 @@ register struct attack *mattk; if (night() && !rn2(10) && !mdef->mcan) { if (pd == &mons[PM_CLAY_GOLEM]) { if (!Blind) +/*JP pline("Some writing vanishes from %s head!", +*/ + pline("%s‚Ì“ª‚ɏ‘‚¢‚Ä‚ ‚镶Žš‚Ì‚¢‚­‚‚©‚ªÁ‚¦‚½I", s_suffix(mon_nam(mdef))); xkilled(mdef, 0); /* Don't return yet; keep hp<1 and tmp=0 for pet msg */ } else { mdef->mcan = 1; +/*JP You("chuckle."); +*/ + You("‚­‚·‚­‚·Î‚Á‚½D"); } } tmp = 0; @@ -1590,10 +1864,16 @@ register struct attack *mattk; case AD_DRLI: if (!negated && !rn2(3) && !resists_drli(mdef)) { int xtmp = d(2, 6); +/*JP pline("%s suddenly seems weaker!", Monnam(mdef)); +*/ + pline("%s‚Í“Ë‘RŽã‚­‚È‚Á‚½‚悤‚ÉŒ©‚¦‚½I", Monnam(mdef)); mdef->mhpmax -= xtmp; if ((mdef->mhp -= xtmp) <= 0 || !mdef->m_lev) { +/*JP pline("%s dies!", Monnam(mdef)); +*/ + pline("%s‚ÍŽ€‚ñ‚¾I", Monnam(mdef)); xkilled(mdef, 0); } else mdef->m_lev--; @@ -1602,7 +1882,10 @@ register struct attack *mattk; break; case AD_RUST: if (pd == &mons[PM_IRON_GOLEM]) { +/*JP pline("%s falls to pieces!", Monnam(mdef)); +*/ + pline("%s‚̓oƒ‰ƒoƒ‰‚É‚È‚Á‚½I", Monnam(mdef)); xkilled(mdef, 0); } erode_armor(mdef, ERODE_RUST); @@ -1614,7 +1897,10 @@ register struct attack *mattk; break; case AD_DCAY: if (pd == &mons[PM_WOOD_GOLEM] || pd == &mons[PM_LEATHER_GOLEM]) { +/*JP pline("%s falls to pieces!", Monnam(mdef)); +*/ + pline("%s‚̓oƒ‰ƒoƒ‰‚É‚È‚Á‚½I", Monnam(mdef)); xkilled(mdef, 0); } erode_armor(mdef, ERODE_ROT); @@ -1629,12 +1915,21 @@ register struct attack *mattk; case AD_DRDX: case AD_DRCO: if (!negated && !rn2(8)) { +/*JP Your("%s was poisoned!", mpoisons_subj(&youmonst, mattk)); +*/ + Your("%s‚Í“Å‚³‚ê‚Ä‚¢‚éI", mpoisons_subj(&youmonst, mattk)); if (resists_poison(mdef)) +/*JP pline_The("poison doesn't seem to affect %s.", mon_nam(mdef)); +*/ + pline("“Å‚Í%s‚ɉe‹¿‚ð—^‚¦‚È‚¢D", mon_nam(mdef)); else { if (!rn2(10)) { +/*JP Your("poison was deadly..."); +*/ + Your("—^‚¦‚½“Å‚Í’vŽ€—Ê‚¾‚Á‚½DDD"); tmp = mdef->mhp; } else tmp += rn1(10, 6); @@ -1645,11 +1940,17 @@ register struct attack *mattk; struct obj *helmet; if (notonhead || !has_head(pd)) { +/*JP pline("%s doesn't seem harmed.", Monnam(mdef)); +*/ + pline("%s‚͏‚‚¢‚½‚悤‚É‚ÍŒ©‚¦‚È‚¢D", Monnam(mdef)); tmp = 0; if (!Unchanging && pd == &mons[PM_GREEN_SLIME]) { if (!Slimed) { +/*JP You("suck in some slime and don't feel very well."); +*/ + You("ƒXƒ‰ƒCƒ€‚ð‹z‚¢Žæ‚Á‚āC‹ï‡‚ªˆ«‚­‚È‚Á‚½D"); make_slimed(10L, (char *) 0); } } @@ -1659,9 +1960,14 @@ register struct attack *mattk; break; if ((helmet = which_armor(mdef, W_ARMH)) != 0 && rn2(8)) { +#if 0 /*JP*/ pline("%s %s blocks your attack to %s head.", s_suffix(Monnam(mdef)), helm_simple_name(helmet), mhis(mdef)); +#else + pline("%s‚Ì%s‚ª“ª‚ւ̍UŒ‚‚ð–h‚¢‚¾D", + Monnam(mdef), helm_simple_name(helmet)); +#endif break; } @@ -1678,22 +1984,36 @@ register struct attack *mattk; if (m_slips_free(mdef, mattk)) { tmp = 0; } else { +/*JP You("swing yourself around %s!", mon_nam(mdef)); +*/ + You("%s‚ɐg‘̂𗍂݂‚©‚¹‚½I", mon_nam(mdef)); u.ustuck = mdef; } } else if (u.ustuck == mdef) { /* Monsters don't wear amulets of magical breathing */ if (is_pool(u.ux, u.uy) && !is_swimmer(pd) && !amphibious(pd)) { +/*JP You("drown %s...", mon_nam(mdef)); +*/ + You("%s‚ð“M‚ꂳ‚¹‚½DDD", mon_nam(mdef)); tmp = mdef->mhp; } else if (mattk->aatyp == AT_HUGS) +/*JP pline("%s is being crushed.", Monnam(mdef)); +*/ + pline("%s‚͉Ÿ‚µ‚‚Ԃ³‚ê‚Ä‚¢‚éD", Monnam(mdef)); } else { tmp = 0; if (flags.verbose) +#if 0 /*JP*/ You("brush against %s %s.", s_suffix(mon_nam(mdef)), mbodypart(mdef, LEG)); +#else + You("%s‚Ì%s‚ɐG‚ꂽD", mon_nam(mdef), + mbodypart(mdef, LEG)); +#endif } } else tmp = 0; @@ -1701,14 +2021,20 @@ register struct attack *mattk; case AD_PLYS: if (!negated && mdef->mcanmove && !rn2(3) && tmp < mdef->mhp) { if (!Blind) +/*JP pline("%s is frozen by you!", Monnam(mdef)); +*/ + pline("%s‚Í‚ ‚È‚½‚Ì‚É‚ç‚Ý‚Å“®‚¯‚È‚­‚È‚Á‚½I", Monnam(mdef)); paralyze_monst(mdef, rnd(10)); } break; case AD_SLEE: if (!negated && !mdef->msleeping && sleep_monst(mdef, rnd(10), -1)) { if (!Blind) +/*JP pline("%s is put to sleep by you!", Monnam(mdef)); +*/ + pline("%s‚Í“Ë‘R–°‚è‚É‚¨‚¿‚½I", Monnam(mdef)); slept_monst(mdef); } break; @@ -1719,7 +2045,10 @@ register struct attack *mattk; if (!munslime(mdef, TRUE) && mdef->mhp > 0) { /* this assumes newcham() won't fail; since hero has a slime attack, green slimes haven't been geno'd */ +/*JP You("turn %s into slime.", mon_nam(mdef)); +*/ + pline("%s‚̓Xƒ‰ƒCƒ€‚É‚È‚Á‚½D", mon_nam(mdef)); if (newcham(mdef, &mons[PM_GREEN_SLIME], FALSE, FALSE)) pd = mdef->data; } @@ -1739,13 +2068,19 @@ register struct attack *mattk; mon_adjust_speed(mdef, -1, (struct obj *) 0); if (mdef->mspeed != oldspeed && canseemon(mdef)) +/*JP pline("%s slows down.", Monnam(mdef)); +*/ + pline("%s‚Í‚Ì‚ë‚­‚È‚Á‚½D", Monnam(mdef)); } break; case AD_CONF: if (!mdef->mconf) { if (canseemon(mdef)) +/*JP pline("%s looks confused.", Monnam(mdef)); +*/ + pline("%s‚͍¬—‚µ‚½‚悤‚¾D", Monnam(mdef)); mdef->mconf = 1; } break; @@ -1757,11 +2092,17 @@ register struct attack *mattk; mdef->mstrategy &= ~STRAT_WAITFORU; /* in case player is very fast */ if ((mdef->mhp -= tmp) < 1) { if (mdef->mtame && !cansee(mdef->mx, mdef->my)) { +/*JP You_feel("embarrassed for a moment."); +*/ + You("‚µ‚΂炭¢˜f‚µ‚½D"); if (tmp) xkilled(mdef, 0); /* !tmp but hp<1: already killed */ } else if (!flags.verbose) { +/*JP You("destroy it!"); +*/ + You("“|‚µ‚½I"); if (tmp) xkilled(mdef, 0); } else if (tmp) @@ -1778,20 +2119,29 @@ register struct attack *mattk; { register int tmp = d((int) mattk->damn, (int) mattk->damd); +/*JP You("explode!"); +*/ + You("”š”­‚µ‚½I"); switch (mattk->adtyp) { boolean resistance; /* only for cold/fire/elec */ case AD_BLND: if (!resists_blnd(mdef)) { +/*JP pline("%s is blinded by your flash of light!", Monnam(mdef)); +*/ + pline("%s‚͂܂΂䂢Œõ‚Å–Ú‚ª‚­‚ç‚ñ‚¾I", Monnam(mdef)); mdef->mblinded = min((int) mdef->mblinded + tmp, 127); mdef->mcansee = 0; } break; case AD_HALU: if (haseyes(mdef->data) && mdef->mcansee) { +/*JP pline("%s is affected by your flash of light!", Monnam(mdef)); +*/ + pline("%s‚͂܂΂䂢Œõ‚ʼne‹¿‚ðŽó‚¯‚½I", Monnam(mdef)); mdef->mconf = 1; } break; @@ -1805,7 +2155,10 @@ register struct attack *mattk; resistance = resists_elec(mdef); common: if (!resistance) { +/*JP pline("%s gets blasted!", Monnam(mdef)); +*/ + pline("%s‚Í”š”­‚𗁂т½I", Monnam(mdef)); mdef->mhp -= tmp; if (mdef->mhp <= 0) { killed(mdef); @@ -1816,7 +2169,10 @@ register struct attack *mattk; if (is_golem(mdef->data)) golemeffects(mdef, (int) mattk->adtyp, tmp); else +/*JP pline_The("blast doesn't seem to affect %s.", mon_nam(mdef)); +*/ + pline("”š”­‚Í%s‚ɉe‹¿‚ð—^‚¦‚È‚©‚Á‚½‚悤‚¾D", mon_nam(mdef)); } break; default: @@ -1834,7 +2190,10 @@ struct monst *mdef; tmp_at(DISP_ALWAYS, mon_to_glyph(&youmonst)); tmp_at(mdef->mx, mdef->my); } +/*JP You("engulf %s!", mon_nam(mdef)); +*/ + You("%s‚ðˆù‚ݍž‚ñ‚¾I", mon_nam(mdef)); delay_output(); delay_output(); } @@ -1903,11 +2262,20 @@ register struct attack *mattk; case AD_DGST: /* eating a Rider or its corpse is fatal */ if (is_rider(pd)) { +/*JP pline("Unfortunately, digesting any of it is fatal."); +*/ + pline("Žc”O‚È‚ª‚çC‚»‚ê‚ðH‚ׂé‚Ì‚Í’v–½“I‚ȊԈႢ‚¾D"); end_engulf(); +#if 0 /*JP*/ Sprintf(killer.name, "unwisely tried to eat %s", pd->mname); killer.format = NO_KILLER_PREFIX; +#else + Sprintf(killer.name, "‹ð‚©‚É‚à%s‚ðH‚ׂ悤‚Æ‚µ‚Ä", + pd->mname); + killer.format = KILLED_BY; +#endif done(DIED); return 0; /* lifesaved */ } @@ -1924,7 +2292,10 @@ register struct attack *mattk; newuhs(FALSE); xkilled(mdef, 2); if (mdef->mhp > 0) { /* monster lifesaved */ +/*JP You("hurriedly regurgitate the sizzling in your %s.", +*/ + You("%s‚Ì’†‚ŃVƒ…[ƒVƒ…[‚Æ‚¢‚¤‰¹‚𗧂ĂĂ¢‚é‚à‚Ì‚ð‘å‹}‚¬‚Å“f‚«–ß‚µ‚½D", body_part(STOMACH)); } else { tmp = 1 + (pd->cwt >> 8); @@ -1934,14 +2305,20 @@ register struct attack *mattk; u.uhunger += (pd->cnutrit + 1) / 2; } else tmp = 0; +/*JP Sprintf(msgbuf, "You totally digest %s.", mon_nam(mdef)); +*/ + Sprintf(msgbuf, "‚ ‚È‚½‚Í%s‚ðŠ®‘S‚ɏÁ‰»‚µ‚½D", mon_nam(mdef)); if (tmp != 0) { /* setting afternmv = end_engulf is tempting, * but will cause problems if the player is * attacked (which uses his real location) or * if his See_invisible wears off */ +/*JP You("digest %s.", mon_nam(mdef)); +*/ + You("%s‚ðÁ‰»‚µ‚Ä‚¢‚éD", mon_nam(mdef)); if (Slow_digestion) tmp *= 2; nomul(-tmp); @@ -1950,7 +2327,10 @@ register struct attack *mattk; } else pline1(msgbuf); if (pd == &mons[PM_GREEN_SLIME]) { +/*JP Sprintf(msgbuf, "%s isn't sitting well with you.", +*/ + Sprintf(msgbuf, "%s‚Í‚ ‚È‚½‚Æ‚¤‚Ü‚­Ü‚荇‚¢‚ð‚‚¯‚ç‚ê‚È‚¢‚悤‚¾D", The(pd->mname)); if (!Unchanging) { make_slimed(5L, (char *) 0); @@ -1962,18 +2342,33 @@ register struct attack *mattk; return 2; case AD_PHYS: if (youmonst.data == &mons[PM_FOG_CLOUD]) { +/*JP pline("%s is laden with your moisture.", Monnam(mdef)); +*/ + pline("%s‚Í‚ ‚È‚½‚ÌŽ¼‹C‚ɋꂵ‚ß‚ç‚ê‚Ä‚¢‚éD", Monnam(mdef)); if (amphibious(pd) && !flaming(pd)) { dam = 0; +/*JP pline("%s seems unharmed.", Monnam(mdef)); +*/ + pline("%s‚͏‚‚¢‚Ä‚¢‚È‚¢‚悤‚¾D", Monnam(mdef)); } } else +/*JP pline("%s is pummeled with your debris!", Monnam(mdef)); +*/ + pline("%s‚ÍŠ¢âI‚Œɂ߂‚¯‚ç‚ꂽI", Monnam(mdef)); break; case AD_ACID: +/*JP pline("%s is covered with your goo!", Monnam(mdef)); +*/ + pline("%s‚͂˂΂‚­‚à‚Ì‚Å•¢‚í‚ꂽI", Monnam(mdef)); if (resists_acid(mdef)) { +/*JP pline("It seems harmless to %s.", mon_nam(mdef)); +*/ + pline("‚µ‚©‚µC%s‚Í‚È‚ñ‚Æ‚à‚È‚¢D", mon_nam(mdef)); dam = 0; } break; @@ -1981,7 +2376,10 @@ register struct attack *mattk; if (can_blnd(&youmonst, mdef, mattk->aatyp, (struct obj *) 0)) { if (mdef->mcansee) +/*JP pline("%s can't see in there!", Monnam(mdef)); +*/ + pline("%s‚Í–Ú‚ªŒ©‚¦‚È‚­‚È‚Á‚½I", mon_nam(mdef)); mdef->mcansee = 0; dam += mdef->mblinded; if (dam > 127) @@ -1992,10 +2390,16 @@ register struct attack *mattk; break; case AD_ELEC: if (rn2(2)) { +/*JP pline_The("air around %s crackles with electricity.", +*/ + pline("%s‚̉ñ‚è‚Ì‹ó‹C‚Í“d‹C‚ŃsƒŠƒsƒŠ‚µ‚Ä‚¢‚éD", mon_nam(mdef)); if (resists_elec(mdef)) { +/*JP pline("%s seems unhurt.", Monnam(mdef)); +*/ + pline("‚µ‚©‚µC%s‚Í•½‹C‚Ȃ悤‚¾D", Monnam(mdef)); dam = 0; } golemeffects(mdef, (int) mattk->adtyp, dam); @@ -2005,10 +2409,16 @@ register struct attack *mattk; case AD_COLD: if (rn2(2)) { if (resists_cold(mdef)) { +/*JP pline("%s seems mildly chilly.", Monnam(mdef)); +*/ + pline("%s‚͗₦‚½‚悤‚¾D", Monnam(mdef)); dam = 0; } else +/*JP pline("%s is freezing to death!", Monnam(mdef)); +*/ + pline("%s‚Í“€Ž€‚µ‚»‚¤‚¾I", Monnam(mdef)); golemeffects(mdef, (int) mattk->adtyp, dam); } else dam = 0; @@ -2016,10 +2426,16 @@ register struct attack *mattk; case AD_FIRE: if (rn2(2)) { if (resists_fire(mdef)) { +/*JP pline("%s seems mildly hot.", Monnam(mdef)); +*/ + pline("%s‚Í’g‚©‚­‚È‚Á‚½‚悤‚¾D", Monnam(mdef)); dam = 0; } else +/*JP pline("%s is burning to a crisp!", Monnam(mdef)); +*/ + pline("%s‚Í”R‚¦‚ăJƒ‰ƒJƒ‰‚É‚È‚Á‚½I", Monnam(mdef)); golemeffects(mdef, (int) mattk->adtyp, dam); } else dam = 0; @@ -2036,10 +2452,18 @@ register struct attack *mattk; if (mdef->mhp <= 0) /* not lifesaved */ return 2; } +#if 0 /*JP*/ You("%s %s!", is_animal(youmonst.data) ? "regurgitate" : "expel", mon_nam(mdef)); +#else + You("%s‚ð%s‚µ‚½I", mon_nam(mdef), + is_animal(youmonst.data) ? "“f‚«–ß" : "”ro"); +#endif if (Slow_digestion || is_animal(youmonst.data)) { +/*JP pline("Obviously, you didn't like %s taste.", +*/ + pline("‚Ç‚¤‚à%s‚Ì–¡‚͍D‚«‚É‚È‚ê‚È‚¢D", s_suffix(mon_nam(mdef))); } } @@ -2057,11 +2481,20 @@ boolean wouldhavehit; Your("armor is rather cumbersome..."); if (could_seduce(&youmonst, mdef, mattk)) +/*JP You("pretend to be friendly to %s.", mon_nam(mdef)); +*/ + You("%s‚É—FD“I‚È‚Ó‚è‚ð‚µ‚½D", mon_nam(mdef)); else if (canspotmon(mdef) && flags.verbose) +/*JP You("miss %s.", mon_nam(mdef)); +*/ + Your("%s‚ւ̍UŒ‚‚ÍŠO‚ꂽD", mon_nam(mdef)); else +/*JP You("miss it."); +*/ + Your("‰½ŽÒ‚©‚ւ̍UŒ‚‚ÍŠO‚ꂽD"); if (!mdef->msleeping && mdef->mcanmove) wakeup(mdef); } @@ -2135,11 +2568,19 @@ register struct monst *mon; if (!u.uswallow && (compat = could_seduce(&youmonst, mon, mattk))) { +#if 0 /*JP*/ You("%s %s %s.", mon->mcansee && haseyes(mon->data) ? "smile at" : "talk to", mon_nam(mon), compat == 2 ? "engagingly" : "seductively"); +#else + You("%s‚Ö%s%sD", + mon_nam(mon), + compat == 2 ? "–£—Í“I‚É" : "—U˜f“I‚É", + mon->mcansee && haseyes(mon->data) ? "”÷Î‚Ý‚©‚¯‚½" + : "˜b‚µ‚©‚¯‚½"); +#endif /* doesn't anger it; no wakeup() */ sum[i] = damageum(mon, mattk); break; @@ -2149,24 +2590,48 @@ register struct monst *mon; if (mon->data == &mons[PM_SHADE] && !(mattk->aatyp == AT_KICK && uarmf && uarmf->blessed)) { +/*JP Your("attack passes harmlessly through %s.", +*/ + Your("UŒ‚‚Í%s‚ð‚·‚Á‚Æ’Ê‚è‚Ê‚¯‚½D", mon_nam(mon)); break; } if (mattk->aatyp == AT_KICK) +/*JP You("kick %s.", mon_nam(mon)); +*/ + You("%s‚ðR‚Á‚½D", mon_nam(mon)); else if (mattk->aatyp == AT_BITE) +/*JP You("bite %s.", mon_nam(mon)); +*/ + You("%s‚ÉŠš‚݂‚¢‚½D", mon_nam(mon)); else if (mattk->aatyp == AT_STNG) +/*JP You("sting %s.", mon_nam(mon)); +*/ + You("%s‚É“Ë‚«‚³‚µ‚½D", mon_nam(mon)); else if (mattk->aatyp == AT_BUTT) +/*JP You("butt %s.", mon_nam(mon)); +*/ + You("%s‚É“ª“Ë‚«‚ð‚­‚ç‚킵‚½D", mon_nam(mon)); else if (mattk->aatyp == AT_TUCH) +/*JP You("touch %s.", mon_nam(mon)); +*/ + You("%s‚ɐG‚ꂽD", mon_nam(mon)); else if (mattk->aatyp == AT_TENT) +/*JP Your("tentacles suck %s.", mon_nam(mon)); +*/ + Your("GŽè‚ª%s‚̑̉t‚ð‹z‚¢‚Æ‚Á‚½D", mon_nam(mon)); else +/*JP You("hit %s.", mon_nam(mon)); +*/ + Your("%s‚ւ̍UŒ‚‚Í–½’†‚µ‚½D", mon_nam(mon)); sum[i] = damageum(mon, mattk); } else { missum(mon, mattk, (tmp + armorpenalty > dieroll)); @@ -2180,14 +2645,26 @@ register struct monst *mon; dhit = 1; wakeup(mon); if (mon->data == &mons[PM_SHADE]) +/*JP Your("hug passes harmlessly through %s.", mon_nam(mon)); +*/ + You("%s‚ð‚‚©‚Ü‚¦‚悤‚Æ‚µ‚½‚ª’Ê‚è‚Ê‚¯‚½D", mon_nam(mon)); else if (!sticks(mon->data) && !u.uswallow) { if (mon == u.ustuck) { +#if 0 /*JP*/ pline("%s is being %s.", Monnam(mon), u.umonnum == PM_ROPE_GOLEM ? "choked" : "crushed"); +#else + pline("%s‚Í%sD", Monnam(mon), + u.umonnum==PM_ROPE_GOLEM ? "Žñ‚ði‚ß‚ç‚ê‚Ä‚¢‚é" + : "‰Ÿ‚µ‚‚Ԃ³‚ê‚Ä‚¢‚é"); +#endif sum[i] = damageum(mon, mattk); } else if (i >= 2 && sum[i - 1] && sum[i - 2]) { +/*JP You("grab %s!", mon_nam(mon)); +*/ + You("%s‚ð‚‚©‚Ü‚¦‚½I", mon_nam(mon)); u.ustuck = mon; sum[i] = damageum(mon, mattk); } @@ -2206,13 +2683,19 @@ register struct monst *mon; if ((dhit = (tmp > rnd(20 + i)))) { wakeup(mon); if (mon->data == &mons[PM_SHADE]) +/*JP Your("attempt to surround %s is harmless.", mon_nam(mon)); +*/ + You("%s‚ðˆù‚Ý‚±‚à‚¤‚Æ‚µ‚½‚ªŽ¸”s‚µ‚½D", mon_nam(mon)); else { sum[i] = gulpum(mon, mattk); if (sum[i] == 2 && (mon->data->mlet == S_ZOMBIE || mon->data->mlet == S_MUMMY) && rn2(5) && !Sick_resistance) { +/*JP You_feel("%ssick.", (Sick) ? "very " : ""); +*/ + You_feel("%s‹C•ª‚ªˆ«‚¢D", (Sick) ? "‚Æ‚Ä‚à" : ""); mdamageu(mon, rnd(8)); } } @@ -2307,10 +2790,16 @@ boolean wep_was_destroyed; case AD_ACID: if (mhit && rn2(2)) { if (Blind || !flags.verbose) +/*JP You("are splashed!"); +*/ + You("‰½‚©‚𗁂т¹‚ç‚ꂽI"); else +/*JP You("are splashed by %s acid!", s_suffix(mon_nam(mon))); - +*/ + You("%s‚ÌŽ_‚𗁂т¹‚ç‚ꂽI", s_suffix(mon_nam(mon))); + if (!Acid_resistance) mdamageu(mon, tmp); if (!rn2(30)) @@ -2377,9 +2866,15 @@ boolean wep_was_destroyed; /* wrath of gods for attacking Oracle */ if (Antimagic) { shieldeff(u.ux, u.uy); +/*JP pline("A hail of magic missiles narrowly misses you!"); +*/ + pline("–‚–@‚Ì–î‚̉J‚ð‚È‚ñ‚Æ‚©‚©‚킵‚½I"); } else { +/*JP You("are hit by magic missiles appearing from thin air!"); +*/ + pline("“Ë”@‹ó’†‚ÉŒ»‚í‚ꂽ–‚–@‚̖–½’†‚µ‚½I"); mdamageu(mon, tmp); } break; @@ -2412,32 +2907,52 @@ boolean wep_was_destroyed; break; } if (mon->mcansee) { +/*JP if (ureflects("%s gaze is reflected by your %s.", +*/ + if (ureflects("%s‚Ì‚É‚ç‚Ý‚Í%s‚É‚æ‚Á‚Ä”½ŽË‚³‚ꂽD", s_suffix(Monnam(mon)))) { ; } else if (Free_action) { +/*JP You("momentarily stiffen under %s gaze!", +*/ + You("%s‚Ì‚É‚ç‚݂ňêud’¼‚µ‚½I", s_suffix(mon_nam(mon))); } else if (Hallucination && rn2(4)) { pline("%s looks %s%s.", Monnam(mon), !rn2(2) ? "" : "rather ", !rn2(2) ? "numb" : "stupified"); } else { +/*JP You("are frozen by %s gaze!", s_suffix(mon_nam(mon))); +*/ + You("%s‚Ì‚É‚ç‚Ý‚Å“®‚¯‚È‚­‚È‚Á‚½I", mon_nam(mon)); nomul((ACURR(A_WIS) > 12 || rn2(4)) ? -tmp : -127); multi_reason = "frozen by a monster's gaze"; nomovemsg = 0; } } else { +#if 0 /*JP*/ pline("%s cannot defend itself.", Adjmonnam(mon, "blind")); +#else + pline("%s‚Í–hŒä‚Å‚«‚È‚¢D", + Adjmonnam(mon,"–Ú‚ÌŒ©‚¦‚È‚¢")); +#endif if (!rn2(500)) change_luck(-1); } } else if (Free_action) { +/*JP You("momentarily stiffen."); +*/ + You("ˆêud’¼‚µ‚½D"); } else { /* gelatinous cube */ +/*JP You("are frozen by %s!", mon_nam(mon)); +*/ + You("%s‚É‚æ‚Á‚Ä“®‚¯‚È‚­‚È‚Á‚½I", mon_nam(mon)); nomovemsg = You_can_move_again; nomul(-tmp); multi_reason = "frozen by a monster"; @@ -2448,11 +2963,17 @@ boolean wep_was_destroyed; if (monnear(mon, u.ux, u.uy)) { if (Cold_resistance) { shieldeff(u.ux, u.uy); +/*JP You_feel("a mild chill."); +*/ + You("Š¦‚³‚ðŠ´‚¶‚½D"); ugolemeffects(AD_COLD, tmp); break; } +/*JP You("are suddenly very cold!"); +*/ + You("“Ë‘RC–Ò—ó‚ÉŠ¦‚­‚È‚Á‚½I"); mdamageu(mon, tmp); /* monster gets stronger with your heat! */ mon->mhp += tmp / 2; @@ -2471,22 +2992,34 @@ boolean wep_was_destroyed; if (monnear(mon, u.ux, u.uy)) { if (Fire_resistance) { shieldeff(u.ux, u.uy); +/*JP You_feel("mildly warm."); +*/ + You("’g‚©‚³‚ðŠ´‚¶‚½D"); ugolemeffects(AD_FIRE, tmp); break; } +/*JP You("are suddenly very hot!"); +*/ + You("“Ë‘RC–Ò—ó‚É”M‚­‚È‚Á‚½I"); mdamageu(mon, tmp); /* fire damage */ } break; case AD_ELEC: if (Shock_resistance) { shieldeff(u.ux, u.uy); +/*JP You_feel("a mild tingle."); +*/ + You("ƒsƒŠƒsƒŠ‚ÆჂê‚ðŠ´‚¶‚½D"); ugolemeffects(AD_ELEC, tmp); break; } +/*JP You("are jolted with electricity!"); +*/ + You("“d‹CƒVƒ‡ƒbƒN‚ð‚¤‚¯‚½I"); mdamageu(mon, tmp); break; default: @@ -2554,7 +3087,10 @@ struct attack *mattk; /* null means we find one internally */ if (!mon->mcan) { if (drain_item(obj) && carried(obj) && (obj->known || obj->oclass == ARMOR_CLASS)) { +/*JP pline("%s less effective.", Yobjnam2(obj, "seem")); +*/ + Your("%s‚©‚ç–‚—Í‚ªÁ‚¦‚½‚悤‚¾D", xname(obj)); } break; } @@ -2571,7 +3107,10 @@ void stumble_onto_mimic(mtmp) struct monst *mtmp; { +/*JP const char *fmt = "Wait! That's %s!", *generic = "a monster", *what = 0; +*/ + const char *fmt = "‚¿‚å‚Á‚Æ‚Ü‚Á‚½I%s‚¾I", *generic = "‰ö•¨", *what = 0; if (!u.ustuck && !mtmp->mflee && dmgtype(mtmp->data, AD_STCK)) u.ustuck = mtmp; @@ -2586,9 +3125,15 @@ struct monst *mtmp; if (glyph_is_cmap(glyph) && (glyph_to_cmap(glyph) == S_hcdoor || glyph_to_cmap(glyph) == S_vcdoor)) +/*JP fmt = "The door actually was %s!"; +*/ + fmt = "”à‚ÍŽÀÛ‚É‚Í%s‚¾‚Á‚½I"; else if (glyph_is_object(glyph) && glyph_to_obj(glyph) == GOLD_PIECE) +/*JP fmt = "That gold was %s!"; +*/ + fmt = "‹à‰Ý‚Í%s‚¾‚Á‚½I"; /* cloned Wiz starts out mimicking some other monster and might make himself invisible before being revealed */ @@ -2618,14 +3163,26 @@ struct monst *mon; return; if (u.umconf == 1) { if (Blind) +/*JP Your("%s stop tingling.", hands); +*/ + Your("%s‚ÌჂꂪ‚ƂꂽD", hands); else +/*JP Your("%s stop glowing %s.", hands, hcolor(NH_RED)); +*/ + Your("%s‚Ì%s‹P‚«‚Í‚È‚­‚È‚Á‚½D", hands, hcolor(NH_RED)); } else { if (Blind) +/*JP pline_The("tingling in your %s lessens.", hands); +*/ + pline("%s‚ÌჂꂪ‚Æ‚ê‚Ä‚«‚½D",hands); else +/*JP Your("%s no longer glow so brightly %s.", hands, hcolor(NH_RED)); +*/ + Your("%s‚Ì%s‹P‚«‚ª‚È‚­‚È‚Á‚Ä‚«‚½D",hands, hcolor(NH_RED)); } u.umconf--; } @@ -2640,14 +3197,20 @@ struct obj *otmp; /* source of flash */ if (mtmp->msleeping) { mtmp->msleeping = 0; if (useeit) { +/*JP pline_The("flash awakens %s.", mon_nam(mtmp)); +*/ + pline("‘MŒõ‚Å%s‚ª–Ú‚ðŠo‚Ü‚µ‚½D", mon_nam(mtmp)); res = 1; } } else if (mtmp->data->mlet != S_LIGHT) { if (!resists_blnd(mtmp)) { tmp = dist2(otmp->ox, otmp->oy, mtmp->mx, mtmp->my); if (useeit) { +/*JP pline("%s is blinded by the flash!", Monnam(mtmp)); +*/ + pline("%s‚Í‘MŒõ‚Å–Ú‚ªŒ©‚¦‚È‚­‚È‚Á‚½I", Monnam(mtmp)); res = 1; } if (mtmp->data == &mons[PM_GREMLIN]) { @@ -2674,8 +3237,13 @@ light_hits_gremlin(mon, dmg) struct monst *mon; int dmg; { +#if 0 /*JP*/ pline("%s %s!", Monnam(mon), (dmg > mon->mhp / 2) ? "wails in agony" : "cries out in pain"); +#else + pline("%s‚Í%sI", Monnam(mon), + (dmg > mon->mhp / 2) ? "‹ê’ɂ̐º‚ð‚ ‚°‚½" : "Œƒ’É‚Å‹©‚ñ‚¾"); +#endif if ((mon->mhp -= dmg) <= 0) { if (context.mon_moving) monkilled(mon, (char *) 0, AD_BLND); diff --git a/src/vault.c b/src/vault.c index 5b73dad..22e1c01 100644 --- a/src/vault.c +++ b/src/vault.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" STATIC_DCL struct monst *NDECL(findgd); @@ -92,9 +97,15 @@ boolean forceshow; egrd->fcbeg++; } if (sawcorridor) +/*JP pline_The("corridor disappears."); +*/ + pline("’ʘH‚͏Á‚¦‚½D"); if (IS_ROCK(levl[u.ux][u.uy].typ)) +/*JP You("are encased in rock."); +*/ + You("Î‚ɂ‚‚܂ꂽD"); return TRUE; } @@ -335,10 +346,17 @@ invault() reset_faint(); /* if fainted - wake up */ gsensed = !canspotmon(guard); if (!gsensed) +#if 0 /*JP*/ pline("Suddenly one of the Vault's %s enters!", makeplural(guard->data->mname)); +#else + pline("“Ë‘RC‘qŒÉ‚̔ԕº‚ª“ü‚Á‚Ä‚«‚½I"); +#endif else +/*JP pline("Someone else has entered the Vault."); +*/ + pline("’N‚©‚ª‘qŒÉ‚É“ü‚Á‚Ä‚«‚½D"); newsym(guard->mx, guard->my); if (u.uswallow) { /* can't interrogate hero, don't interrogate engulfer */ @@ -351,10 +369,16 @@ invault() if (youmonst.m_ap_type == M_AP_OBJECT || u.uundetected) { if (youmonst.m_ap_type == M_AP_OBJECT && youmonst.mappearance != GOLD_PIECE) +/*JP verbalize("Hey! Who left that %s in here?", +*/ + verbalize("‚¨‚¢I‚¾‚ꂪ‚±‚Ì%s‚ð‚±‚±‚É’u‚¢‚čs‚Á‚½‚ñ‚¾H", mimic_obj_name(&youmonst)); /* You're mimicking some object or you're hidden. */ +/*JP pline("Puzzled, %s turns around and leaves.", mhe(guard)); +*/ + pline("%s‚͍¢˜f‚µ‚È‚ª‚çCŒü‚«’¼‚Á‚Ä‹Ž‚Á‚Ä‚¢‚Á‚½D", mhe(guard)); mongone(guard); return; } @@ -362,7 +386,10 @@ invault() /* [we ought to record whether this this message has already been given in order to vary it upon repeat visits, but discarding the monster and its egd data renders that hard] */ +/*JP verbalize("I'll be back when you're ready to speak to me!"); +*/ + verbalize("˜b‚¹‚é‚悤‚É‚È‚Á‚½‚ç–ß‚Á‚Ä‚«‚Ä‚â‚éI"); mongone(guard); return; } @@ -374,9 +401,16 @@ invault() } trycount = 5; do { +/*JP getlin("\"Hello stranger, who are you?\" -", buf); +*/ + getlin("uŒ©‚È‚¢Šç‚¾‚ȁC‚¨‚Ü‚¦‚Í’N‚¾Hv-", buf); (void) mungspaces(buf); +#if 0 /*JP*/ } while (!letter(buf[0]) && --trycount > 0); +#else + } while (!letter(buf[0]) && !is_kanji(buf[0]) && --trycount > 0); +#endif if (u.ualign.type == A_LAWFUL /* ignore trailing text, in case player includes rank */ @@ -384,15 +418,27 @@ invault() adjalign(-1); /* Liar! */ } +#if 0 /*JP*/ if (!strcmpi(buf, "Croesus") || !strcmpi(buf, "Kroisos") || !strcmpi(buf, "Creosote")) { +#else + if (!strcmpi(buf, "Croesus") || !strcmpi(buf, "Kroisos") + || !strcmpi(buf, "Creosote") + || !strcmp(buf, "ƒNƒƒCƒ\ƒX") || !strcmp(buf, "ƒNƒŒƒIƒ\[ƒg")) { +#endif if (!mvitals[PM_CROESUS].died) { verbalize( +/*JP "Oh, yes, of course. Sorry to have disturbed you."); +*/ + "‚¢‚âC‚±‚è‚áC‚¦[‚ƁC‚¨‘›‚ª‚¹‚µ‚Ü‚µ‚½D"); mongone(guard); } else { setmangry(guard); +/*JP verbalize("Back from the dead, are you? I'll remedy that!"); +*/ + verbalize("‚Ù‚¤IŽ€‚̐¢ŠE‚©‚ç–ß‚Á‚Ä‚«‚½‚Ì‚©H‚¤‚»‚È‚çãŽè‚ɂ‚¯I"); /* don't want guard to waste next turn wielding a weapon */ if (!MON_WEP(guard)) { guard->weapon_check = NEED_HTH_WEAPON; @@ -401,18 +447,33 @@ invault() } return; } +/*JP verbalize("I don't know you."); +*/ + verbalize("’m‚ç‚ñ‚ȁD"); umoney = money_cnt(invent); if (Deaf) { ; } else if (!umoney && !hidden_gold()) { +/*JP verbalize("Please follow me."); +*/ + verbalize("Ž„‚ÌŒã‚ɂ‚¢‚Ä‚«‚È‚³‚¢D"); } else { if (!umoney) +/*JP verbalize("You have hidden gold."); +*/ + verbalize("‚Ü‚¾‹à‰Ý‚ð‰B‚µ‚Ä‚é‚ȁD"); verbalize( +/*JP "Most likely all your gold was stolen from this vault."); +*/ + "‘qŒÉ‚©‚瓐‚ñ‚¾‹à‰Ý‚ª‚ ‚邾‚낤D"); +/*JP verbalize("Please drop that gold and follow me."); +*/ + verbalize("‚»‚ê‚ð‚»‚Á‚­‚è–ß‚µ‚Ä‚©‚çCŽ„‚ÌŒã‚ɂ‚¢‚Ä‚«‚È‚³‚¢D"); } EGD(guard)->gdx = gx; EGD(guard)->gdy = gy; @@ -521,13 +582,25 @@ struct monst *grd; if (movedgold || fixed) { if (in_fcorridor(grd, grd->mx, grd->my) || cansee(grd->mx, grd->my)) +/*JP pline("%s whispers an incantation.", noit_Monnam(grd)); +*/ + pline("%s‚ÍŽô•¶‚ð‚³‚³‚â‚¢‚½D", noit_Monnam(grd)); else +/*JP You_hear("a distant chant."); +*/ + You_hear("‰“•û‚Å‚ÌŽô•¶‚ð•·‚¢‚½D"); if (movedgold) +/*JP pline("A mysterious force moves the gold into the vault."); +*/ + pline("•sŽv‹c‚È—Í‚ª‹à‰Ý‚ð‘qŒÉ‚Ö‰^‚ñ‚¾D"); if (fixed) +/*JP pline_The("damaged vault's walls are magically restored!"); +*/ + pline("‚‚¢‚½‘qŒÉ‚Ì•Ç‚Í–‚–@‚Å•œŒ³‚³‚ꂽI"); } } @@ -587,16 +660,27 @@ register struct monst *grd; if (egrd->fcend == 1) { if (u_in_vault && (u_carry_gold || um_dist(grd->mx, grd->my, 1))) { if (egrd->warncnt == 3 && !Deaf) +#if 0 /*JP*/ verbalize("I repeat, %sfollow me!", u_carry_gold ? (!umoney ? "drop that hidden money and " : "drop that money and ") : ""); +#else + verbalize("ŒJ‚è•Ô‚·I%sŽ„‚ɂ‚¢‚Ä‚±‚¢I", + u_carry_gold + ? (!umoney ? "‰B‚µŽ‚Á‚Ä‚é‹à‚ð’u‚¢‚Ä" + : "‹à‚ð’u‚¢‚Ä") + : ""); +#endif if (egrd->warncnt == 7) { m = grd->mx; n = grd->my; if (!Deaf) +/*JP verbalize("You've been warned, knave!"); +*/ + verbalize("Œx‚Í‚µ‚½‚¼Cˆ«“}‚߁I"); mnexto(grd); levl[m][n].typ = egrd->fakecorr[0].ftyp; newsym(m, n); @@ -619,17 +703,30 @@ register struct monst *grd; grd->mpeaceful = 0; letknow: if (!cansee(grd->mx, grd->my) || !mon_visible(grd)) +/*JP You_hear("the shrill sound of a guard's whistle."); +*/ + You_hear("”Ô•º‚̉s‚¢“J‚̉¹‚ð•·‚¢‚½D"); else +#if 0 /*JP*/ You(um_dist(grd->mx, grd->my, 2) ? "see %s approaching." : "are confronted by %s.", /* "an angry guard" */ x_monnam(grd, ARTICLE_A, "angry", 0, FALSE)); +#else + You(um_dist(grd->mx, grd->my, 2) + ? "%s‚ª‹ß‚¢‚Ä‚­‚é‚Ì‚ðŒ©‚½D" + : "%s‚ƑΛ³‚µ‚½D", + x_monnam(grd, ARTICLE_A, "“{‚Á‚½", 0, FALSE)); +#endif return -1; } else { if (!Deaf) +/*JP verbalize("Well, begone."); +*/ + verbalize("—§‚¿‹Ž‚êD"); wallify_vault(grd); egrd->gddone = 1; goto cleanup; @@ -642,7 +739,10 @@ register struct monst *grd; && !egrd->gddone && !in_fcorridor(grd, u.ux, u.uy) && levl[egrd->fakecorr[0].fx][egrd->fakecorr[0].fy].typ == egrd->fakecorr[0].ftyp) { +/*JP pline("%s, confused, disappears.", noit_Monnam(grd)); +*/ + pline("%s‚͍¬—‚µCÁ‚¦‚½D", noit_Monnam(grd)); disappear_msg_seen = TRUE; goto cleanup; } @@ -656,11 +756,17 @@ register struct monst *grd; if (egrd->warncnt < 6) { egrd->warncnt = 6; if (!Deaf) +/*JP verbalize("Drop all your gold, scoundrel!"); +*/ + verbalize("‹à‚ð‘S•”’u‚¢‚Ă䂯C‚Ȃ炸‚à‚́I"); return 0; } else { if (!Deaf) +/*JP verbalize("So be it, rogue!"); +*/ + verbalize("“l‚߁I"); grd->mpeaceful = 0; return -1; } @@ -687,7 +793,10 @@ register struct monst *grd; /* just for insurance... */ if (MON_AT(m, n) && m != grd->mx && n != grd->my) { if (!Deaf) +/*JP verbalize("Out of my way, scum!"); +*/ + verbalize("–Ú‚Ì‘O‚©‚çÁ‚¦‚ëCƒNƒ\‚Á‚½‚êI"); (void) rloc(m_at(m, n), FALSE); } remove_monster(grd->mx, grd->my); @@ -696,8 +805,13 @@ register struct monst *grd; mpickgold(grd); /* does a newsym */ } if (cansee(m, n)) +#if 0 /*JP*/ pline("%s%s picks up the gold.", Monnam(grd), grd->mpeaceful ? " calms down and" : ""); +#else + pline("%s‚Í%s‹à‰Ý‚ðE‚Á‚½D", Monnam(grd), + grd->mpeaceful ? "“{‚è‚ðÃ‚ß" : ""); +#endif if (x != grd->mx || y != grd->my) { remove_monster(grd->mx, grd->my); newsym(grd->mx, grd->my); @@ -712,7 +826,10 @@ register struct monst *grd; if (um_dist(grd->mx, grd->my, 1) || egrd->gddone) { if (!egrd->gddone && !rn2(10) && !Deaf && !u.uswallow && !(u.ustuck && !sticks(youmonst.data))) +/*JP verbalize("Move along!"); +*/ + verbalize("—£‚ê‚é‚ȁI"); restfakecorr(grd); return 0; /* didn't move */ } @@ -833,7 +950,10 @@ newpos: restfakecorr(grd); if (!semi_dead && (in_fcorridor(grd, u.ux, u.uy) || cansee(x, y))) { if (!disappear_msg_seen && see_guard) +/*JP pline("Suddenly, %s disappears.", noit_mon_nam(grd)); +*/ + pline("“Ë‘RC%s‚͏Á‚¦‚½D", noit_mon_nam(grd)); return 1; } return -2; @@ -869,8 +989,13 @@ paygd() return; if (u.uinvault) { +#if 0 /*JP*/ Your("%ld %s goes into the Magic Memory Vault.", umoney, currency(umoney)); +#else + Your("%ld%s‚Í–‚–@‚Ì‹L”O‘qŒÉ‚É“ü‚Á‚½D", umoney, + currency(umoney)); +#endif gx = u.ux; gy = u.uy; } else { @@ -879,11 +1004,19 @@ paygd() return; } mnexto(grd); +/*JP pline("%s remits your gold to the vault.", Monnam(grd)); +*/ + pline("%s‚Í‚ ‚È‚½‚Ì‹à‰Ý‚ð‘qŒÉ‚É‘—‚Á‚½D", Monnam(grd)); gx = rooms[EGD(grd)->vroom].lx + rn2(2); gy = rooms[EGD(grd)->vroom].ly + rn2(2); +#if 0 /*JP*/ Sprintf(buf, "To Croesus: here's the gold recovered from %s the %s.", plname, mons[u.umonster].mname); +#else + Sprintf(buf, "ƒNƒƒCƒ\ƒX‚Ö: ‚±‚±‚É%s‚Ì%s‚©‚çŽæ‚è–ß‚µ‚½‹à‰Ý‚ð‘—‚éD", + mons[u.umonster].mname, plname); +#endif make_grave(gx, gy, buf); } for (coins = invent; coins; coins = nextcoins) { diff --git a/src/version.c b/src/version.c index 97c8d03..1e19e98 100644 --- a/src/version.c +++ b/src/version.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" #include "dlb.h" #include "date.h" @@ -11,8 +16,10 @@ */ #ifdef SHORT_FILENAMES #include "patchlev.h" +#include "../japanese/jpatchle.h" #else #include "patchlevel.h" +#include "../japanese/jpatchlevel.h" #endif #define BETA_INFO "" @@ -49,6 +56,9 @@ doversion() char buf[BUFSZ]; pline("%s", getversionstring(buf)); +#if 1 /*JP*/ + pline("%s", JVERSION_ID); +#endif return 0; } diff --git a/src/weapon.c b/src/weapon.c index cc14f35..c874baf 100644 --- a/src/weapon.c +++ b/src/weapon.c @@ -7,6 +7,12 @@ * bonuses for any given weapon used, as well as weapons selection * code for monsters. */ + +/* 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" /* Categories whose names don't come from OBJ_NAME(objects[type]) @@ -54,12 +60,21 @@ STATIC_OVL void give_may_advance_msg(skill) int skill; { +#if 0 /*JP*/ You_feel("more confident in your %sskills.", skill == P_NONE ? "" : skill <= P_LAST_WEAPON ? "weapon " : skill <= P_LAST_SPELL ? "spell casting " : "fighting "); +#else + You("%sƒXƒLƒ‹‚ð‚‚ß‚éŽ©M‚ª—N‚¢‚Ä‚«‚½D", + skill == P_NONE ? "" : skill <= P_LAST_WEAPON + ? "•Ší‚Ì" + : skill <= P_LAST_SPELL + ? "–‚–@‚Ì" + : "í‚¢‚Ì"); +#endif } STATIC_DCL boolean FDECL(can_advance, (int, BOOLEAN_P)); @@ -588,11 +603,17 @@ boolean polyspot; mon->weapon_check = NO_WEAPON_WANTED; obj_extract_self(obj); if (cansee(mon->mx, mon->my)) { +/*JP pline("%s drops %s.", Monnam(mon), distant_name(obj, doname)); +*/ + pline("%s‚Í%s‚ð’u‚¢‚½D", Monnam(mon), distant_name(obj, doname)); newsym(mon->mx, mon->my); } /* might be dropping object into water or lava */ +/*JP if (!flooreffects(obj, mon->mx, mon->my, "drop")) { +*/ + if (!flooreffects(obj, mon->mx, mon->my, "—Ž‚¿‚é")) { if (polyspot) bypass_obj(obj); place_object(obj, mon->mx, mon->my); @@ -685,17 +706,34 @@ register struct monst *mon; if (bimanual(mw_tmp)) mon_hand = makeplural(mon_hand); +#if 0 /*JP*/ Sprintf(welded_buf, "%s welded to %s %s", otense(mw_tmp, "are"), mhis(mon), mon_hand); +#endif if (obj->otyp == PICK_AXE) { +#if 0 /*JP*/ pline("Since %s weapon%s %s,", s_suffix(mon_nam(mon)), plur(mw_tmp->quan), welded_buf); +#else + pline("%s‚Í•Ší‚ðŽè‚É‚µ‚悤‚Æ‚µ‚½‚ªC", mon_nam(mon)); +#endif +#if 0 /*JP*/ pline("%s cannot wield that %s.", mon_nam(mon), xname(obj)); +#else + pline("%s‚Í%s‚ð‘•”õ‚Å‚«‚È‚©‚Á‚½D", mon_nam(mon), + xname(obj)); +#endif } else { +/*JP pline("%s tries to wield %s.", Monnam(mon), doname(obj)); +*/ + pline("%s‚Í%s‚ð‘•”õ‚µ‚悤‚Æ‚µ‚½D", Monnam(mon), doname(obj)); +/*JP pline("%s %s!", Yname2(mw_tmp), welded_buf); +*/ + pline("%s‚Í%s‚ðŽè‚É‚µ‚½I", Monnam(mon), xname(mw_tmp)); } mw_tmp->bknown = 1; } @@ -706,20 +744,35 @@ register struct monst *mon; setmnotwielded(mon, mw_tmp); mon->weapon_check = NEED_WEAPON; if (canseemon(mon)) { +/*JP pline("%s wields %s!", Monnam(mon), doname(obj)); +*/ + pline("%s‚Í%s‚ð‘•”õ‚µ‚½I", Monnam(mon), doname(obj)); if (mwelded(mw_tmp)) { +#if 0 /*JP*/ pline("%s %s to %s %s!", Tobjnam(obj, "weld"), is_plural(obj) ? "themselves" : "itself", s_suffix(mon_nam(mon)), mbodypart(mon, HAND)); +#else + pline("%s‚͏ŸŽè‚É%s‚Ì%s‚É‘•”õ‚³‚ꂽI", + xname(obj), + mon_nam(mon), mbodypart(mon, HAND)); +#endif obj->bknown = 1; } } if (artifact_light(obj) && !obj->lamplit) { begin_burn(obj, FALSE); if (canseemon(mon)) +#if 0 /*JP*/ pline("%s %s in %s %s!", Tobjnam(obj, "shine"), arti_light_description(obj), s_suffix(mon_nam(mon)), mbodypart(mon, HAND)); +#else + pline("%s‚Í%s‚Ì%s‚Ì’†‚Å%s‹P‚¢‚½I", + xname(obj), mon_nam(mon), + mbodypart(mon, HAND), arti_light_description(obj)); +#endif } obj->owornmask = W_WEP; return 1; @@ -877,26 +930,47 @@ char *buf; switch (P_SKILL(skill)) { case P_UNSKILLED: +/*JP ptr = "Unskilled"; +*/ + ptr = "‰SŽÒ"; break; case P_BASIC: +/*JP ptr = "Basic"; +*/ + ptr = "“ü–åŽÒ"; break; case P_SKILLED: +/*JP ptr = "Skilled"; +*/ + ptr = "n—ûŽÒ"; break; case P_EXPERT: +/*JP ptr = "Expert"; +*/ + ptr = "ƒGƒLƒXƒp[ƒg"; break; /* these are for unarmed combat/martial arts only */ case P_MASTER: +/*JP ptr = "Master"; +*/ + ptr = "ƒ}ƒXƒ^["; break; case P_GRAND_MASTER: +/*JP ptr = "Grand Master"; +*/ + ptr = "ƒOƒ‰ƒ“ƒhƒ}ƒXƒ^["; break; default: +/*JP ptr = "Unknown"; +*/ + ptr = "•s–¾"; break; } Strcpy(buf, ptr); @@ -984,18 +1058,33 @@ int skill; P_SKILL(skill)++; u.skill_record[u.skills_advanced++] = skill; /* subtly change the advance message to indicate no more advancement */ +#if 0 /*JP*/ You("are now %s skilled in %s.", P_SKILL(skill) >= P_MAX_SKILL(skill) ? "most" : "more", P_NAME(skill)); +#else + Your("%s‚̃XƒLƒ‹‚ð%s‚‚ß‚½D", + P_NAME(skill), + P_SKILL(skill) >= P_MAX_SKILL(skill) ? "Å‚‚É" : "‚³‚ç‚É"); +#endif } static const struct skill_range { short first, last; const char *name; } skill_ranges[] = { +/*JP { P_FIRST_H_TO_H, P_LAST_H_TO_H, "Fighting Skills" }, +*/ + { P_FIRST_H_TO_H, P_LAST_H_TO_H, "í‚¢‚̃XƒLƒ‹" }, +/*JP { P_FIRST_WEAPON, P_LAST_WEAPON, "Weapon Skills" }, +*/ + { P_FIRST_WEAPON, P_LAST_WEAPON, "•Ší‚̃XƒLƒ‹" }, +/*JP { P_FIRST_SPELL, P_LAST_SPELL, "Spellcasting Skills" }, +*/ + { P_FIRST_SPELL, P_LAST_SPELL, "–‚–@‚̃XƒLƒ‹" }, }; /* @@ -1044,18 +1133,30 @@ enhance_weapon_skill() if (eventually_advance > 0 || maxxed_cnt > 0) { any = zeroany; if (eventually_advance > 0) { +#if 0 /*JP*/ Sprintf(buf, "(Skill%s flagged by \"*\" may be enhanced %s.)", plur(eventually_advance), (u.ulevel < MAXULEV) ? "when you're more experienced" : "if skill slots become available"); +#else + Sprintf(buf, "(\"*\"‚ª‚‚¢‚Ä‚¢‚éƒXƒLƒ‹‚Í%s‚‚ß‚ç‚ê‚éD)", + (u.ulevel < MAXULEV) + ? "‚à‚Á‚ÆŒoŒ±‚ð‚‚߂Î" + : "ƒXƒLƒ‹ƒXƒƒbƒg‚ªŽg‚¦‚é‚悤‚É‚È‚ê‚Î"); +#endif add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, MENU_UNSELECTED); } if (maxxed_cnt > 0) { +#if 0 /*JP*/ Sprintf(buf, "(Skill%s flagged by \"#\" cannot be enhanced any further.)", plur(maxxed_cnt)); +#else + Sprintf(buf, + "(\"#\"‚ª‚‚¢‚Ä‚¢‚éƒXƒLƒ‹‚Í‚±‚êˆÈã‚‚ß‚ç‚ê‚È‚¢D)"); +#endif add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, MENU_UNSELECTED); } @@ -1119,8 +1220,13 @@ enhance_weapon_skill() MENU_UNSELECTED); } +#if 0 /*JP*/ Strcpy(buf, (to_advance > 0) ? "Pick a skill to advance:" : "Current skills:"); +#else + Strcpy(buf, (to_advance > 0) ? "ƒXƒLƒ‹‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢F" + : "Œ»Ý‚̃XƒLƒ‹F"); +#endif if (wizard && !speedy) Sprintf(eos(buf), " (%d slot%s available)", u.weapon_slots, plur(u.weapon_slots)); @@ -1135,7 +1241,10 @@ enhance_weapon_skill() for (n = i = 0; i < P_NUM_SKILLS; i++) { if (can_advance(i, speedy)) { if (!speedy) +/*JP You_feel("you could be more dangerous!"); +*/ + You("‚³‚ç‚ɃXƒLƒ‹‚ð‚‚ß‚é‚±‚Æ‚ª‚Å‚«‚»‚¤‚È‹C‚ª‚µ‚½I"); n++; break; } @@ -1513,9 +1622,14 @@ register struct obj *obj; if (artifact_light(obj) && obj->lamplit) { end_burn(obj, FALSE); if (canseemon(mon)) +#if 0 /*JP*/ pline("%s in %s %s %s shining.", The(xname(obj)), s_suffix(mon_nam(mon)), mbodypart(mon, HAND), otense(obj, "stop")); +#else + pline("%s‚ªŽ‚Â%s‚Ì‹P‚«‚ªÁ‚¦‚½D", + mon_nam(mon), xname(obj)); +#endif } if (MON_WEP(mon) == obj) MON_NOWEP(mon); diff --git a/src/were.c b/src/were.c index 7ab1051..7ec2752 100644 --- a/src/were.c +++ b/src/were.c @@ -21,17 +21,26 @@ register struct monst *mon; switch (monsndx(mon->data)) { case PM_WEREWOLF: +/*JP howler = "wolf"; +*/ + howler = "˜T"; break; case PM_WEREJACKAL: +/*JP howler = "jackal"; +*/ + howler = "ƒWƒƒƒbƒJƒ‹"; break; default: howler = (char *) 0; break; } if (howler) +/*JP You_hear("a %s howling at the moon.", howler); +*/ + You_hear("ŒŽ–é‚É%s‚ª–i‚¦‚鐺‚ð•·‚¢‚½D", howler); } } } else if (!rn2(30) || Protection_from_shape_changers) { @@ -101,8 +110,13 @@ register struct monst *mon; } if (canseemon(mon) && !Hallucination) +#if 0 /*JP*/ pline("%s changes into a %s.", Monnam(mon), is_human(&mons[pm]) ? "human" : mons[pm].mname + 4); +#else + pline("%s‚Í%s‚ÌŽp‚É‚È‚Á‚½D", Monnam(mon), + is_human(&mons[pm]) ? "lŠÔ" : mons[pm].mname + 4); +#endif set_mon_data(mon, &mons[pm], 0); if (mon->msleeping || !mon->mcanmove) { @@ -139,19 +153,28 @@ char *genbuf; typ = rn2(3) ? PM_SEWER_RAT : rn2(3) ? PM_GIANT_RAT : PM_RABID_RAT; if (genbuf) +/*JP Strcpy(genbuf, "rat"); +*/ + Strcpy(genbuf, "ƒlƒYƒ~"); break; case PM_WEREJACKAL: case PM_HUMAN_WEREJACKAL: typ = PM_JACKAL; if (genbuf) +/*JP Strcpy(genbuf, "jackal"); +*/ + Strcpy(genbuf, "ƒWƒƒƒbƒJƒ‹"); break; case PM_WEREWOLF: case PM_HUMAN_WEREWOLF: typ = rn2(5) ? PM_WOLF : PM_WINTER_WOLF; if (genbuf) +/*JP Strcpy(genbuf, "wolf"); +*/ + Strcpy(genbuf, "˜T"); break; default: continue; @@ -177,9 +200,14 @@ you_were() if (Unchanging || (u.umonnum == u.ulycn)) return; if (controllable_poly) { +#if 0 /*JP*/ /* `+4' => skip "were" prefix to get name of beast */ Sprintf(qbuf, "Do you want to change into %s?", an(mons[u.ulycn].mname + 4)); +#else /*JP: “ú–{Œê‚Å‚Í‚»‚±‚Ü‚Å‚µ‚È‚¢ */ + Sprintf(qbuf,"%s‚ɕω»‚µ‚Ü‚·‚©H", + mons[u.ulycn].mname + 4); +#endif if (yn(qbuf) == 'n') return; } @@ -193,11 +221,17 @@ boolean purify; boolean controllable_poly = Polymorph_control && !(Stunned || Unaware); if (purify) { +/*JP You_feel("purified."); +*/ + You("ò‚ß‚ç‚ꂽ‚悤‚È‹C‚ª‚µ‚½D"); u.ulycn = NON_PM; /* cure lycanthropy */ } if (!Unchanging && is_were(youmonst.data) +/*JP && (!controllable_poly || yn("Remain in beast form?") == 'n')) +*/ + && (!controllable_poly || yn("b‚ÌŽp‚Ì‚Ü‚Ü‚Å‚¢‚éH") == 'n')) rehumanize(); } diff --git a/src/wield.c b/src/wield.c index 3a0625c..63a5e77 100644 --- a/src/wield.c +++ b/src/wield.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" /* KMH -- Differences between the three weapon slots. @@ -94,7 +99,10 @@ register struct obj *obj; if (uwep == obj && artifact_light(olduwep) && olduwep->lamplit) { end_burn(olduwep, FALSE); if (!Blind) +/*JP pline("%s shining.", Tobjnam(olduwep, "stop")); +*/ + pline("%s‚Í‹P‚«‚ðŽ~‚ß‚½D", xname(olduwep)); } /* Note: Explicitly wielding a pick-axe will not give a "bashing" * message. Wielding one via 'a'pplying it will. @@ -121,10 +129,19 @@ struct obj *obj; return FALSE; /* Prevent wielding cockatrice when not wearing gloves --KAA */ +#if 0 /*JP*/ You("wield %s in your bare %s.", corpse_xname(obj, (const char *) 0, CXN_PFX_THE), makeplural(body_part(HAND))); +#else + You("%s‚ð%s‚É‚µ‚½D", + corpse_xname(obj, (const char *) 0, CXN_PFX_THE), + body_part(HAND)); +#endif +/*JP Sprintf(kbuf, "wielding %s bare-handed", killer_xname(obj)); +*/ + Sprintf(kbuf, "%s‚ð‘fŽè‚ÅŽè‚É‚µ‚Ä", killer_xname(obj)); instapetrify(kbuf); return TRUE; } @@ -139,34 +156,53 @@ struct obj *wep; if (!wep) { /* No weapon */ if (uwep) { +/*JP You("are empty %s.", body_part(HANDED)); +*/ + You("%s‚ð‹ó‚¯‚½D", body_part(HAND)); setuwep((struct obj *) 0); res++; } else +/*JP You("are already empty %s.", body_part(HANDED)); +*/ + You("‰½‚à%s‚É‚µ‚Ä‚¢‚È‚¢I", body_part(HAND)); } else if (wep->otyp == CORPSE && cant_wield_corpse(wep)) { /* hero must have been life-saved to get here; use a turn */ res++; /* corpse won't be wielded */ } else if (uarms && bimanual(wep)) { +#if 0 /*JP*/ You("cannot wield a two-handed %s while wearing a shield.", is_sword(wep) ? "sword" : wep->otyp == BATTLE_AXE ? "axe" : "weapon"); +#else + pline("‚‚ð‘•”õ‚µ‚Ä‚¢‚é‚Æ‚«‚É—¼ŽèŽ‚¿‚Ì%s‚ð‘•”õ‚Å‚«‚È‚¢D", + is_sword(wep) ? "Œ•" : wep->otyp == BATTLE_AXE ? "•€" + : "•Ší"); +#endif } else if (!retouch_object(&wep, FALSE)) { res++; /* takes a turn even though it doesn't get wielded */ } else { /* Weapon WILL be wielded after this point */ res++; if (will_weld(wep)) { +#if 0 /*JP*//*Žg‚í‚È‚¢*/ const char *tmp = xname(wep), *thestr = "The "; if (strncmp(tmp, thestr, 4) && !strncmp(The(tmp), thestr, 4)) tmp = thestr; else tmp = ""; +#endif +#if 0 /*JP*/ pline("%s%s %s to your %s!", tmp, aobjnam(wep, "weld"), (wep->quan == 1L) ? "itself" : "themselves", /* a3 */ bimanual(wep) ? (const char *) makeplural(body_part(HAND)) : body_part(HAND)); +#else + pline("%s‚͏ŸŽè‚É‚ ‚È‚½‚Ì%s‚É‘•”õ‚³‚ꂽD", + xname(wep), body_part(HAND)); +#endif wep->bknown = TRUE; } else { /* The message must be printed before setuwep (since @@ -189,8 +225,13 @@ struct obj *wep; if (artifact_light(wep) && !wep->lamplit) { begin_burn(wep, FALSE); if (!Blind) +#if 0 /*JP*/ pline("%s to shine %s!", Tobjnam(wep, "begin"), arti_light_description(wep)); +#else + pline("%s‚Í%s‹P‚«‚Í‚¶‚ß‚½I", xname(wep), + arti_light_description(wep)); +#endif } #if 0 /* we'll get back to this someday, but it's not balanced yet */ @@ -206,8 +247,13 @@ struct obj *wep; if ((this_shkp = shop_keeper(inside_shop(u.ux, u.uy))) != (struct monst *) 0) { +#if 0 /*JP*/ pline("%s says \"You be careful with my %s!\"", shkname(this_shkp), xname(wep)); +#else + pline("%s‚͏q‚ׂ½u%s‚̈µ‚¢‚Í‹C‚ð‚‚¯‚Ä‚­‚ê‚æIv", + shkname(this_shkp), xname(wep)); +#endif } } } @@ -248,7 +294,10 @@ dowield() /* May we attempt this? */ multi = 0; if (cantwield(youmonst.data)) { +/*JP pline("Don't be ridiculous!"); +*/ + pline("‚΂©‚΂©‚µ‚¢I"); return 0; } @@ -257,7 +306,10 @@ dowield() /* Cancelled */ return 0; else if (wep == uwep) { +/*JP You("are already wielding that!"); +*/ + You("‚à‚¤‚»‚ê‚ð%s‚É‚µ‚Ä‚¢‚éI", body_part(HAND)); if (is_weptool(wep) || is_wet_towel(wep)) unweapon = FALSE; /* [see setuwep()] */ return 0; @@ -276,7 +328,10 @@ dowield() else if (wep == uquiver) setuqwep((struct obj *) 0); else if (wep->owornmask & (W_ARMOR | W_ACCESSORY | W_SADDLE)) { +/*JP You("cannot wield that!"); +*/ + You("‚»‚ê‚ð‘•”õ‚Å‚«‚È‚¢I"); return 0; } @@ -299,7 +354,10 @@ doswapweapon() /* May we attempt this? */ multi = 0; if (cantwield(youmonst.data)) { +/*JP pline("Don't be ridiculous!"); +*/ + pline("‚΂©‚΂©‚µ‚¢I"); return 0; } if (welded(uwep)) { @@ -324,7 +382,10 @@ doswapweapon() if (uswapwep) prinv((char *) 0, uswapwep, 0L); else +/*JP You("have no secondary weapon readied."); +*/ + You("—\”õ‚Ì•Ší‚Ì—pˆÓ‚ð‚â‚ß‚½D"); } if (u.twoweap && !can_twoweapon()) @@ -357,22 +418,38 @@ dowieldquiver() if (newquiver == &zeroobj) { /* Explicitly nothing */ if (uquiver) { +/*JP You("now have no ammunition readied."); +*/ + pline("‘•“U‚·‚邽‚ß‚Ì–î’e‚ª‚È‚­‚È‚Á‚½D"); setuqwep(newquiver = (struct obj *) 0); } else { +/*JP You("already have no ammunition readied!"); +*/ + pline("‘•“U‚·‚邽‚ß‚Ì–î’e‚ª‚È‚¢D"); return 0; } } else if (newquiver == uquiver) { +/*JP pline("That ammunition is already readied!"); +*/ + pline("‚à‚¤‘•“U‚³‚ê‚Ä‚¢‚éI"); return 0; } else if (newquiver == uwep) { /* Prevent accidentally readying the main weapon */ +#if 0 /*JP*/ pline("%s already being used as a weapon!", !is_plural(uwep) ? "That is" : "They are"); +#else + pline("‚à‚¤•Ší‚Æ‚µ‚ÄŽg‚í‚ê‚Ä‚¢‚éI"); +#endif return 0; } else if (newquiver->owornmask & (W_ARMOR | W_ACCESSORY | W_SADDLE)) { +/*JP You("cannot ready that!"); +*/ + You("‚»‚ê‚ÍŽg‚¦‚È‚¢I"); return 0; } else { long dummy; @@ -408,19 +485,28 @@ const char *verb; /* "rub",&c */ if (obj == uwep) return TRUE; /* nothing to do if already wielding it */ +#if 0 /*JP*/ if (!verb) verb = "wield"; +#endif what = xname(obj); +#if 0 /*JP*/ more_than_1 = (obj->quan > 1L || strstri(what, "pair of ") != 0 || strstri(what, "s of ") != 0); +#endif if (obj->owornmask & (W_ARMOR | W_ACCESSORY)) { +#if 0 /*JP*/ You_cant("%s %s while wearing %s.", verb, yname(obj), more_than_1 ? "them" : "it"); +#else + pline("g‚ɂ‚¯‚½‚Ü‚Ü‚Å‚Í%s‚ÍŽg‚¦‚È‚¢D", yname(obj)); +#endif return FALSE; } if (welded(uwep)) { if (flags.verbose) { +#if 0 /*JP*/ const char *hand = body_part(HAND); if (bimanual(uwep)) @@ -430,19 +516,33 @@ const char *verb; /* "rub",&c */ pline( "Since your weapon is welded to your %s, you cannot %s %s %s.", hand, verb, more_than_1 ? "those" : "that", xname(obj)); +#else + pline("•Ší‚ðŽè‚É‚µ‚Ä‚¢‚é‚̂ŁC%s‚ðŽg‚¦‚È‚¢D", xname(obj)); +#endif } else { +/*JP You_cant("do that."); +*/ + pline("‚»‚ê‚Í‚Å‚«‚È‚¢D"); } return FALSE; } if (cantwield(youmonst.data)) { +/*JP You_cant("hold %s strongly enough.", more_than_1 ? "them" : "it"); +*/ + You("‚»‚ê‚ðŽ‚Â‚Ù‚Ç—Í‚ª‚È‚¢D"); return FALSE; } /* check shield */ if (uarms && bimanual(obj)) { +#if 0 /*JP*/ You("cannot %s a two-handed %s while wearing a shield.", verb, (obj->oclass == WEAPON_CLASS) ? "weapon" : "tool"); +#else + pline("‚‚ð‘•”õ‚µ‚½‚Ü‚Ü—¼ŽèŽ‚¿‚Ì%s‚ð‘•”õ‚Å‚«‚È‚¢D", + (obj->oclass == WEAPON_CLASS) ? "•Ší" : "“¹‹ï"); +#endif return FALSE; } @@ -456,7 +556,10 @@ const char *verb; /* "rub",&c */ } else { struct obj *oldwep = uwep; +/*JP You("now wield %s.", doname(obj)); +*/ + You("%s‚ð‘•”õ‚µ‚½D", doname(obj)); setuwep(obj); if (flags.pushweapon && oldwep && uwep != oldwep) setuswapwep(oldwep); @@ -479,26 +582,52 @@ can_twoweapon() #define NOT_WEAPON(obj) (!is_weptool(obj) && obj->oclass != WEAPON_CLASS) if (!could_twoweap(youmonst.data)) { if (Upolyd) +/*JP You_cant("use two weapons in your current form."); +*/ + pline("Œ»Ý‚ÌŽp‚Å‚Í“ñ“—¬‚ÍŽg‚¦‚È‚¢D"); else +/*JP pline("%s aren't able to use two weapons at once.", +*/ + pline("%s‚Í“ñ‚‚̕Ší‚𓯎ž‚Ɉµ‚¦‚È‚¢D", makeplural((flags.female && urole.name.f) ? urole.name.f : urole.name.m)); } else if (!uwep || !uswapwep) +#if 0 /*JP*/ Your("%s%s%s empty.", uwep ? "left " : uswapwep ? "right " : "", body_part(HAND), (!uwep && !uswapwep) ? "s are" : " is"); +#else + Your("%s%s‚Í‹ó‚Á‚Û‚¾D", uwep ? "¶‚Ì" : uswapwep ? "‰E‚Ì" : "", + body_part(HAND)); +#endif else if (NOT_WEAPON(uwep) || NOT_WEAPON(uswapwep)) { otmp = NOT_WEAPON(uwep) ? uwep : uswapwep; +#if 0 /*JP*/ pline("%s %s.", Yname2(otmp), is_plural(otmp) ? "aren't weapons" : "isn't a weapon"); +#else + pline("%s‚Í•Ší‚¶‚á‚È‚¢D", Yname2(otmp)); +#endif } else if (bimanual(uwep) || bimanual(uswapwep)) { otmp = bimanual(uwep) ? uwep : uswapwep; +/*JP pline("%s isn't one-handed.", Yname2(otmp)); +*/ + pline("%s‚͕Ў莝‚¿‚Ì•Ší‚¶‚á‚È‚¢D", Yname2(otmp)); } else if (uarms) +/*JP You_cant("use two weapons while wearing a shield."); +*/ + You("‚‚ðŽ‚Á‚Ä‚¢‚éŠÔ‚Í—¼ŽèŽ‚¿‚Å‚«‚È‚¢D"); else if (uswapwep->oartifact) +#if 0 /*JP*/ pline("%s being held second to another weapon!", Yobjnam2(uswapwep, "resist")); +#else + pline("%s‚Í—\”õ‚Ì•Ší‚Æ‚µ‚Ĉµ‚í‚ê‚邱‚Æ‚ð‹‘‚ñ‚¾I", + Yname2(uswapwep)); +#endif else if (uswapwep->otyp == CORPSE && cant_wield_corpse(uswapwep)) { /* [Note: NOT_WEAPON() check prevents ever getting here...] */ ; /* must be life-saved to reach here; return FALSE */ @@ -519,7 +648,10 @@ drop_uswapwep() /* Avoid trashing makeplural's static buffer */ Strcpy(str, makeplural(body_part(HAND))); +/*JP pline("%s from your %s!", Yobjnam2(obj, "slip"), str); +*/ + You("%s‚ð—Ž‚µ‚Ä‚µ‚Ü‚Á‚½I", xname(obj)); dropx(obj); } @@ -528,7 +660,10 @@ dotwoweapon() { /* You can always toggle it off */ if (u.twoweap) { +/*JP You("switch to your primary weapon."); +*/ + You("ˆê‚‚̕Ší‚Ő퓬‚·‚邱‚Æ‚É‚µ‚½D"); u.twoweap = 0; update_inventory(); return 0; @@ -537,7 +672,10 @@ dotwoweapon() /* May we use two weapons? */ if (can_twoweapon()) { /* Success! */ +/*JP You("begin two-weapon combat."); +*/ + You("“ñ“—¬‚Ő퓬‚·‚邱‚Æ‚É‚µ‚½D"); u.twoweap = 1; update_inventory(); return (rnd(20) > ACURR(A_DEX)); @@ -558,7 +696,10 @@ uwepgone() if (artifact_light(uwep) && uwep->lamplit) { end_burn(uwep, FALSE); if (!Blind) +/*JP pline("%s shining.", Tobjnam(uwep, "stop")); +*/ + pline("%s‚Í‹P‚«‚ðŽ~‚ß‚½D", xname(uwep)); } setworn((struct obj *) 0, W_WEP); unweapon = TRUE; @@ -588,7 +729,10 @@ void untwoweapon() { if (u.twoweap) { +/*JP You("can no longer use two weapons at once."); +*/ + You("‚à‚¤‚Q‚‚̕Ší‚𓯎ž‚ÉŽg—p‚·‚邱‚Æ‚Í‚Å‚«‚È‚¢D"); u.twoweap = FALSE; update_inventory(); } @@ -608,8 +752,13 @@ register int amount; if (!uwep || (uwep->oclass != WEAPON_CLASS && !is_weptool(uwep))) { char buf[BUFSZ]; +#if 0 /*JP*/ Sprintf(buf, "Your %s %s.", makeplural(body_part(HAND)), (amount >= 0) ? "twitch" : "itch"); +#else + Sprintf(buf, "‚ ‚È‚½‚Ì%s‚Í%sD", makeplural(body_part(HAND)), + (amount >= 0) ? "‚Ђ«‚‚Á‚½" : "ƒ€ƒYƒ€ƒY‚µ‚½"); +#endif strange_feeling(otmp, buf); exercise(A_DEX, (boolean) (amount >= 0)); return 0; @@ -621,8 +770,13 @@ register int amount; if (uwep->otyp == WORM_TOOTH && amount >= 0) { multiple = (uwep->quan > 1L); /* order: message, transformation, shop handling */ +#if 0 /*JP*/ Your("%s %s much sharper now.", simpleonames(uwep), multiple ? "fuse, and become" : "is"); +#else + Your("%s‚Í%s‚æ‚è‰s‚³‚𑝂µ‚½‚悤‚¾D", simpleonames(uwep), + multiple ? "—Z‡‚µ‚āC" : ""); +#endif uwep->otyp = CRYSKNIFE; uwep->oerodeproof = 0; if (multiple) { @@ -642,8 +796,13 @@ register int amount; } else if (uwep->otyp == CRYSKNIFE && amount < 0) { multiple = (uwep->quan > 1L); /* order matters: message, shop handling, transformation */ +#if 0 /*JP*/ Your("%s %s much duller now.", simpleonames(uwep), multiple ? "fuse, and become" : "is"); +#else + Your("%s‚Í%s‚æ‚è“Ý‚­‚È‚Á‚Ä‚µ‚Ü‚Á‚½‚悤‚¾D", simpleonames(uwep), + multiple ? "—Z‡‚µ‚āC" : ""); +#endif costly_alteration(uwep, COST_DEGRD); /* DECHNT? other? */ uwep->otyp = WORM_TOOTH; uwep->oerodeproof = 0; @@ -662,27 +821,47 @@ register int amount; wepname = ONAME(uwep); if (amount < 0 && uwep->oartifact && restrict_name(uwep, wepname)) { if (!Blind) +/*JP pline("%s %s.", Yobjnam2(uwep, "faintly glow"), color); +*/ + Your("%s‚͂킸‚©‚É%s‹P‚¢‚½D", xname(uwep),jconj_adj(color)); return 1; } /* there is a (soft) upper and lower limit to uwep->spe */ if (((uwep->spe > 5 && amount >= 0) || (uwep->spe < -5 && amount < 0)) && rn2(3)) { if (!Blind) +#if 0 /*JP*/ pline("%s %s for a while and then %s.", Yobjnam2(uwep, "violently glow"), color, otense(uwep, "evaporate")); +#else + Your("%s‚Í‚µ‚΂炭Œƒ‚µ‚­%s‹P‚«Cö”­‚µ‚½D", + xname(uwep), jconj_adj(color)); +#endif else +/*JP pline("%s.", Yobjnam2(uwep, "evaporate")); +*/ + Your("%s‚͏ö”­‚µ‚½D", xname(uwep)); useupall(uwep); /* let all of them disappear */ return 1; } if (!Blind) { +/*JP xtime = (amount * amount == 1) ? "moment" : "while"; +*/ + xtime = (amount*amount == 1) ? "ˆêu" : "‚µ‚΂炭‚ÌŠÔ"; +#if 0 /*JP*/ pline("%s %s for a %s.", Yobjnam2(uwep, amount == 0 ? "violently glow" : "glow"), color, xtime); +#else + Your("%s‚Í%s%s%s‹P‚¢‚½D", + xname(uwep), xtime, jconj_adj(color), + amount == 0 ? "Œƒ‚µ‚­" : ""); +#endif if (otyp != STRANGE_OBJECT && uwep->known && (amount > 0 || (amount < 0 && otmp->bknown))) makeknown(otyp); @@ -704,15 +883,24 @@ register int amount; * spe dependent. Give an obscure clue here. */ if (uwep->oartifact == ART_MAGICBANE && uwep->spe >= 0) { +#if 0 /*JP*/ Your("right %s %sches!", body_part(HAND), (((amount > 1) && (uwep->spe > 1)) ? "flin" : "it")); +#else + Your("‰E%s‚Í%sI", + body_part(HAND), + (((amount > 1) && (uwep->spe > 1)) ? "‚Ђè‚Ђ肵‚½" : "ƒ€ƒYƒ€ƒY‚µ‚½")); +#endif } /* an elven magic clue, cookie@keebler */ /* elven weapons vibrate warningly when enchanted beyond a limit */ if ((uwep->spe > 5) && (is_elven_weapon(uwep) || uwep->oartifact || !rn2(7))) +/*JP pline("%s unexpectedly.", Yobjnam2(uwep, "suddenly vibrate")); +*/ + Your("%s‚Í“Ë‘Rk‚¦‚¾‚µ‚½D", xname(uwep)); return 1; } @@ -735,9 +923,13 @@ register struct obj *obj; long savewornmask; savewornmask = obj->owornmask; +#if 0 /*JP*/ pline("%s welded to your %s!", Yobjnam2(obj, "are"), bimanual(obj) ? (const char *) makeplural(body_part(HAND)) : body_part(HAND)); +#else + You("%s‚ð%s‚ɍ\‚¦‚½I", xname(obj), body_part(HAND)); +#endif obj->owornmask = savewornmask; } diff --git a/src/wizard.c b/src/wizard.c index facacc7..671ecef 100644 --- a/src/wizard.c +++ b/src/wizard.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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. */ + /* wizard code - inspired by rogue code from Merlyn Leroy (digi-g!brian) */ /* - heavily modified to give the wiz balls. (genat!mike) */ /* - dewimped and given some maledictions. -3. */ @@ -57,11 +62,20 @@ amulet() if (ttmp->ttyp == MAGIC_PORTAL) { int du = distu(ttmp->tx, ttmp->ty); if (du <= 9) +/*JP pline("%s hot!", Tobjnam(amu, "feel")); +*/ + pline("%s‚Í”M‚­Š´‚¶‚½I", xname(amu)); else if (du <= 64) +/*JP pline("%s very warm.", Tobjnam(amu, "feel")); +*/ + pline("%s‚Í‚Æ‚Ä‚à’g‚©‚­Š´‚¶‚½D", xname(amu)); else if (du <= 144) +/*JP pline("%s warm.", Tobjnam(amu, "feel")); +*/ + pline("%s‚Í’g‚©‚­Š´‚¶‚½D", xname(amu)); /* else, the amulet feels normal */ break; } @@ -78,7 +92,10 @@ amulet() mtmp->msleeping = 0; if (distu(mtmp->mx, mtmp->my) > 2) You( +/*JP "get the creepy feeling that somebody noticed your taking the Amulet."); +*/ + "‚ ‚È‚½‚ª–‚œ‚¯‚ðŽ‚Á‚Ä‚¢‚邱‚Æ‚ª’N‚©‚É’m‚ç‚ꂽ‚ÆŠ´‚¶‚Ä‚¼‚Á‚Æ‚µ‚½D"); return; } } @@ -363,10 +380,17 @@ register struct monst *mtmp; if ((otmp = on_ground(which_arti(targ))) != 0) { if (cansee(mtmp->mx, mtmp->my)) +#if 0 /*JP*/ pline("%s picks up %s.", Monnam(mtmp), (distu(mtmp->mx, mtmp->my) <= 5) ? doname(otmp) : distant_name(otmp, doname)); +#else + pline("%s‚Í%s‚ðE‚Á‚½D", Monnam(mtmp), + (distu(mtmp->mx, mtmp->my) <= 5) + ? doname(otmp) + : distant_name(otmp, doname)); +#endif obj_extract_self(otmp); (void) mpickobj(mtmp, otmp); return 1; @@ -514,14 +538,20 @@ resurrect() if (!context.no_of_wizards) { /* make a new Wizard */ +/*JP verb = "kill"; +*/ + verb = "‚𓢂õ"; mtmp = makemon(&mons[PM_WIZARD_OF_YENDOR], u.ux, u.uy, MM_NOWAIT); /* affects experience; he's not coming back from a corpse but is subject to repeated killing like a revived corpse */ if (mtmp) mtmp->mrevived = 1; } else { /* look for a migrating Wizard */ +/*JP verb = "elude"; +*/ + verb = "‚æ‚蓦‚ê‚ñ"; mmtmp = &migrating_mons; while ((mtmp = *mmtmp) != 0) { if (mtmp->iswiz @@ -552,8 +582,14 @@ resurrect() mtmp->mtame = mtmp->mpeaceful = 0; /* paranoia */ set_malign(mtmp); if (!Deaf) { +/*JP pline("A voice booms out..."); +*/ + pline("º‚ª‚‚­–‚苿‚¢‚½DDD"); +/*JP verbalize("So thou thought thou couldst %s me, fool.", verb); +*/ + verbalize("—]%s‚ÆŽv‚¢‚µ‚©C’s‚êŽÒ‚ªD", verb); } } } @@ -568,11 +604,17 @@ intervene() switch (which) { case 0: case 1: +/*JP You_feel("vaguely nervous."); +*/ + You("‰½‚Æ‚È‚­•sˆÀ‚É‚È‚Á‚½D"); break; case 2: if (!Blind) +/*JP You("notice a %s glow surrounding you.", hcolor(NH_BLACK)); +*/ + pline("%sŒõ‚ª‚ ‚È‚½‚ð‚Æ‚è‚Ü‚¢‚Ä‚¢‚é‚Ì‚É‹C‚ª‚‚¢‚½D", hcolor(NH_BLACK)); rndcurse(); break; case 3: @@ -598,6 +640,7 @@ wizdead() } const char *const random_insult[] = { +#if 0 /*JP*/ "antic", "blackguard", "caitiff", "chucklehead", "coistrel", "craven", "cretin", "cur", "dastard", "demon fodder", "dimwit", "dolt", @@ -606,15 +649,39 @@ const char *const random_insult[] = { "rattlepate", "reprobate", "scapegrace", "varlet", "villein", /* (sic.) */ "wittol", "worm", "wretch", +#else + "‚Ó‚´‚¯‚½–ì˜Y", "ˆ«“}", "‚­‚»‚Á‚½‚ê", "‚Ì‚ë‚Ü", + "‚ ‚ñ‚Û‚ñ‚½‚ñ", "‰°•aŽÒ", "”’’s", "‚ë‚­‚Å‚È‚µ", + "‚¤‚‚¯", "ˆ«–‚‚̉aH", "‚¤‚·‚Ì‚ë", "‚Ü‚Ê‚¯", + "”nŽ­", "‚¨‚¢‚Í‚¬", "‹ð‚©ŽÒ", "‚Ȃ炸ŽÒ", + "ˆ«l", "‹Éˆ«l", "”nŽ­‚½‚ê", "”Ú‹¯ŽÒ", + "•—‘D“ª", "“¹ŠyŽÒ", "–ï‰îŽÒ", "‰º˜Y", + "“z—ê", /* (sic.) */ + "‚Ó‚È‚Þ‚µ", "åv’Ž", "l‚Å‚È‚µ", +#endif }; const char *const random_malediction[] = { +#if 0 /*JP*/ "Hell shall soon claim thy remains,", "I chortle at thee, thou pathetic", "Prepare to die, thou", "Resistance is useless,", "Surrender or die, thou", "There shall be no mercy, thou", "Thou shalt repent of thy cunning,", "Thou art as a flea to me,", "Thou art doomed,", "Thy fate is sealed,", "Verily, thou shalt be one dead" +#else + "’n–‚Í‚¢‚ÂêC“ð‚Ì–SŠ[‚ð—v‹‚·‚é‚Å‚ ‚낤C", + "ˆ£‚ê‚È‚â‚‚æ‚Ì‚¤D—]‚Í–ž‘«‚¶‚á", + "“ðCŽ€‚É”õ‚¦‚æ", + "’ïR‚µ‚Ä‚à–³‘Ê‚¶‚áC", + "~ŽQ‚¹‚æD‚³‚à‚È‚­‚ÎŽ€‚¶‚áD", + "Žœ”ß‚Í–³‚©‚ç‚ñ", + "“ðC‚¸‚é‚ðŒã‰÷‚·‚ׂµC", + "“ð‚Í—]‚É‚Æ‚Á‚ămƒ~‚̂悤‚È‚à‚Ì‚¶‚áC", + "“ð‚ÍŽô‚í‚ê‚Ä‚¨‚éC", + "“ð‚̉^–½‚Í••ˆó‚³‚ê‚Ä‚¨‚éC", + "‚Ü‚±‚Æ‚É“ð‚ÍŽ€‚É‚½‚éŽÒ‚È‚è" +#endif }; /* Insult or intimidate the player */ @@ -626,26 +693,50 @@ register struct monst *mtmp; return; if (mtmp->iswiz) { if (!rn2(5)) /* typical bad guy action */ +/*JP pline("%s laughs fiendishly.", Monnam(mtmp)); +*/ + pline("%s‚͈«–‚‚̂悤‚ɏ΂Á‚½D", Monnam(mtmp)); else if (u.uhave.amulet && !rn2(SIZE(random_insult))) +/*JP verbalize("Relinquish the amulet, %s!", +*/ + verbalize("–‚‚悯‚ðŽè•ú‚¹C%sI", random_insult[rn2(SIZE(random_insult))]); else if (u.uhp < 5 && !rn2(2)) /* Panic */ +#if 0 /*JP*/ verbalize(rn2(2) ? "Even now thy life force ebbs, %s!" : "Savor thy breath, %s, it be thy last!", random_insult[rn2(SIZE(random_insult))]); +#else + verbalize(rn2(2) ? "¡‚Æ‚È‚Á‚Ä‚à‚È‚¨“ð‚Ì–½‚Í‚ ‚¦‚ĐŠ‚¦‚é‚Ì‚¾C%sI" + : "‘§‚ð–¡‚í‚Á‚Ä‚¨‚¯C%sC“ð‚̍Ŋú‚ÌŽž‚¾I", + random_insult[rn2(SIZE(random_insult))]); +#endif else if (mtmp->mhp < 5 && !rn2(2)) /* Parthian shot */ +/*JP verbalize(rn2(2) ? "I shall return." : "I'll be back."); +*/ + verbalize(rn2(2) ? "—]‚Í•K‚¸‹A‚Á‚Ä‚­‚éD" : "—]‚Í–ß‚Á‚Ä‚­‚éD"); else +#if 0 /*JP*/ verbalize("%s %s!", random_malediction[rn2(SIZE(random_malediction))], random_insult[rn2(SIZE(random_insult))]); +#else + verbalize("%sC%sI", + random_malediction[rn2(SIZE(random_malediction))], + random_insult[rn2(SIZE(random_insult))]); +#endif } else if (is_lminion(mtmp)) { com_pager(rn2(QTN_ANGELIC - 1 + (Hallucination ? 1 : 0)) + QT_ANGELIC); } else { if (!rn2(5)) +/*JP pline("%s casts aspersions on your ancestry.", Monnam(mtmp)); +*/ + pline("%s‚Í‚ ‚È‚½‚̉ƕ¿‚𒆏‚µ‚½D", Monnam(mtmp)); else com_pager(rn2(QTN_DEMONIC) + QT_DEMONIC); } diff --git a/src/worm.c b/src/worm.c index 5d41c59..aed90fb 100644 --- a/src/worm.c +++ b/src/worm.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" #include "lev.h" @@ -388,10 +393,18 @@ struct obj *weap; if (!new_worm) { if (context.mon_moving) { if (canspotmon(worm)) +#if 0 /*JP*/ pline("Part of %s tail has been cut off.", s_suffix(mon_nam(worm))); +#else + pline("%s‚̐K”ö‚̈ꕔ•ª‚ªØ‚è—Ž‚Æ‚³‚ꂽD", + mon_nam(worm)); +#endif } else +/*JP You("cut part of the tail off of %s.", mon_nam(worm)); +*/ + You("%s‚̐K”ö‚̈ꕔ•ª‚ðØ‚Á‚½D", mon_nam(worm)); toss_wsegs(new_tail, TRUE); if (worm->mhp > 1) worm->mhp /= 2; @@ -421,9 +434,15 @@ struct obj *weap; place_wsegs(new_worm); if (context.mon_moving) +/*JP pline("%s is cut in half.", Monnam(worm)); +*/ + pline("%s‚͐^‚Á‚Õ‚½‚‚ɂ³‚ꂽD", Monnam(worm)); else +/*JP You("cut %s in half.", mon_nam(worm)); +*/ + You("%s‚ð^‚Á‚Õ‚½‚‚ɂµ‚½D", mon_nam(worm)); } /* diff --git a/src/worn.c b/src/worn.c index 947f367..fa2f6f5 100644 --- a/src/worn.c +++ b/src/worn.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" STATIC_DCL void FDECL(m_lose_armor, (struct monst *, struct obj *)); @@ -277,17 +282,29 @@ struct obj *obj; /* item to make known if effect can be seen */ && !(mon->mfrozen || mon->msleeping) && canseemon(mon)) { /* fast to slow (skipping intermediate state) or vice versa */ const char *howmuch = +/*JP (mon->mspeed + oldspeed == MFAST + MSLOW) ? "much " : ""; +*/ + (mon->mspeed + oldspeed == MFAST + MSLOW) ? "‚·‚²‚­" : ""; if (petrify) { /* mimic the player's petrification countdown; "slowing down" even if fast movement rate retained via worn speed boots */ if (flags.verbose) +/*JP pline("%s is slowing down.", Monnam(mon)); +*/ + pline("%s‚Í‚Ì‚ë‚­‚È‚Á‚½D", Monnam(mon)); } else if (adjust > 0 || mon->mspeed == MFAST) +/*JP pline("%s is suddenly moving %sfaster.", Monnam(mon), howmuch); +*/ + pline("%s‚Ì“®‚«‚Í“Ë‘R%s‚·‚΂₭‚È‚Á‚½D", Monnam(mon), howmuch); else +/*JP pline("%s seems to be moving %sslower.", Monnam(mon), howmuch); +*/ + pline("%s‚Ì“®‚«‚Í%s‚Ì‚ë‚­‚È‚Á‚½‚悤‚ÉŒ©‚¦‚éD", Monnam(mon), howmuch); /* might discover an object if we see the speed change happen */ if (obj != 0) @@ -596,11 +613,19 @@ outer_break: char buf[BUFSZ]; if (old) +/*JP Sprintf(buf, " removes %s and", distant_name(old, doname)); +*/ + Sprintf(buf, "%s‚ð‚Í‚¸‚µ‚Ä", distant_name(old, doname)); else buf[0] = '\0'; +#if 0 /*JP*/ pline("%s%s puts on %s.", Monnam(mon), buf, distant_name(best, doname)); +#else + pline("%s‚Í%s%s‚ðg‚ɂ‚¯‚½D", Monnam(mon), buf, + distant_name(best,doname)); +#endif if (autocurse) pline("%s %s %s %s for a moment.", s_suffix(Monnam(mon)), simpleonames(best), otense(best, "glow"), @@ -621,7 +646,10 @@ outer_break: /* if couldn't see it but now can, or vice versa, */ if (!creation && (unseen ^ !canseemon(mon))) { if (mon->minvis && !See_invisible) { +/*JP pline("Suddenly you cannot see %s.", nambuf); +*/ + pline("“Ë‘R%s‚ªŒ©‚¦‚È‚­‚È‚Á‚½D", nambuf); makeknown(best->otyp); } /* else if (!mon->minvis) pline("%s suddenly appears!", Amonnam(mon)); */ @@ -775,7 +803,9 @@ boolean polyspot; struct permonst *mdat = mon->data; boolean vis = cansee(mon->mx, mon->my); boolean handless_or_tiny = (nohands(mdat) || verysmall(mdat)); +#if 0 /*JP*//*Žg‚í‚È‚¢*/ const char *pronoun = mhim(mon), *ppronoun = mhis(mon); +#endif if (breakarm(mdat)) { if ((otmp = which_armor(mon, W_ARM)) != 0) { @@ -785,42 +815,74 @@ boolean polyspot; "the dragon merges with his scaly armor" is odd and the monster's previous form is already gone */ else if (vis) +/*JP pline("%s breaks out of %s armor!", Monnam(mon), ppronoun); +*/ + pline("%s‚ÍŠZ‚ð‚â‚Ô‚èo‚½I", Monnam(mon)); else +/*JP You_hear("a cracking sound."); +*/ + You_hear("ƒoƒŠƒoƒŠ‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D"); m_useup(mon, otmp); } if ((otmp = which_armor(mon, W_ARMC)) != 0) { if (otmp->oartifact) { if (vis) +#if 0 /*JP*/ pline("%s %s falls off!", s_suffix(Monnam(mon)), cloak_simple_name(otmp)); +#else + pline("%s‚Ì%s‚Í—Ž‚¿‚½I", Monnam(mon), + cloak_simple_name(otmp)); +#endif if (polyspot) bypass_obj(otmp); m_lose_armor(mon, otmp); } else { if (vis) +#if 0 /*JP*/ pline("%s %s tears apart!", s_suffix(Monnam(mon)), cloak_simple_name(otmp)); +#else + pline("%s‚Ì%s‚Í‚¸‚½‚¸‚½‚É‚È‚Á‚½I", Monnam(mon), + cloak_simple_name(otmp)); +#endif else +/*JP You_hear("a ripping sound."); +*/ + You_hear("ƒrƒŠƒb‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D"); m_useup(mon, otmp); } } if ((otmp = which_armor(mon, W_ARMU)) != 0) { if (vis) +/*JP pline("%s shirt rips to shreds!", s_suffix(Monnam(mon))); +*/ + pline("%s‚̃Vƒƒƒc‚Í‚¸‚½‚¸‚½‚É‚È‚Á‚½I", Monnam(mon)); else +/*JP You_hear("a ripping sound."); +*/ + You_hear("ƒrƒŠƒb‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D"); m_useup(mon, otmp); } } else if (sliparm(mdat)) { if ((otmp = which_armor(mon, W_ARM)) != 0) { if (vis) +#if 0 /*JP*/ pline("%s armor falls around %s!", s_suffix(Monnam(mon)), pronoun); +#else + pline("%s‚ÌŠZ‚ª‰ñ‚è‚É—Ž‚¿‚½I", Monnam(mon)); +#endif else +/*JP You_hear("a thud."); +*/ + You_hear("ƒhƒVƒ“‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D"); if (polyspot) bypass_obj(otmp); m_lose_armor(mon, otmp); @@ -828,11 +890,21 @@ boolean polyspot; if ((otmp = which_armor(mon, W_ARMC)) != 0) { if (vis) { if (is_whirly(mon->data)) +#if 0 /*JP*/ pline("%s %s falls, unsupported!", s_suffix(Monnam(mon)), cloak_simple_name(otmp)); +#else + pline("%s‚Ì%s‚ÍŽx‚¦‚«‚ꂸ‚É—Ž‚¿‚½I", Monnam(mon), + cloak_simple_name(otmp)); +#endif else +#if 0 /*JP*/ pline("%s shrinks out of %s %s!", Monnam(mon), ppronoun, cloak_simple_name(otmp)); +#else + pline("%s‚Í%s‚æ‚èk‚ñ‚¾I", Monnam(mon), + cloak_simple_name(otmp)); +#endif } if (polyspot) bypass_obj(otmp); @@ -841,11 +913,20 @@ boolean polyspot; if ((otmp = which_armor(mon, W_ARMU)) != 0) { if (vis) { if (sliparm(mon->data)) +#if 0 /*JP*/ pline("%s seeps right through %s shirt!", Monnam(mon), ppronoun); +#else + pline("%s‚ÍŽ©•ª‚̃Vƒƒƒc‚É‚µ‚ݍž‚ñ‚¾I", Monnam(mon)); +#endif else +#if 0 /*JP*/ pline("%s becomes much too small for %s shirt!", Monnam(mon), ppronoun); +#else + pline("%s‚ÍŽ©•ª‚̃Vƒƒƒc‚æ‚肸‚Á‚Ə¬‚³‚­‚È‚Á‚½I", + Monnam(mon)); +#endif } if (polyspot) bypass_obj(otmp); @@ -856,18 +937,30 @@ boolean polyspot; /* [caller needs to handle weapon checks] */ if ((otmp = which_armor(mon, W_ARMG)) != 0) { if (vis) +#if 0 /*JP*/ pline("%s drops %s gloves%s!", Monnam(mon), ppronoun, MON_WEP(mon) ? " and weapon" : ""); +#else + pline("%s‚͏¬Žè%s‚ð—Ž‚µ‚½I", Monnam(mon), + MON_WEP(mon) ? "‚Æ•Ší" : ""); +#endif if (polyspot) bypass_obj(otmp); m_lose_armor(mon, otmp); } if ((otmp = which_armor(mon, W_ARMS)) != 0) { if (vis) +#if 0 /*JP*/ pline("%s can no longer hold %s shield!", Monnam(mon), ppronoun); +#else + pline("%s‚Í‚à‚͂⏂‚ðŽ‚Â‚±‚Æ‚ª‚Å‚«‚È‚¢I", Monnam(mon)); +#endif else +/*JP You_hear("a clank."); +*/ + You_hear("ƒJƒ‰ƒ“‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D"); if (polyspot) bypass_obj(otmp); m_lose_armor(mon, otmp); @@ -878,10 +971,18 @@ boolean polyspot; /* flimsy test for horns matches polyself handling */ && (handless_or_tiny || !is_flimsy(otmp))) { if (vis) +#if 0 /*JP*/ pline("%s helmet falls to the %s!", s_suffix(Monnam(mon)), surface(mon->mx, mon->my)); +#else + pline("%s‚ÌŠ•‚Í%s‚Ö—Ž‚¿‚½I", + Monnam(mon), surface(mon->mx, mon->my)); +#endif else +/*JP You_hear("a clank."); +*/ + You_hear("ƒKƒ`ƒƒƒ“‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D"); if (polyspot) bypass_obj(otmp); m_lose_armor(mon, otmp); @@ -891,10 +992,18 @@ boolean polyspot; if ((otmp = which_armor(mon, W_ARMF)) != 0) { if (vis) { if (is_whirly(mon->data)) +/*JP pline("%s boots fall away!", s_suffix(Monnam(mon))); +*/ + pline("%s‚ÌŒC‚Í‚Ê‚°—Ž‚¿‚½I", Monnam(mon)); else +#if 0 /*JP*/ pline("%s boots %s off %s feet!", s_suffix(Monnam(mon)), verysmall(mdat) ? "slide" : "are pushed", ppronoun); +#else + pline("%s‚ÌŒC‚Í‘«‚©‚ç%sI", Monnam(mon), + verysmall(mdat) ? "ŠŠ‚è—Ž‚¿‚½" : "‰Ÿ‚µo‚³‚ꂽ"); +#endif } if (polyspot) bypass_obj(otmp); @@ -907,18 +1016,30 @@ boolean polyspot; bypass_obj(otmp); m_lose_armor(mon, otmp); if (vis) +/*JP pline("%s saddle falls off.", s_suffix(Monnam(mon))); +*/ + pline("%s‚©‚çˆÆ‚ª—Ž‚¿‚½D", Monnam(mon)); } if (mon == u.usteed) goto noride; } else if (mon == u.usteed && !can_ride(mon)) { noride: +/*JP You("can no longer ride %s.", mon_nam(mon)); +*/ + You("‚à‚¤%s‚ɏæ‚Á‚Ä‚¢‚ç‚ê‚È‚¢D", mon_nam(mon)); if (touch_petrifies(u.usteed->data) && !Stone_resistance && rnl(3)) { char buf[BUFSZ]; +/*JP You("touch %s.", mon_nam(u.usteed)); +*/ + You("%s‚ɐG‚Á‚½D", mon_nam(u.usteed)); +/*JP Sprintf(buf, "falling off %s", an(u.usteed->data->mname)); +*/ + Sprintf(buf, "%s‚©‚ç—Ž‚¿‚Ä", u.usteed->data->mname); instapetrify(buf); } dismount_steed(DISMOUNT_FELL); diff --git a/src/write.c b/src/write.c index 1000b29..517121d 100644 --- a/src/write.c +++ b/src/write.c @@ -1,6 +1,11 @@ /* NetHack 3.6 write.c $NHDT-Date: 1446078770 2015/10/29 00:32:50 $ $NHDT-Branch: master $:$NHDT-Revision: 1.16 $ */ /* 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" STATIC_DCL int FDECL(cost, (struct obj *)); @@ -105,11 +110,19 @@ register struct obj *pen; const char *typeword; if (nohands(youmonst.data)) { +/*JP You("need hands to be able to write!"); +*/ + You("‘‚­‚½‚߂ɂ͎肪•K—v‚¾I"); return 0; } else if (Glib) { +#if 0 /*JP*/ pline("%s from your %s.", Tobjnam(pen, "slip"), makeplural(body_part(FINGER))); +#else + pline("%s‚ª%s‚©‚犊‚肨‚¿‚½D", xname(pen), + body_part(FINGER)); +#endif dropx(pen); return 1; } @@ -120,14 +133,25 @@ register struct obj *pen; return 0; /* can't write on a novel (unless/until it's been converted into a blank spellbook), but we want messages saying so to avoid "spellbook" */ +#if 0 /*JP*/ typeword = (paper->otyp == SPE_NOVEL) ? "book" : (paper->oclass == SPBOOK_CLASS) ? "spellbook" : "scroll"; +#else + typeword = (paper->otyp == SPE_NOVEL) + ? "–{" + : (paper->oclass == SPBOOK_CLASS) + ? "–‚–@‘" + : "Šª•¨"; +#endif if (Blind) { if (!paper->dknown) { +/*JP You("don't know if that %s is blank or not.", typeword); +*/ + You("%s‚ª”’Ž†‚©‚Ç‚¤‚©‚í‚©‚ç‚È‚¢I", typeword); return 1; } else if (paper->oclass == SPBOOK_CLASS) { /* can't write a magic book while blind */ @@ -138,18 +162,25 @@ register struct obj *pen; } paper->dknown = 1; if (paper->otyp != SCR_BLANK_PAPER && paper->otyp != SPE_BLANK_PAPER) { +/*JP pline("That %s is not blank!", typeword); +*/ + pline("%s‚Í”’Ž†‚¶‚á‚È‚¢I", typeword); exercise(A_WIS, FALSE); return 1; } /* what to write */ +/*JP Sprintf(qbuf, "What type of %s do you want to write?", typeword); +*/ + Sprintf(qbuf, "‚Ç‚ÌŽí‚Ì%s‚ÌŽô•¶‚ð‘‚«‚Ü‚·‚©H", typeword); getlin(qbuf, namebuf); (void) mungspaces(namebuf); /* remove any excess whitespace */ if (namebuf[0] == '\033' || !namebuf[0]) return 1; nm = namebuf; +#if 0 /*JP*//*“ú–{Œê‚Å‚Í•s—v*/ if (!strncmpi(nm, "scroll ", 7)) nm += 7; else if (!strncmpi(nm, "spellbook ", 10)) @@ -161,6 +192,7 @@ register struct obj *pen; (void) strncpy(bp, " armor ", 7); /* won't add '\0' */ (void) mungspaces(bp + 1); /* remove the extra space */ } +#endif deferred = 0; /* not any scroll or book */ deferralchance = 0; /* incremented for each oc_uname match */ @@ -204,21 +236,36 @@ register struct obj *pen; goto found; } +/*JP There("is no such %s!", typeword); +*/ + pline("‚»‚̂悤‚È%s‚Í‚È‚¢I", typeword); return 1; found: if (i == SCR_BLANK_PAPER || i == SPE_BLANK_PAPER) { +/*JP You_cant("write that!"); +*/ + pline("”’Ž†‚É”’Ž†‚ð‘‚­HI"); +/*JP pline("It's obscene!"); +*/ + pline("‚»‚¤‚¢‚¤‚â‚è‚©‚½‚Í‚¿‚å‚Á‚Æ•s–ù‰õ‚¾‚ȁI"); return 1; } else if (i == SPE_BOOK_OF_THE_DEAD) { +/*JP pline("No mere dungeon adventurer could write that."); +*/ + pline("ˆê‰î‚Ì–À‹{–`Œ¯‰Æ‚ɂ͏‘‚¯‚é‚à‚Ì‚Å‚Í‚È‚¢D"); return 1; } else if (by_descr && paper->oclass == SPBOOK_CLASS && !objects[i].oc_name_known) { /* can't write unknown spellbooks by description */ +/*JP pline("Unfortunately you don't have enough information to go on."); +*/ + pline("Žc”O‚È‚ª‚ç‚»‚ê‚ð‘‚­‚¾‚¯‚̏\•ª‚È’mŽ¯‚ª‚È‚¢D"); return 1; } @@ -234,7 +281,10 @@ found: /* see if there's enough ink */ basecost = cost(new_obj); if (pen->spe < basecost / 2) { +/*JP Your("marker is too dry to write that!"); +*/ + Your("ƒ}[ƒJ‚ÍŠ£‚«‚·‚¬‚Ä‚¨‚肤‚Ü‚­‘‚¯‚È‚©‚Á‚½I"); obfree(new_obj, (struct obj *) 0); return 1; } @@ -247,13 +297,22 @@ found: /* dry out marker */ if (pen->spe < actualcost) { pen->spe = 0; +/*JP Your("marker dries out!"); +*/ + pline("‘‚¢‚Ä‚¢‚é“r’†‚Ń}[ƒJ‚ÍŠ£‚«‚«‚Á‚½I"); /* scrolls disappear, spellbooks don't */ if (paper->oclass == SPBOOK_CLASS) { +/*JP pline_The("spellbook is left unfinished and your writing fades."); +*/ + pline_The("–‚–@‘‚ɂ͏‘‚«‚«‚ê‚È‚©‚Á‚½D‚»‚µ‚ď‘‚¢‚½•¶Žš‚͏Á‚¦‚Ä‚µ‚Ü‚Á‚½D"); update_inventory(); /* pen charges */ } else { +/*JP pline_The("scroll is now useless and disappears!"); +*/ + pline_The("Šª•¨‚ÍŽg‚¢‚à‚Ì‚É‚È‚ç‚È‚­‚È‚Á‚ďÁ–Å‚µ‚½I"); useup(paper); } obfree(new_obj, (struct obj *) 0); @@ -290,19 +349,31 @@ found: && !(by_descr && label_known(new_obj->otyp, invent)) /* and Luck might override after both checks have failed */ && rnl(Role_if(PM_WIZARD) ? 5 : 15)) { +/*JP You("%s to write that.", by_descr ? "fail" : "don't know how"); +*/ + You("%sI", by_descr ? "‘‚­‚Ì‚ÉŽ¸”s‚µ‚½" : "‚Ç‚¤‚â‚Á‚ď‘‚­‚Ì‚©’m‚ç‚È‚¢"); /* scrolls disappear, spellbooks don't */ if (paper->oclass == SPBOOK_CLASS) { You( +/*JP "write in your best handwriting: \"My Diary\", but it quickly fades."); +*/ + "’š”J‚ɏ‘‚¢‚½Fu‰ä‚ª“ú‹LvD‚µ‚©‚µ‚ ‚Á‚ÆŒ¾‚¤ŠÔ‚ɏÁ‚¦‚Ä‚µ‚Ü‚Á‚½D"); update_inventory(); /* pen charges */ } else { if (by_descr) { Strcpy(namebuf, OBJ_DESCR(objects[new_obj->otyp])); wipeout_text(namebuf, (6 + MAXULEV - u.ulevel) / 6, 0); } else +/*JP Sprintf(namebuf, "%s was here!", plname); +*/ + Sprintf(namebuf, "%s‚Í‚±‚±‚É‚ ‚èI", plname); +/*JP You("write \"%s\" and the scroll disappears.", namebuf); +*/ + You("u%sv‚Ə‘‚¢‚½D‚·‚é‚ÆŠª•¨‚͏Á‚¦‚Ä‚µ‚Ü‚Á‚½D", namebuf); useup(paper); } obfree(new_obj, (struct obj *) 0); @@ -328,8 +399,13 @@ found: /* success */ if (new_obj->oclass == SPBOOK_CLASS) { /* acknowledge the change in the object's description... */ +#if 0 /*JP*/ pline_The("spellbook warps strangely, then turns %s.", new_book_description(new_obj->otyp, namebuf)); +#else + pline("–‚–@‘‚Í–­‚É”½‚è‚©‚¦‚èC‚»‚µ‚Ä%s‚É‚È‚Á‚½D", + new_book_description(new_obj->otyp, namebuf)); +#endif } new_obj->blessed = (curseval > 0); new_obj->cursed = (curseval < 0); @@ -337,9 +413,15 @@ found: if (new_obj->otyp == SCR_MAIL) new_obj->spe = 1; #endif +#if 0 /*JP*/ new_obj = hold_another_object(new_obj, "Oops! %s out of your grasp!", The(aobjnam(new_obj, "slip")), (const char *) 0); +#else + new_obj = + hold_another_object(new_obj, "‚¨‚Á‚ƁI%s‚Í‚ ‚È‚½‚ÌŽè‚©‚犊‚è—Ž‚¿‚½I", + xname(new_obj), (const char *) 0); +#endif return 1; } diff --git a/src/zap.c b/src/zap.c index 474f195..d29ee54 100644 --- a/src/zap.c +++ b/src/zap.c @@ -2,6 +2,11 @@ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* 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" /* Disintegration rays have special treatment; corpses are never left. @@ -53,23 +58,65 @@ STATIC_DCL int FDECL(spell_hit_bonus, (int)); ((ptr)->mlet == S_EEL || amphibious(ptr) || is_swimmer(ptr)) STATIC_VAR const char are_blinded_by_the_flash[] = +/*JP "are blinded by the flash!"; +*/ + "‚܂΂䂢Œõ‚Å–Ú‚ªŒ©‚¦‚È‚­‚È‚Á‚½I"; const char *const flash_types[] = { /* also used in buzzmu(mcastu.c) */ +#if 0 /*JP*/ "magic missile", /* Wands must be 0-9 */ "bolt of fire", "bolt of cold", "sleep ray", "death ray", "bolt of lightning", "", "", "", "", +#else + "–‚–@‚Ì–î", /* Wands must be 0-9 */ + "‰Î‚Ì‘MŒõ", + "•X‚Ì‘MŒõ", + "–°‚èŒõü", + "Ž€‚ÌŒõü", + "ˆîÈ‚Ì‘MŒõ", + "", + "", + "", + "", +#endif +#if 0 /*JP*/ "magic missile", /* Spell equivalents must be 10-19 */ "fireball", "cone of cold", "sleep ray", "finger of death", "bolt of lightning", /* There is no spell, used for retribution */ "", "", "", "", +#else + "–‚–@‚Ì–î", /* Spell equivalents must be 10-19 */ + "‰Î‚Ì‹Ê", + "—â‹C", + "–°‚èŒõü", + "Ž€‚ÌŽw", + "ˆîÈ‚Ì‘MŒõ", /* There is no spell, used for retribution */ + "", + "", + "", + "", +#endif +#if 0 /*JP*/ "blast of missiles", /* Dragon breath equivalents 20-29*/ "blast of fire", "blast of frost", "blast of sleep gas", "blast of disintegration", "blast of lightning", "blast of poison gas", "blast of acid", "", "" +#else + "–‚–@‚Ì–î‚Ì‘§", /* Dragon breath equivalents 20-29*/ + "‰Î‚Ì‘§", + "•X‚Ì‘§", + "‡–°ƒKƒX‚Ì‘§", + "•ª‰ð‚Ì‘§", + "ˆîÈ‚Ì‘§", + "“ŃKƒX‚Ì‘§", + "Ž_‚Ì‘§", + "", + "" +#endif }; /* @@ -138,7 +185,10 @@ struct obj *otmp; boolean reveal_invis = FALSE, learn_it = FALSE; boolean dbldam = Role_if(PM_KNIGHT) && u.uhave.questart; int dmg, otyp = otmp->otyp; +/*JP const char *zap_type_text = "spell"; +*/ + const char *zap_type_text = "–‚–@"; struct obj *obj; boolean disguised_mimic = (mtmp->data->mlet == S_MIMIC && mtmp->m_ap_type != M_AP_NOTHING); @@ -148,13 +198,19 @@ struct obj *otmp; switch (otyp) { case WAN_STRIKING: +/*JP zap_type_text = "wand"; +*/ + zap_type_text = "ñ"; /* fall through */ case SPE_FORCE_BOLT: reveal_invis = TRUE; if (resists_magm(mtmp)) { /* match effect on player */ shieldeff(mtmp->mx, mtmp->my); +/*JP pline("Boing!"); +*/ + pline("ƒ{ƒCƒ“I"); break; /* skip makeknown */ } else if (u.uswallow || rnd(20) < 10 + find_mac(mtmp)) { dmg = d(2, 12); @@ -174,8 +230,14 @@ struct obj *otmp; mon_adjust_speed(mtmp, -1, otmp); m_dowear(mtmp, FALSE); /* might want speed boots */ if (u.uswallow && (mtmp == u.ustuck) && is_whirly(mtmp->data)) { +/*JP You("disrupt %s!", mon_nam(mtmp)); +*/ + You("%s‚ðƒoƒ‰ƒoƒ‰‚É‚µ‚½I", mon_nam(mtmp)); +/*JP pline("A huge hole opens up..."); +*/ + pline("’Eo‚Å‚«‚»‚¤‚ÈŒŠ‚ªŠJ‚¢‚½DDD"); expels(mtmp, mtmp->data, TRUE); } } @@ -224,7 +286,10 @@ struct obj *otmp; with their metabolism...) */ if (mtmp->cham == NON_PM && !rn2(25)) { if (canseemon(mtmp)) { +/*JP pline("%s shudders!", Monnam(mtmp)); +*/ + pline("%s‚͐gk‚¢‚µ‚½I", Monnam(mtmp)); learn_it = TRUE; } /* context.bypasses = TRUE; ## for make_corpse() */ @@ -253,7 +318,10 @@ struct obj *otmp; Strcpy(nambuf, Monnam(mtmp)); mon_set_minvis(mtmp); if (!oldinvis && knowninvisible(mtmp)) { +/*JP pline("%s turns transparent!", nambuf); +*/ + pline("%s‚Í“§–¾‚É‚È‚Á‚½I", nambuf); learn_it = TRUE; } break; @@ -274,9 +342,15 @@ struct obj *otmp; if (u.uswallow && mtmp == u.ustuck) { if (is_animal(mtmp->data)) { if (Blind) +/*JP You_feel("a sudden rush of air!"); +*/ + You("“Ë‘RŒƒ‚µ‚¢‹ó‹C‚Ì—¬‚ê‚ðŠ´‚¶‚½I"); else +/*JP pline("%s opens its mouth!", Monnam(mtmp)); +*/ + pline("%s‚ÍŒû‚ðŠJ‚¢‚½I", Monnam(mtmp)); } expels(mtmp, mtmp->data, TRUE); /* zap which hits steed will only release saddle if it @@ -325,8 +399,13 @@ struct obj *otmp; } else mimic_hit_msg(mtmp, otyp); } else +#if 0 /*JP*/ pline("%s looks%s better.", Monnam(mtmp), otyp == SPE_EXTRA_HEALING ? " much" : ""); +#else + pline("%s‚Í%sŒ³‹C‚É‚È‚Á‚½‚悤‚¾D", Monnam(mtmp), + otyp == SPE_EXTRA_HEALING ? "‚Æ‚Ä‚à" : "" ); +#endif } if (mtmp->mtame || mtmp->mpeaceful) { adjalign(Role_if(PM_HEALER) ? 1 : sgn(u.ualign.type)); @@ -359,10 +438,16 @@ struct obj *otmp; /* turn into flesh golem */ if (newcham(mtmp, &mons[PM_FLESH_GOLEM], FALSE, FALSE)) { if (canseemon(mtmp)) +/*JP pline("%s turns to flesh!", name); +*/ + pline("%s‚̐Ή»‚ª‰ð‚¯‚½I", name); } else { if (canseemon(mtmp)) +/*JP pline("%s looks rather fleshy for a moment.", name); +*/ + pline("%s‚͈êuÎ‰»‚ª‰ð‚¯‚½D", name); } } else wake = FALSE; @@ -383,7 +468,10 @@ struct obj *otmp; else { mtmp->m_lev--; if (canseemon(mtmp)) +/*JP pline("%s suddenly seems weaker!", Monnam(mtmp)); +*/ + pline("%s‚͂Ƃ‚º‚ñŽã‚­‚È‚Á‚½‚悤‚È‹C‚ª‚µ‚½I", Monnam(mtmp)); } } break; @@ -440,8 +528,13 @@ struct monst *mtmp; } (void) display_minventory(mtmp, MINV_ALL | MINV_NOLET, (char *) 0); } else { +#if 0 /*JP*/ pline("%s is not carrying anything%s.", noit_Monnam(mtmp), (u.uswallow && mtmp == u.ustuck) ? " besides you" : ""); +#else + pline("%s‚Í%s‰½‚àŽ‚Á‚Ä‚¢‚È‚¢D", noit_Monnam(mtmp), + (u.uswallow && mtmp == u.ustuck) ? "‚ ‚È‚½ˆÈŠO‚É" : ""); +#endif } } @@ -787,7 +880,11 @@ boolean by_hero; ghost = find_mid(m_id, FM_FMON); if (ghost && ghost->data == &mons[PM_GHOST]) { if (canseemon(ghost)) +#if 0 /*JP*/ pline("%s is suddenly drawn into its former body!", +#else + pline("%s‚Í“Ë‘R‚à‚Ƃ̑̂Ɉø‚«ž‚܂ꂽI", +#endif Monnam(ghost)); /* transfer the ghost's inventory along with it */ while ((otmp = ghost->minvent) != 0) { @@ -889,11 +986,20 @@ struct monst *mon; ++res; if (youseeit) { if (!once++) +/*JP Strcpy(owner, (mon == &youmonst) ? "Your" +*/ + Strcpy(owner, (mon == &youmonst) ? "‚ ‚È‚½" : s_suffix(Monnam(mon))); +/*JP pline("%s %s suddenly comes alive!", owner, corpse); +*/ + pline("%s‚Ì%s‚Í“Ë‘R¶–½‚ð‘Ñ‚Ñ‚½I", owner, corpse); } else if (canseemon(mtmp2)) +/*JP pline("%s suddenly appears!", Amonnam(mtmp2)); +*/ + pline("%s‚ª“Ë‘RŒ»‚í‚ꂽI", Amonnam(mtmp2)); } } return res; @@ -1192,7 +1298,10 @@ int okind; case METAL: case MITHRIL: pm_index = PM_IRON_GOLEM; +/*JP material = "metal "; +*/ + material = "‹à‘®"; break; case COPPER: case SILVER: @@ -1200,46 +1309,77 @@ int okind; case GEMSTONE: case MINERAL: pm_index = rn2(2) ? PM_STONE_GOLEM : PM_CLAY_GOLEM; +/*JP material = "lithic "; +*/ + material = "z•¨"; break; case 0: case FLESH: /* there is no flesh type, but all food is type 0, so we use it */ pm_index = PM_FLESH_GOLEM; +/*JP material = "organic "; +*/ + material = "—L‹@•¨"; break; case WOOD: pm_index = PM_WOOD_GOLEM; +/*JP material = "wood "; +*/ + material = "–؍Þ"; break; case LEATHER: pm_index = PM_LEATHER_GOLEM; +/*JP material = "leather "; +*/ + material = "Šv"; break; case CLOTH: pm_index = PM_ROPE_GOLEM; +/*JP material = "cloth "; +*/ + material = "•z"; break; case BONE: pm_index = PM_SKELETON; /* nearest thing to "bone golem" */ +/*JP material = "bony "; +*/ + material = "œ"; break; case GOLD: pm_index = PM_GOLD_GOLEM; +/*JP material = "gold "; +*/ + material = "‹à"; break; case GLASS: pm_index = PM_GLASS_GOLEM; +/*JP material = "glassy "; +*/ + material = "ƒKƒ‰ƒX"; break; case PAPER: pm_index = PM_PAPER_GOLEM; +/*JP material = "paper "; +*/ + material = "Ž†"; break; default: /* if all else fails... */ pm_index = PM_STRAW_GOLEM; +#if 0 /*JP*/ material = ""; +#else + material = "•¨‘Ì"; +#endif break; } @@ -1250,8 +1390,13 @@ int okind; polyuse(obj, okind, (int) mons[pm_index].cwt); if (mtmp && cansee(mtmp->mx, mtmp->my)) { +#if 0 /*JP*/ pline("Some %sobjects meld, and %s arises from the pile!", material, a_monnam(mtmp)); +#else + pline("‚¢‚­‚‚©‚Ì%s‚ª—n‚¯C‚»‚ÌŽR‚©‚ç%s‚ªŒ»‚í‚ꂽI", material, + a_monnam(mtmp)); +#endif } } @@ -1567,11 +1712,17 @@ int id; && !costly_spot(u.ux, u.uy)) make_angry_shk(shkp, ox, oy); else { +/*JP pline("%s gets angry!", Monnam(shkp)); +*/ + pline("%s‚ÍŒƒ“{‚µ‚½I", Monnam(shkp)); hot_pursuit(shkp); } } else +/*JP Norep("%s is furious!", Monnam(shkp)); +*/ + Norep("%s‚Í“{‚Á‚½I", Monnam(shkp)); } } delobj(obj); @@ -1637,8 +1788,13 @@ struct obj *obj; else delobj(obj); if (cansee(mon->mx, mon->my)) +#if 0 /*JP*/ pline_The("figurine %sanimates!", golem_xform ? "turns to flesh and " : ""); +#else + pline_The("lŒ`‚Í%s“®‚«‚¾‚µ‚½I", + golem_xform ? "Î‰»‚ª‰ð‚¯‚Ä" : ""); +#endif } } if (mon) { @@ -1692,9 +1848,15 @@ struct obj *obj; non-eating, or something stranger) */ if (Role_if(PM_MONK) || !u.uconduct.unvegetarian || !carnivorous(youmonst.data)) +/*JP Norep("You smell the odor of meat."); +*/ + Norep("“÷‚̈«L‚ª•Y‚Á‚½D"); else +/*JP Norep("You smell a delicious smell."); +*/ + Norep("‚·‚΂炵‚¢‚肾I"); } newsym(oox, ooy); return res; @@ -1819,7 +1981,10 @@ struct obj *obj, *otmp; so just make probing be inconclusive for it */ if (catbox) obj->cknown = 0; +/*JP pline("%s empty.", Tobjnam(obj, catbox ? "seem" : "are")); +*/ + pline("%s‚Í‹ó‚Á‚Û%s‚¾D", xname(obj), catbox ? "‚̂悤" : ""); } else { struct obj *o; /* view contents (not recursively) */ @@ -1988,7 +2153,10 @@ register struct obj *wand; if (wand->spe < 0 || (wand->spe == 0 && rn2(121))) return 0; if (wand->spe == 0) +/*JP You("wrest one last charge from the worn-out wand."); +*/ + You("Žg‚¢‚«‚Á‚½ñ‚©‚çÅŒã‚Ì—Í‚ð‚µ‚Ú‚è‚Æ‚Á‚½D"); wand->spe--; return 1; } @@ -2026,17 +2194,26 @@ register struct obj *obj; case WAN_WISHING: known = TRUE; if (Luck + rn2(5) < 0) { +/*JP pline("Unfortunately, nothing happens."); +*/ + pline("Žc”O‚È‚ª‚çC‰½‚à‹N‚«‚È‚©‚Á‚½D"); break; } makewish(); break; case WAN_ENLIGHTENMENT: known = TRUE; +/*JP You_feel("self-knowledgeable..."); +*/ + You("Ž©•ªŽ©g‚ª”»‚é‚悤‚È‹C‚ª‚µ‚½DDD"); display_nhwindow(WIN_MESSAGE, FALSE); enlightenment(MAGICENLIGHTENMENT, ENL_GAMEINPROGRESS); +/*JP pline_The("feeling subsides."); +*/ + pline("‚»‚ÌŠ´‚¶‚Í‚È‚­‚È‚Á‚½D"); exercise(A_WIS, TRUE); break; } @@ -2055,9 +2232,15 @@ struct obj *otmp; { int dmg; otmp->in_use = TRUE; /* in case losehp() is fatal */ +/*JP pline("%s suddenly explodes!", The(xname(otmp))); +*/ + pline("%s‚Í“Ë‘R”š”­‚µ‚½I", xname(otmp)); dmg = d(otmp->spe + 2, 6); +/*JP losehp(Maybe_Half_Phys(dmg), "exploding wand", KILLED_BY_AN); +*/ + losehp(Maybe_Half_Phys(dmg), "ñ‚Ì”š”­‚Å", KILLED_BY_AN); useup(otmp); } @@ -2087,14 +2270,21 @@ dozap() return 1; } else if (!(objects[obj->otyp].oc_dir == NODIR) && !getdir((char *) 0)) { if (!Blind) +/*JP pline("%s glows and fades.", The(xname(obj))); +*/ + pline("%s‚͈êu‹P‚¢‚½D", The(xname(obj))); /* make him pay for knowing !NODIR */ } else if (!u.dx && !u.dy && !u.dz && !(objects[obj->otyp].oc_dir == NODIR)) { if ((damage = zapyourself(obj, TRUE)) != 0) { +#if 0 /*JP*/ char buf[BUFSZ]; Sprintf(buf, "zapped %sself with a wand", uhim()); losehp(Maybe_Half_Phys(damage), buf, NO_KILLER_PREFIX); +#else + losehp(Maybe_Half_Phys(damage), "Ž©•ªŽ©g‚̏ñ‚̗͂𗁂тÄ", NO_KILLER_PREFIX); +#endif } } else { /* Are we having fun yet? @@ -2109,7 +2299,10 @@ dozap() current_wand = 0; } if (obj && obj->spe < 0) { +/*JP pline("%s to dust.", Tobjnam(obj, "turn")); +*/ + pline("%s‚Í‚¿‚è‚Æ‚È‚Á‚½D", xname(obj)); useup(obj); } update_inventory(); /* maybe used a charge */ @@ -2130,10 +2323,16 @@ boolean ordinary; learn_it = TRUE; if (Antimagic) { shieldeff(u.ux, u.uy); +/*JP pline("Boing!"); +*/ + pline("ƒ{ƒCƒ“I"); } else { if (ordinary) { +/*JP You("bash yourself!"); +*/ + You("Ž©•ªŽ©g‚ð‘Å‚¿‚‚¯‚½I"); damage = d(2, 12); } else damage = d(1 + obj->spe, 6); @@ -2144,12 +2343,18 @@ boolean ordinary; case WAN_LIGHTNING: learn_it = TRUE; if (!Shock_resistance) { +/*JP You("shock yourself!"); +*/ + You("“dŒ‚‚ð‚¤‚¯‚½I"); damage = d(12, 6); exercise(A_CON, FALSE); } else { shieldeff(u.ux, u.uy); +/*JP You("zap yourself, but seem unharmed."); +*/ + You("Ž©•ª‚ɏñ‚ð‚Ó‚è‚©‚´‚µ‚½‚ªC‰ö‰ä‚Í‚µ‚È‚©‚Á‚½‚悤‚¾D"); ugolemeffects(AD_ELEC, d(12, 6)); } destroy_item(WAND_CLASS, AD_ELEC); @@ -2158,7 +2363,10 @@ boolean ordinary; break; case SPE_FIREBALL: +/*JP You("explode a fireball on top of yourself!"); +*/ + Your("“ªã‚ʼn΂̋ʂª”š”­‚µ‚½I"); explode(u.ux, u.uy, 11, d(6, 6), WAND_CLASS, EXPL_FIERY); break; case WAN_FIRE: @@ -2166,10 +2374,16 @@ boolean ordinary; learn_it = TRUE; if (Fire_resistance) { shieldeff(u.ux, u.uy); +/*JP You_feel("rather warm."); +*/ + You("‚¿‚å‚Á‚Æ’g‚©‚­Š´‚¶‚½D"); ugolemeffects(AD_FIRE, d(12, 6)); } else { +/*JP pline("You've set yourself afire!"); +*/ + You("‰Š‚ɂ‚‚܂ꂽI"); damage = d(12, 6); } burn_away_slime(); @@ -2186,10 +2400,16 @@ boolean ordinary; learn_it = TRUE; if (Cold_resistance) { shieldeff(u.ux, u.uy); +/*JP You_feel("a little chill."); +*/ + You("‚¿‚å‚Á‚Ɨ₽‚­Š´‚¶‚½D"); ugolemeffects(AD_COLD, d(12, 6)); } else { +/*JP You("imitate a popsicle!"); +*/ + You("ƒAƒCƒXƒLƒƒƒ“ƒf[‚̂悤‚É‚È‚Á‚½I"); damage = d(12, 6); } destroy_item(POTION_CLASS, AD_COLD); @@ -2200,10 +2420,16 @@ boolean ordinary; learn_it = TRUE; if (Antimagic) { shieldeff(u.ux, u.uy); +/*JP pline_The("missiles bounce!"); +*/ + pline("–‚–@‚Ì–î‚Í‚Í‚Ë‚©‚¦‚Á‚½I"); } else { damage = d(4, 6); +/*JP pline("Idiot! You've shot yourself!"); +*/ + pline("‰½‚â‚Á‚Ä‚ñ‚¾I‚ ‚È‚½‚ÍŽ©•ªŽ©g‚ðŒ‚‚Á‚½I"); } break; @@ -2223,7 +2449,10 @@ boolean ordinary; case SPE_DRAIN_LIFE: if (!Drain_resistance) { learn_it = TRUE; /* (no effect for spells...) */ +/*JP losexp("life drainage"); +*/ + losexp("¶–½—Í‚ð‹zŽû‚³‚ê‚Ä"); } damage = 0; /* No additional damage */ break; @@ -2236,7 +2465,10 @@ boolean ordinary; if (BInvis && uarmc->otyp == MUMMY_WRAPPING) { /* A mummy wrapping absorbs it and protects you */ +/*JP You_feel("rather itchy under %s.", yname(uarmc)); +*/ + You("%s‚̉º‚ªƒ€ƒYƒ€ƒY‚µ‚½D", xname(uarmc)); break; } if (ordinary || !rn2(10)) { /* permanent */ @@ -2256,9 +2488,15 @@ boolean ordinary; if (!(HFast & INTRINSIC)) { learn_it = TRUE; if (!Fast) +/*JP You("speed up."); +*/ + You("“®‚«‚ª‘¬‚­‚È‚Á‚½D"); else +/*JP Your("quickness feels more natural."); +*/ + You("‘¬‚³‚ÉŠµ‚ê‚Ä‚«‚½D"); exercise(A_DEX, TRUE); } HFast |= FROMOUTSIDE; @@ -2269,9 +2507,15 @@ boolean ordinary; learn_it = TRUE; if (Sleep_resistance) { shieldeff(u.ux, u.uy); +/*JP You("don't feel sleepy!"); +*/ + You("–°‚­‚È‚ç‚È‚¢I"); } else { +/*JP pline_The("sleep ray hits you!"); +*/ + pline("–°‚èŒõü‚ª‚ ‚È‚½‚É–½’†‚µ‚½I"); fall_asleep(-rnd(50), TRUE); } break; @@ -2297,15 +2541,30 @@ boolean ordinary; case SPE_FINGER_OF_DEATH: if (nonliving(youmonst.data) || is_demon(youmonst.data)) { pline((obj->otyp == WAN_DEATH) +/*JP ? "The wand shoots an apparently harmless beam at you." +*/ + ? "ñ‚ÌŒõü‚Í‚Ç‚¤‚â‚ç‚ ‚È‚½‚ɉe‹¿‚ð—^‚¦‚È‚¢‚à‚̂̂悤‚¾D" +/*JP : "You seem no deader than before."); +*/ + : "‚ ‚È‚½‚Í‚±‚êˆÈãŽ€‚Ë‚È‚¢‚悤‚¾D"); break; } learn_it = TRUE; +/*JP Sprintf(killer.name, "shot %sself with a death ray", uhim()); +*/ + Strcpy(killer.name, "Ž©•ª‚ªŒ‚‚Á‚½Ž€‚ÌŒõü‚É‚æ‚Á‚Ä"); killer.format = NO_KILLER_PREFIX; +/*JP You("irradiate yourself with pure energy!"); +*/ + You("ƒGƒlƒ‹ƒM[‚ðŽ©•ªŽ©g‚ɏƎ˂µ‚½D"); +/*JP You("die."); +*/ + pline("‚ ‚È‚½‚ÍŽ€‚É‚Ü‚µ‚½D"); /* They might survive with an amulet of life saving */ done(DIED); break; @@ -2314,18 +2573,29 @@ boolean ordinary; learn_it = TRUE; (void) unturn_dead(&youmonst); if (is_undead(youmonst.data)) { +#if 0 /*JP*/ You_feel("frightened and %sstunned.", Stunned ? "even more " : ""); +#else + You("‹°•|‚µ%s‚­‚ç‚­‚炵‚½D", + Stunned ? "‚³‚ç‚É" : ""); +#endif make_stunned((HStun & TIMEOUT) + (long) rnd(30), FALSE); } else +/*JP You("shudder in dread."); +*/ + You("‹°•|‚Ők‚¦‚½D"); break; case SPE_HEALING: case SPE_EXTRA_HEALING: learn_it = TRUE; /* (no effect for spells...) */ healup(d(6, obj->otyp == SPE_EXTRA_HEALING ? 8 : 4), 0, FALSE, (obj->otyp == SPE_EXTRA_HEALING)); +/*JP You_feel("%sbetter.", obj->otyp == SPE_EXTRA_HEALING ? "much " : ""); +*/ + You("%s‹C•ª‚ª‚æ‚­‚È‚Á‚½D", obj->otyp == SPE_EXTRA_HEALING ? "‚Æ‚Ä‚à" : ""); break; case WAN_LIGHT: /* (broken wand) */ /* assert( !ordinary ); */ @@ -2556,8 +2826,15 @@ boolean youattack, allow_cancel_kill, self_cancel; { boolean youdefend = (mdef == &youmonst); static const char writing_vanishes[] = +/*JP "Some writing vanishes from %s head!"; +*/ + "‰½‚©‚Ì•¶Žš‚ª%s‚Ì“ª‚©‚çÁ‚¦‚½I"; +#if 0 /*JP:T*/ static const char your[] = "your"; /* should be extern */ +#else + static const char your[] = "‚ ‚È‚½"; /* should be extern */ +#endif if (youdefend ? (!youattack && Antimagic) : resist(mdef, obj->oclass, 0, NOTELL)) @@ -2582,7 +2859,10 @@ boolean youattack, allow_cancel_kill, self_cancel; pline(writing_vanishes, your); if (Unchanging) +/*JP Your("amulet grows hot for a moment, then cools."); +*/ + Your("–‚œ‚¯‚Í‚µ‚΂炭”M‚­‚È‚èC‚₪‚ÄŒ³‚É–ß‚Á‚½D"); else rehumanize(); } @@ -2629,14 +2909,23 @@ struct obj *obj; /* wand or spell */ case WAN_PROBING: ptmp = 0; if (u.dz < 0) { +/*JP You("probe towards the %s.", ceiling(x, y)); +*/ + You("ã•û‚Ì%s‚𒲂ׂ½D", ceiling(x,y)); } else { ptmp += bhitpile(obj, bhito, x, y, u.dz); +/*JP You("probe beneath the %s.", surface(x, y)); +*/ + You("‰º•û‚Ì%s‚𒲂ׂ½D", surface(x,y)); ptmp += display_binventory(x, y, TRUE); } if (!ptmp) +/*JP Your("probe reveals nothing."); +*/ + pline("’²¸‚ÌŒ‹‰Ê‰½‚à‚Å‚Ä‚±‚È‚©‚Á‚½D"); return TRUE; /* we've done our own bhitpile */ case WAN_OPENING: case SPE_KNOCK: @@ -2648,7 +2937,10 @@ struct obj *obj; /* wand or spell */ /* can't use the stairs down to quest level 2 until leader "unlocks" them; give feedback if you try */ on_level(&u.uz, &qstart_level) && !ok_to_quest()) { +/*JP pline_The("stairs seem to ripple momentarily."); +*/ + pline("ŠK’i‚ªˆêu—h‚ꂽ‚悤‚ÉŒ©‚¦‚½D"); disclose = TRUE; } /* down will release you from bear trap or web */ @@ -2680,10 +2972,18 @@ struct obj *obj; /* wand or spell */ && !Is_qstart(&u.uz)) { int dmg; /* similar to zap_dig() */ +#if 0 /*JP*/ pline("A rock is dislodged from the %s and falls on your %s.", ceiling(x, y), body_part(HEAD)); +#else + pline("%s‚©‚çŠâ‚ª—Ž‚¿‚Ä‚ ‚È‚½‚Ì%s‚É–½’†‚µ‚½D", + ceiling(x, y), body_part(HEAD)); +#endif dmg = rnd((uarmh && is_metallic(uarmh)) ? 2 : 6); +/*JP losehp(Maybe_Half_Phys(dmg), "falling rock", KILLED_BY_AN); +*/ + losehp(Maybe_Half_Phys(dmg), "—ŽŠâ‚Å", KILLED_BY_AN); if ((otmp = mksobj_at(ROCK, x, y, FALSE, FALSE)) != 0) { (void) xname(otmp); /* set dknown, maybe bknown */ stackobj(otmp); @@ -2695,11 +2995,20 @@ struct obj *obj; /* wand or spell */ } else if (striking && ttmp->ttyp == TRAPDOOR) { /* striking transforms trapdoor into hole */ if (Blind && !ttmp->tseen) { +/*JP pline("%s beneath you shatters.", Something); +*/ + pline("‚ ‚È‚½‚̉º‚É‚ ‚鉽‚©‚ª‚±‚È‚²‚È‚É‚È‚Á‚½D"); } else if (!ttmp->tseen) { /* => !Blind */ +/*JP pline("There's a trapdoor beneath you; it shatters."); +*/ + pline("‚ ‚È‚½‚̉º‚É‚Í—Ž‚µ”à‚ª‚ ‚Á‚½G‚»‚ê‚Í‚±‚È‚²‚È‚É‚È‚Á‚½D"); } else { +/*JP pline("The trapdoor beneath you shatters."); +*/ + pline("‚ ‚È‚½‚̉º‚É‚ ‚é—Ž‚µ”à‚Í‚±‚È‚²‚È‚É‚È‚Á‚½D"); disclose = TRUE; } ttmp->ttyp = HOLE; @@ -2711,12 +3020,20 @@ struct obj *obj; /* wand or spell */ /* locking transforms hole into trapdoor */ ttmp->ttyp = TRAPDOOR; if (Blind || !ttmp->tseen) { +#if 0 /*JP*/ pline("Some %s swirls beneath you.", is_ice(x, y) ? "frost" : "dust"); +#else + pline("‚ ‚È‚½‚̉º‚Å%s‚ª‚¤‚¸‚ðŠª‚­‚Ì‚ªŒ©‚¦‚½D", + is_ice(x,y) ? "‘š" : "‚Ù‚±‚è"); +#endif } else { ttmp->tseen = 1; newsym(x, y); +/*JP pline("A trapdoor appears beneath you."); +*/ + pline("‚ ‚È‚½‚̉º‚É—Ž‚µ”à‚ª‚ ‚ç‚í‚ꂽD"); disclose = TRUE; } /* hadn't fallen down hole; won't fall now */ @@ -2728,7 +3045,10 @@ struct obj *obj; /* wand or spell */ || (Is_qstart(&u.uz) && u.dz < 0)) { pline1(nothing_happens); } else if (u.dz < 0) { /* we should do more... */ +/*JP pline("Blood drips on your %s.", body_part(FACE)); +*/ + pline("ŒŒ‚ª‚ ‚È‚½‚Ì%s‚Ö‚µ‚½‚½‚è—Ž‚¿‚Ä‚«‚½D", body_part(FACE)); } else if (u.dz > 0 && !OBJ_AT(u.ux, u.uy)) { /* Print this message only if there wasn't an engraving @@ -2739,10 +3059,18 @@ struct obj *obj; /* wand or spell */ if (is_pool(u.ux, u.uy) || is_ice(u.ux, u.uy)) pline1(nothing_happens); else +#if 0 /*JP:T*/ pline("Blood %ss %s your %s.", is_lava(u.ux, u.uy) ? "boil" : "pool", Levitation ? "beneath" : "at", makeplural(body_part(FOOT))); +#else + pline("%s%s%sD", + makeplural(body_part(FOOT)), + Levitation ? "‚̉º" : "Œ³", + is_lava(u.ux, u.uy) ? + "‚ÅŒŒ‚ª•¦“«‚µ‚½" : "‚ÉŒŒ‚¾‚܂肪o—ˆ‚½"); +#endif } } break; @@ -2774,9 +3102,15 @@ struct obj *obj; /* wand or spell */ case SPE_STONE_TO_FLESH: if (e->engr_type == ENGRAVE) { /* only affects things in stone */ +#if 0 /*JP*/ pline_The(Hallucination ? "floor runs like butter!" : "edges on the floor get smoother."); +#else + pline(Hallucination + ? "°‚ªƒoƒ^[‚̂悤‚É‘–‚Á‚Ä‚¢‚Á‚½I" + : "°‚̉‚ª‚È‚ß‚ç‚©‚É‚È‚Á‚½D"); +#endif wipe_engr_at(x, y, d(2, 4), TRUE); } break; @@ -2822,7 +3156,10 @@ zapwrapup() { /* if do_osshock() set obj_zapped while polying, give a message now */ if (obj_zapped) +/*JP You_feel("shuddering vibrations."); +*/ + You("‚¼‚Á‚Æ‚·‚éU“®‚ðŠ´‚¶‚½D"); obj_zapped = FALSE; } @@ -2953,7 +3290,10 @@ int force; /* force == 0 occurs e.g. with sleep ray */ /* note that large force is usual with wands so that !! would require information about hand/weapon/wand */ +/*JP return (const char *) ((force < 0) ? "?" : (force <= 4) ? "." : "!"); +*/ + return (const char *) ((force < 0) ? "H" : (force <= 4) ? "D" : "I"); } void @@ -2964,10 +3304,18 @@ const char *force; /* usually either "." or "!" */ { if ((!cansee(bhitpos.x, bhitpos.y) && !canspotmon(mtmp) && !(u.uswallow && mtmp == u.ustuck)) || !flags.verbose) +/*JP pline("%s %s it.", The(str), vtense(str, "hit")); +*/ + pline("%s‚͉½‚©‚É–½’†‚µ‚½D", str); else +#if 0 /*JP*/ pline("%s %s %s%s", The(str), vtense(str, "hit"), mon_nam(mtmp), force); +#else + pline("%s‚Í%s‚É–½’†‚µ‚½%s", str, + mon_nam(mtmp), force); +#endif } void @@ -2975,11 +3323,19 @@ miss(str, mtmp) register const char *str; register struct monst *mtmp; { +#if 0 /*JP*/ pline( "%s %s %s.", The(str), vtense(str, "miss"), ((cansee(bhitpos.x, bhitpos.y) || canspotmon(mtmp)) && flags.verbose) ? mon_nam(mtmp) : "it"); +#else + pline( + "%s‚Ì%s‚ւ̍UŒ‚‚Í‚Í‚¸‚ꂽD", str, + ((cansee(bhitpos.x,bhitpos.y) || canspotmon(mtmp)) && flags.verbose) + ? mon_nam(mtmp) + : "‰½ŽÒ‚©"); +#endif } STATIC_OVL void @@ -3253,15 +3609,25 @@ struct obj **pobj; /* object tossed/used, set to NULL struct trap *t; if ((bobj = sobj_at(BOULDER, x, y)) != 0) { if (cansee(x, y)) +#if 0 /*JP*/ pline("%s hits %s.", The(distant_name(obj, xname)), an(xname(bobj))); +#else + pline("%s‚Í%s‚É–½’†‚µ‚½D", distant_name(obj, xname), + xname(bobj)); +#endif range = 0; } else if (obj == uball) { if (!test_move(x - ddx, y - ddy, ddx, ddy, TEST_MOVE)) { /* nb: it didn't hit anything directly */ if (cansee(x, y)) +#if 0 /*JP*/ pline("%s jerks to an abrupt halt.", The(distant_name(obj, xname))); /* lame */ +#else + pline("%s‚͂Ƃ‚º‚ñƒKƒNƒ“‚ÆŽ~‚Ü‚Á‚½D", + distant_name(obj, xname)); /* lame */ +#endif range = 0; } else if (Sokoban && (t = t_at(x, y)) != 0 && (t->ttyp == PIT || t->ttyp == SPIKED_PIT @@ -3280,7 +3646,10 @@ struct obj **pobj; /* object tossed/used, set to NULL tmp_at(DISP_END, 0); if (shopdoor) +/*JP pay_for_damage("destroy", FALSE); +*/ + pay_for_damage("”j‰ó‚·‚é", FALSE); return (struct monst *) 0; } @@ -3344,12 +3713,18 @@ int dx, dy; if (Fumbling || rn2(20) >= ACURR(A_DEX)) { /* we hit ourselves */ (void) thitu(10 + obj->spe, dmgval(obj, &youmonst), obj, +/*JP "boomerang"); +*/ + "ƒu[ƒƒ‰ƒ“"); endmultishot(TRUE); break; } else { /* we catch it */ tmp_at(DISP_END, 0); +/*JP You("skillfully catch the boomerang."); +*/ + You("ãŽè‚Ƀu[ƒƒ‰ƒ“‚ð’Í‚Ü‚¦‚½D"); return &youmonst; } } @@ -3539,12 +3914,21 @@ const char *fltxt; xchar sx, sy; { int dam = 0, abstyp = abs(type); +#if 1 /*JP*/ + char buf[BUFSZ]; + + Sprintf(buf, "%s‚É‚æ‚Á‚Ä", fltxt); + fltxt = buf; +#endif switch (abstyp % 10) { case ZT_MAGIC_MISSILE: if (Antimagic) { shieldeff(sx, sy); +/*JP pline_The("missiles bounce off!"); +*/ + pline("–‚–@‚Ì–î‚Í”½ŽË‚µ‚½I"); } else { dam = d(nd, 6); exercise(A_STR, FALSE); @@ -3553,7 +3937,10 @@ xchar sx, sy; case ZT_FIRE: if (Fire_resistance) { shieldeff(sx, sy); +/*JP You("don't feel hot!"); +*/ + You("”M‚³‚ðŠ´‚¶‚È‚¢I"); ugolemeffects(AD_FIRE, d(nd, 6)); } else { dam = d(nd, 6); @@ -3572,7 +3959,10 @@ xchar sx, sy; case ZT_COLD: if (Cold_resistance) { shieldeff(sx, sy); +/*JP You("don't feel cold."); +*/ + You("—₽‚³‚ðŠ´‚¶‚È‚¢D"); ugolemeffects(AD_COLD, d(nd, 6)); } else { dam = d(nd, 6); @@ -3583,7 +3973,10 @@ xchar sx, sy; case ZT_SLEEP: if (Sleep_resistance) { shieldeff(u.ux, u.uy); +/*JP You("don't feel sleepy."); +*/ + You("–°‚­‚È‚ç‚È‚¢D"); } else { fall_asleep(-d(nd, 25), TRUE); /* sleep ray */ } @@ -3591,7 +3984,10 @@ xchar sx, sy; case ZT_DEATH: if (abstyp == ZT_BREATH(ZT_DEATH)) { if (Disint_resistance) { +/*JP You("are not disintegrated."); +*/ + You("•ª‰ð‚³‚ê‚È‚¢D"); break; } else if (uarms) { /* destroy shield; other possessions are safe */ @@ -3612,11 +4008,17 @@ xchar sx, sy; (void) destroy_arm(uarmu); } else if (nonliving(youmonst.data) || is_demon(youmonst.data)) { shieldeff(sx, sy); +/*JP You("seem unaffected."); +*/ + You("‰e‹¿‚ðŽó‚¯‚È‚¢‚悤‚¾D"); break; } else if (Antimagic) { shieldeff(sx, sy); +/*JP You("aren't affected."); +*/ + You("‰e‹¿‚ðŽó‚¯‚È‚¢D"); break; } killer.format = KILLED_BY_AN; @@ -3628,7 +4030,10 @@ xchar sx, sy; case ZT_LIGHTNING: if (Shock_resistance) { shieldeff(sx, sy); +/*JP You("aren't affected."); +*/ + You("‰e‹¿‚ðŽó‚¯‚È‚¢D"); ugolemeffects(AD_ELEC, d(nd, 6)); } else { dam = d(nd, 6); @@ -3640,14 +4045,23 @@ xchar sx, sy; destroy_item(RING_CLASS, AD_ELEC); break; case ZT_POISON_GAS: +/*JP poisoned("blast", A_DEX, "poisoned blast", 15, FALSE); +*/ + poisoned("‘§", A_DEX, "“Å‚Ì‘§", 15, FALSE); break; case ZT_ACID: if (Acid_resistance) { +/*JP pline_The("acid doesn't hurt."); +*/ + pline("Ž_‚ł͏‚‚©‚È‚©‚Á‚½D"); dam = 0; } else { +/*JP pline_The("acid burns!"); +*/ + pline("Ž_‚ŏĂ¯‚½I"); dam = d(nd, 6); exercise(A_STR, FALSE); } @@ -3720,9 +4134,19 @@ boolean u_caused; cnt += delquan; if (give_feedback) { if (delquan > 1L) +#if 0 /*JP*/ pline("%ld %s burn.", delquan, buf2); +#else + pline("%ld%s‚Ì%s‚ª”R‚¦‚½D", + delquan, + obj->oclass == SCROLL_CLASS ? "–‡" : "û", + buf2); +#endif else +/*JP pline("%s burns.", An(buf1)); +*/ + pline("%s‚Í”R‚¦‚½D", buf1); } } } @@ -3759,9 +4183,15 @@ const char *fltxt; if (canseemon(mon)) { if (!m_amulet) +/*JP pline("%s is disintegrated!", Monnam(mon)); +*/ + pline("%s‚Í‚±‚È‚²‚È‚É‚È‚Á‚½I", Monnam(mon)); else +/*JP hit(fltxt, mon, "!"); +*/ + hit(fltxt, mon, "I"); } /* note: worn amulet of life saving must be preserved in order to operate */ @@ -3832,8 +4262,13 @@ register int dx, dy; if (!u.ustuck) u.uswallow = 0; else +#if 0 /*JP*/ pline("%s rips into %s%s", The(fltxt), mon_nam(u.ustuck), exclam(tmp)); +#else + pline("%s‚Í%s‚ð‚Ђ«‚³‚¢‚½%s", fltxt, mon_nam(u.ustuck), + exclam(tmp)); +#endif /* Using disintegration from the inside only makes a hole... */ if (tmp == MAGIC_COOKIE) u.ustuck->mhp = 0; @@ -3888,8 +4323,13 @@ register int dx, dy; if (cansee(mon->mx, mon->my)) { hit(fltxt, mon, exclam(0)); shieldeff(mon->mx, mon->my); +#if 0 /*JP*/ (void) mon_reflects(mon, "But it reflects from %s %s!"); +#else + (void) mon_reflects(mon, + "‚µ‚©‚µ‚»‚ê‚Í%s‚Ì%s‚Å”½ŽË‚µ‚½I"); +#endif } dx = -dx; dy = -dy; @@ -3901,24 +4341,47 @@ register int dx, dy; && abs(type) == ZT_BREATH(ZT_DEATH)) { if (canseemon(mon)) { hit(fltxt, mon, "."); +/*JP pline("%s disintegrates.", Monnam(mon)); +*/ + pline("%s‚Í‚±‚È‚²‚È‚É‚È‚Á‚½D", Monnam(mon)); +#if 0 /*JP*/ pline("%s body reintegrates before your %s!", s_suffix(Monnam(mon)), (eyecount(youmonst.data) == 1) ? body_part(EYE) : makeplural(body_part(EYE))); +#else + pline("%s‚Ì‘Ì‚Í‚ ‚È‚½‚Ì–Ú‚Ì‘O‚ōČ‹‡‚µ‚½I", + Monnam(mon)); +#endif +/*JP pline("%s resurrects!", Monnam(mon)); +*/ + pline("%s‚Í‘h‚Á‚½I", Monnam(mon)); } mon->mhp = mon->mhpmax; break; /* Out of while loop */ } if (mon->data == &mons[PM_DEATH] && abstype == ZT_DEATH) { if (canseemon(mon)) { +/*JP hit(fltxt, mon, "."); +*/ + hit(fltxt, mon, "D"); +#if 0 /*JP*/ pline("%s absorbs the deadly %s!", Monnam(mon), type == ZT_BREATH(ZT_DEATH) ? "blast" : "ray"); +#else + pline("%s‚ÍŽ€‚Ì%s‚ð‹zŽû‚µ‚½I", Monnam(mon), + type == ZT_BREATH(ZT_DEATH) ? "‘§" + : "Œõü"); +#endif +/*JP pline("It seems even stronger than before."); +*/ + pline("‚³‚ç‚É‹­‚­‚È‚Á‚½‚悤‚È‹C‚³‚¦‚·‚éD"); } break; /* Out of while loop */ } @@ -3937,7 +4400,10 @@ register int dx, dy; } else { /* some armor was destroyed; no damage done */ if (canseemon(mon)) +/*JP pline("%s %s is disintegrated!", +*/ + pline("%s‚Ì%s‚Í‚±‚È‚²‚È‚É‚È‚Á‚½I", s_suffix(Monnam(mon)), distant_name(otmp, xname)); m_useup(mon, otmp); @@ -3957,13 +4423,24 @@ register int dx, dy; goto buzzmonst; } else if (zap_hit((int) u.uac, 0)) { range -= 2; +/*JP pline("%s hits you!", The(fltxt)); +*/ + pline("%s‚Í‚ ‚È‚½‚É–½’†‚µ‚½I", fltxt); if (Reflecting) { if (!Blind) { +#if 0 /*JP*/ (void) ureflects("But %s reflects from your %s!", "it"); +#else + (void) ureflects("‚µ‚©‚µC%s‚Í‚ ‚È‚½‚Ì%s‚É‚æ‚Á‚Ä”½ŽË‚µ‚½D", + "‚»‚ê"); +#endif } else +/*JP pline("For some reason you are not affected."); +*/ + pline("‚È‚º‚©‚ ‚È‚½‚͉e‹¿‚ðŽó‚¯‚È‚©‚Á‚½D"); dx = -dx; dy = -dy; shieldeff(sx, sy); @@ -3971,7 +4448,10 @@ register int dx, dy; zhitu(type, nd, fltxt, sx, sy); } } else if (!Blind) { +/*JP pline("%s whizzes by you!", The(fltxt)); +*/ + pline("%s‚Í‚ ‚È‚½‚Ì‚»‚Î‚ð‚©‚·‚ß‚½I", fltxt); } else if (abstype == ZT_LIGHTNING) { Your("%s tingles.", body_part(ARM)); } @@ -4035,6 +4515,7 @@ register int dx, dy; explode(sx, sy, type, d(12, 6), 0, EXPL_FIERY); get_out_buzz: if (shopdamage) +#if 0 /*JP*/ pay_for_damage(abstype == ZT_FIRE ? "burn away" : abstype == ZT_COLD @@ -4046,6 +4527,18 @@ register int dx, dy; ? "disintegrate" : "destroy", FALSE); +#else + pay_for_damage(abstype == ZT_FIRE + ? "”R‚â‚·" + : abstype == ZT_COLD + ? "•²X‚É‚·‚é" + : abstype == ZT_ACID + ? "‚‚¯‚é" + : abstype == ZT_DEATH + ? "•²Ó‚·‚é" + : "”j‰ó‚·‚é", + FALSE); +#endif bhitpos = save_bhitpos; } @@ -4058,7 +4551,10 @@ const char *msg; struct obj *otmp; if (!msg) +/*JP msg = "The ice crackles and melts."; +*/ + msg = "•X‚̓sƒLƒsƒL–‚èC—n‚¯‚½D"; if (lev->typ == DRAWBRIDGE_UP) { lev->drawbridgemask &= ~DB_ICE; /* revert to DB_MOAT */ } else { /* lev->typ == ICE */ @@ -4082,7 +4578,10 @@ const char *msg; Norep("%s", msg); if ((otmp = sobj_at(BOULDER, x, y)) != 0) { if (cansee(x, y)) +/*JP pline("%s settles...", An(xname(otmp))); +*/ + pline("%s‚Í‚Í‚Ü‚Á‚½DDD", xname(otmp)); do { obj_extract_self(otmp); /* boulder isn't being pushed */ if (!boulder_hits_pool(otmp, x, y, FALSE)) @@ -4171,7 +4670,10 @@ short exploding_wand_typ; if (t && t->ttyp == WEB) { /* a burning web is too flimsy to notice if you can't see it */ if (see_it) +/*JP Norep("A web bursts into flames!"); +*/ + Norep("‚­‚à‚Ì‘ƒ‚͉Š‚É•ï‚܂ꂽI"); (void) delfloortrap(t); if (see_it) newsym(x, y); @@ -4179,11 +4681,17 @@ short exploding_wand_typ; if (is_ice(x, y)) { melt_ice(x, y, (char *) 0); } else if (is_pool(x, y)) { +/*JP const char *msgtxt = "You hear hissing gas."; +*/ + const char *msgtxt = "‚µ‚ã[‚Á‚Æ‚¢‚¤ƒKƒX‚̉¹‚ð•·‚¢‚½D"; if (lev->typ != POOL) { /* MOAT or DRAWBRIDGE_UP */ if (see_it) +/*JP msgtxt = "Some water evaporates."; +*/ + msgtxt = "‚·‚±‚µ…‚ªö”­‚µ‚½D"; } else { rangemod -= 3; lev->typ = ROOM; @@ -4191,14 +4699,20 @@ short exploding_wand_typ; if (t) t->tseen = 1; if (see_it) +/*JP msgtxt = "The water evaporates."; +*/ + msgtxt = "…‚ªö”­‚µ‚½D"; } Norep("%s", msgtxt); if (lev->typ == ROOM) newsym(x, y); } else if (IS_FOUNTAIN(lev->typ)) { if (see_it) +/*JP pline("Steam billows from the fountain."); +*/ + pline("ò‚©‚çö‹C‚ª—§‚¿‚Ì‚Ú‚Á‚½D"); rangemod -= 1; dryup(x, y, type > 0); } @@ -4212,9 +4726,15 @@ short exploding_wand_typ; if (lev->typ == WATER) { /* For now, don't let WATER freeze. */ if (see_it) +/*JP pline_The("water freezes for a moment."); +*/ + pline("…‚͈êu“€‚Á‚½D"); else +/*JP You_hear("a soft crackling."); +*/ + You_hear("ƒsƒLI‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D"); rangemod -= 1000; /* stop */ } else { rangemod -= 3; @@ -4230,15 +4750,27 @@ short exploding_wand_typ; bury_objs(x, y); if (see_it) { if (lava) +/*JP Norep("The lava cools and solidifies."); +*/ + Norep("—nŠâ‚͗₦ŒÅ‚Ü‚Á‚½D"); else if (moat) +/*JP Norep("The %s is bridged with ice!", +*/ + Norep("%s‚É•X‚Ì‹´‚ª‚©‚¯‚ç‚ꂽI", waterbody_name(x, y)); else +/*JP Norep("The water freezes."); +*/ + Norep("…‚Í“€‚Á‚½D"); newsym(x, y); } else if (!lava) +/*JP You_hear("a crackling sound."); +*/ + You_hear("ƒsƒLƒsƒLƒb‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D"); if (x == u.ux && y == u.uy) { if (u.uinwater) { /* not just `if (Underwater)' */ @@ -4250,11 +4782,17 @@ short exploding_wand_typ; } else if (u.utrap && u.utraptype == TT_LAVA) { if (Passes_walls) { u.utrap = 0; +/*JP You("pass through the now-solid rock."); +*/ + You("‚¢‚܌ł­‚È‚Á‚½‚΂©‚è‚̐΂̒†‚ð‚·‚è”²‚¯‚½D"); } else { u.utrap = rn1(50, 20); u.utraptype = TT_INFLOOR; +/*JP You("are firmly stuck in the cooling rock."); +*/ + You("—₦‚½Šâ‚Ì‚È‚©‚É‚µ‚Á‚©‚è‚Æ–„‚Ü‚Á‚½D"); } } } else if ((mon = m_at(x, y)) != 0) { @@ -4320,12 +4858,23 @@ short exploding_wand_typ; /* set up zap text for possible door feedback; for exploding wand, we want "the blast" rather than "your blast" even if hero caused it */ yourzap = (type >= 0 && !exploding_wand_typ); +#if 0 /*JP*/ zapverb = "blast"; /* breath attack or wand explosion */ +#else + zapverb = "ÕŒ‚"; /* breath attack or wand explosion */ +#endif if (!exploding_wand_typ) { if (abs(type) < ZT_SPELL(0)) +#if 0 /*JP*/ zapverb = "bolt"; /* wand zap */ +#else + zapverb = "Œõü"; /* wand zap */ +#endif else if (abs(type) < ZT_BREATH(0)) +/*JP zapverb = "spell"; +*/ + zapverb = "Žô•¶"; } /* secret door gets revealed, converted into regular door */ @@ -4350,26 +4899,50 @@ short exploding_wand_typ; switch (abstype) { case ZT_FIRE: new_doormask = D_NODOOR; +/*JP see_txt = "The door is consumed in flames!"; +*/ + see_txt = "”à‚͉Š‚ŏĂ«‚‚­‚³‚ꂽI"; +/*JP sense_txt = "smell smoke."; +*/ + sense_txt = "‰Œ‚Ì“õ‚¢‚ª‚µ‚½D"; break; case ZT_COLD: new_doormask = D_NODOOR; +/*JP see_txt = "The door freezes and shatters!"; +*/ + see_txt = "”à‚Í“€‚èC‚±‚È‚²‚È‚É‚È‚Á‚½I"; +/*JP sense_txt = "feel cold."; +*/ + sense_txt = "—â‹C‚ðŠ´‚¶‚½D"; break; case ZT_DEATH: /* death spells/wands don't disintegrate */ if (abs(type) != ZT_BREATH(ZT_DEATH)) goto def_case; new_doormask = D_NODOOR; +/*JP see_txt = "The door disintegrates!"; +*/ + see_txt = "”à‚Í•²Ó‚³‚ꂽI"; +/*JP hear_txt = "crashing wood."; +*/ + hear_txt = "–؂̉ó‚ê‚鉹‚ð•·‚¢‚½D"; break; case ZT_LIGHTNING: new_doormask = D_BROKEN; +/*JP see_txt = "The door splinters!"; +*/ + see_txt = "”à‚Í‚¸‚½‚¸‚½‚É‚È‚Á‚½I"; +/*JP hear_txt = "crackling."; +*/ + hear_txt = "ƒsƒLƒsƒL‚Æ‚¢‚¤‰¹‚ð•·‚¢‚½D"; break; default: def_case: @@ -4387,12 +4960,23 @@ short exploding_wand_typ; inaccurate for an exploding wand since other adjacent locations still get hit */ if (exploding_wand_typ) +/*JP pline_The("door remains intact."); +*/ + pline_The("”à‚Í–³‚¾D"); else +#if 0 /*JP*/ pline_The("door absorbs %s %s!", yourzap ? "your" : "the", zapverb); +#else + pline_The("”à‚Í%s%s‚ð‹zŽû‚µ‚½I", yourzap ? "‚ ‚È‚½‚ª•ú‚Á‚½" : "", + zapverb); +#endif } else +/*JP You_feel("vibrations."); +*/ + You("U“®‚ðŠ´‚¶‚½D"); break; } if (new_doormask >= 0) { /* door gets broken */ @@ -4409,7 +4993,11 @@ short exploding_wand_typ; pline1(see_txt); newsym(x, y); } else if (sense_txt) { +#if 0 /*JP*//*u‚ ‚È‚½‚́v‚ª•s“KØ‚È•¶‚à‚ ‚é*/ You1(sense_txt); +#else + pline1(sense_txt); +#endif } else if (hear_txt) You_hear1(hear_txt); if (picking_at(x, y)) { @@ -4422,7 +5010,10 @@ short exploding_wand_typ; if (OBJ_AT(x, y) && abstype == ZT_FIRE) if (burn_floor_objects(x, y, FALSE, type > 0) && couldsee(x, y)) { newsym(x, y); +/*JP You("%s of smoke.", !Blind ? "see a puff" : "smell a whiff"); +*/ + pline("%sD", !Blind ? "‚Û‚í‚Á‚ƉŒ‚ª‚ ‚ª‚Á‚½" : "‰Œ‚̃vƒ“‚Æ‚¢‚¤“õ‚¢‚ª‚µ‚½"); } if ((mon = m_at(x, y)) != 0) { /* Cannot use wakeup() which also angers the monster */ @@ -4499,7 +5090,10 @@ register struct obj *obj; place_object(item, obj->ox, obj->oy); } if (by_you && Role_if(PM_ARCHEOLOGIST) && (obj->spe & STATUE_HISTORIC)) { +/*JP You_feel("guilty about damaging such a historic statue."); +*/ + You_feel("‚±‚̂悤‚È—ðŽj“I‚È’¤‘œ‚ɏ‚ð‚‚¯‚é‚͍̂ߐ[‚¢‚±‚Æ‚¾‚ÆŽv‚Á‚½D"); adjalign(-1); } obj->spe = 0; @@ -4521,13 +5115,34 @@ register struct obj *obj; */ const char *const destroy_strings[][3] = { /* also used in trap.c */ +/*JP { "freezes and shatters", "freeze and shatter", "shattered potion" }, +*/ + { "“€Œ‹‚µ‚čӂ¯‚½", "“€Œ‹‚µ‚čӂ¯‚½", "Ó‚¯‚½–ò•r‚Å" }, +/*JP { "boils and explodes", "boil and explode", "boiling potion" }, +*/ + { "•¦“«‚µ‚Ä”š”­‚µ‚½", "•¦“«‚µ‚Ä”š”­‚µ‚½", "•¦“«‚µ‚½–ò‚Å" }, +/*JP { "ignites and explodes", "ignite and explode", "exploding potion" }, +*/ + { "‰Î‚ª‚‚¢‚Ä”š”­‚µ‚½", "‰Î‚ª‚‚¢‚Ä”š”­‚µ‚½", "”š”­‚µ‚½–ò‚Å" }, +/*JP { "catches fire and burns", "catch fire and burn", "burning scroll" }, +*/ + { "‰Î‚ª‚‚¢‚Ä”R‚¦‚½", "‰Î‚ª‚‚¢‚Ä”R‚¦‚½", "”R‚¦‚½Šª•¨‚Å" }, +/*JP { "catches fire and burns", "", "burning book" }, +*/ + { "‰Î‚ª‚‚¢‚Ä”R‚¦‚½", "‰Î‚ª‚‚¢‚Ä”R‚¦‚½", "”R‚¦‚½–‚–@‘‚Å" }, +/*JP { "turns to dust and vanishes", "", "" }, +*/ + { "o‚É‚È‚Á‚ďÁ‚¦‚½", "o‚É‚È‚Á‚ďÁ‚¦‚½", "" }, +/*JP { "breaks apart and explodes", "", "exploding wand" }, +*/ + { "‚΂ç‚΂ç‚ɉó‚ê‚Ä”š”­‚µ‚½", "‚΂ç‚΂ç‚ɉó‚ê‚Ä”š”­‚µ‚½", "ñ‚Ì”š”­‚Å" }, }; void @@ -4573,8 +5188,14 @@ register int osym, dmgtyp; if (obj->otyp == SPE_BOOK_OF_THE_DEAD) { skip++; if (!Blind) +#if 0 /*JP:T*/ pline("%s glows a strange %s, but remains intact.", The(xname(obj)), hcolor("dark red")); +#else + pline("%s‚ÍŠï–­‚É%s‹P‚¢‚½‚ª‰½‚à•Ï‰»‚µ‚È‚©‚Á‚½D", + xname(obj), jconj_adj(hcolor("ˆÃŠŒF‚Ì"))); +#endif + } quan = obj->quan; switch (osym) { @@ -4644,11 +5265,22 @@ register int osym, dmgtyp; if (!cnt) continue; +#if 0 /*JP*/ mult = (cnt == quan) ? (quan > 1) ? "All of your " : "Your" : (cnt == 1L) ? "One of your" : "Some of your"; +#else + mult = (cnt == quan) + ? "" + : (cnt == 1L) ? "‚̂ЂƂÂ" : "‚Ì‚¢‚­‚‚©"; +#endif +#if 0 /*JP*/ pline("%s %s %s!", mult, xname(obj), destroy_strings[dindx][(cnt > 1L)]); +#else + pline("‚ ‚È‚½‚Ì%s%s‚Í%sI", xname(obj), mult, + destroy_strings[dindx][(cnt > 1L)]); +#endif if (osym == POTION_CLASS && dmgtyp != AD_COLD) { if (!breathless(youmonst.data) || haseyes(youmonst.data)) potionbreathe(obj); @@ -4665,7 +5297,10 @@ register int osym, dmgtyp; useup(obj); if (dmg) { if (xresist) +/*JP You("aren't hurt!"); +*/ + You("‚‚©‚È‚¢I"); else { const char *how = destroy_strings[dindx][2]; boolean one = (cnt == 1L); @@ -4722,8 +5357,13 @@ int osym, dmgtyp; if (obj->otyp == SPE_BOOK_OF_THE_DEAD) { skip++; if (vis) +#if 0 /*JP*/ pline("%s glows a strange %s, but remains intact.", The(distant_name(obj, xname)), hcolor("dark red")); +#else + pline("%s‚ÍŠï–­‚É%s‹P‚¢‚½‚ª‰½‚à•Ï‰»‚µ‚È‚©‚Á‚½D", + The(distant_name(obj, xname)), jconj_adj(hcolor("ˆÃŠŒF‚Ì"))); +#endif } quan = obj->quan; switch (osym) { @@ -4787,11 +5427,19 @@ int osym, dmgtyp; if (!cnt) continue; if (vis) +#if 0 /*JP*/ pline("%s%s %s!", (cnt == obj->quan) ? "" : (cnt > 1L) ? "Some of " : "One of ", (cnt == obj->quan) ? Yname2(obj) : yname(obj), destroy_strings[dindx][(cnt > 1L)]); +#else + pline("%s%s‚Í%sI", + (cnt == obj->quan) ? Yname2(obj) : yname(obj), + (cnt == obj->quan) ? "" : (cnt > 1L) ? "‚Ì‚¢‚­‚‚©" + : "‚̂ЂƂÂ", + destroy_strings[dindx][(cnt > 1L)]); +#endif for (i = 0; i < cnt; i++) m_useup(mtmp, obj); } @@ -4843,7 +5491,10 @@ int damage, tell; if (resisted) { if (tell) { shieldeff(mtmp->mx, mtmp->my); +/*JP pline("%s resists!", Monnam(mtmp)); +*/ + pline("%s‚Í–h‚¢‚¾I", Monnam(mtmp)); } damage = (damage + 1) / 2; } @@ -4930,12 +5581,24 @@ makewish() promptbuf[0] = '\0'; nothing = zeroobj; /* lint suppression; only its address matters */ if (flags.verbose) +/*JP You("may wish for an object."); +*/ + You("–]‚Ý‚Ì‚à‚Ì‚ðŽè‚É“ü‚ê‚ç‚ê‚éD"); retry: +/*JP Strcpy(promptbuf, "For what do you wish"); +*/ + Strcpy(promptbuf, "‰½‚ð‚¨–]‚Ý"); if (iflags.cmdassist && tries > 0) +/*JP Strcat(promptbuf, " (enter 'help' for assistance)"); +*/ + Strcat(promptbuf, " (•‚¯‚ª•K—v‚È‚ç 'help' ‚Æ“ü—Í)"); +/*JP Strcat(promptbuf, "?"); +*/ + Strcat(promptbuf, "H"); getlin(promptbuf, buf); (void) mungspaces(buf); if (buf[0] == '\033') { @@ -4952,7 +5615,10 @@ retry: */ otmp = readobjnam(buf, ¬hing); if (!otmp) { +/*JP pline("Nothing fitting that description exists in the game."); +*/ + pline("‚¤[‚ñD‚»‚ñ‚È‚à‚Ì‚Í‘¶Ý‚µ‚È‚¢‚悤‚¾D"); if (++tries < MAXWISHTRY) goto retry; pline1(thats_enough_tries); @@ -4970,7 +5636,11 @@ retry: if (otmp != &zeroobj) { const char +/*JP *verb = ((Is_airlevel(&u.uz) || u.uinwater) ? "slip" : "drop"), +*/ + *verb = ((Is_airlevel(&u.uz) || u.uinwater) ? "ŠŠ‚è—Ž‚¿‚½" : "—Ž‚¿‚½"), +#if 0 /*JP*/ *oops_msg = (u.uswallow ? "Oops! %s out of your reach!" : (Is_airlevel(&u.uz) || Is_waterlevel(&u.uz) @@ -4978,6 +5648,15 @@ retry: || levl[u.ux][u.uy].typ >= ICE) ? "Oops! %s away from you!" : "Oops! %s to the floor!"); +#else + *oops_msg = (u.uswallow + ? "‚¨‚Á‚ƁC“Í‚©‚È‚¢‚Æ‚±‚ë‚É%sI" + : (Is_airlevel(&u.uz) || Is_waterlevel(&u.uz) + || levl[u.ux][u.uy].typ < IRONBARS + || levl[u.ux][u.uy].typ >= ICE) + ? "‚¨‚Á‚ƁCŽè‚©‚ç%sI" + : "‚¨‚Á‚ƁC°‚É%sI"); +#endif /* The(aobjnam()) is safe since otmp is unidentified -dlc */ (void) hold_another_object(otmp, oops_msg, -- 2.11.0