/* 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);
{
/* "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
+ "\94à\82Ì\8c®\82ð\82Í\82¸\82·",
+ "\95ó\94 \82Ì\8c®\82ð\82Í\82¸\82·",
+ "\94 \82Ì\8c®\82ð\82Í\82¸\82·",
+ "\8c®\82ð\82Í\82¸\82·"
+#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 /* \89p\8cê\82Í un \82ð\8eæ\82ê\82Î\8bt\82Ì\88Ó\96¡\82É\82È\82é\82ª\81C\93ú\96{\8cê\82Í\82»\82¤\82Í\82¢\82©\82È\82¢\82Ì\82Å\83\8a\83e\83\89\83\8b\82ð\8f\91\82 */
+ return "\94à\82É\8c®\82ð\82©\82¯\82é";
+#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 ? "\95ó\94 \82É\8c®\82ð\82©\82¯\82é" : "\94 \82É\8c®\82ð\82©\82¯\82é";
+#endif
/* otherwise we're trying to unlock it */
else if (xlock.picktyp == LOCK_PICK)
return actions[3]; /* "picking the lock" */
}
switch (xlock.door->doormask) {
case D_NODOOR:
+/*JP
pline("This doorway has no door.");
+*/
+ pline("\8fo\93ü\8cû\82É\82Í\94à\82ª\82È\82¢\81D");
return ((xlock.usedtime = 0));
case D_ISOPEN:
+/*JP
You("cannot lock an open door.");
+*/
+ pline("\8aJ\82¢\82Ä\82é\94à\82É\8c®\82ð\82©\82¯\82ç\82ê\82È\82¢\81D");
return ((xlock.usedtime = 0));
case D_BROKEN:
+/*JP
pline("This door is broken.");
+*/
+ pline("\94à\82Í\89ó\82ê\82Ä\82¢\82é\81D");
return ((xlock.usedtime = 0));
}
}
if (xlock.usedtime++ >= 50 || nohands(youmonst.data)) {
+/*JP
You("give up your attempt at %s.", lock_action());
+*/
+ pline("%s\82Ì\82ð\82 \82«\82ç\82ß\82½\81D", lock_action());
exercise(A_DEX, TRUE); /* even if you don't succeed */
return ((xlock.usedtime = 0));
}
if (rn2(100) >= xlock.chance)
return 1; /* still busy */
+/*JP
You("succeed in %s.", lock_action());
+*/
+ You("%s\82Ì\82É\90¬\8c÷\82µ\82½\81D", lock_action());
if (xlock.door) {
if (xlock.door->doormask & D_TRAPPED) {
+/*JP
b_trapped("door", FINGER);
+*/
+ b_trapped("\94à", 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))
peaceful_shk = costly && (boolean) shkp->mpeaceful;
long loss = 0L;
+/*JP
pline("In fact, you've totally destroyed %s.", the(xname(box)));
+*/
+ pline("\8eÀ\8dÛ\82Ì\82Æ\82±\82ë\81C%s\82ð\8a®\91S\82É\89ó\82µ\82Ä\82µ\82Ü\82Á\82½\81D", xname(xlock.box));
/* Put the contents on ground at the hero's feet. */
while ((otmp = box->cobj) != 0) {
obj_extract_self(otmp);
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("\8aí\95¨\94j\91¹\82Å%ld%s\82Ì\8eØ\82è\82ð\82Â\82\82Á\82½\81D", loss, currency(loss));
delobj(box);
}
}
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("\8c®\82ð\82±\82¶\8aJ\82¯\82é\82Ì\82ð\82 \82«\82ç\82ß\82½\81D");
if (xlock.usedtime >= 50) /* you made the effort */
exercise((xlock.picktyp) ? A_DEX : A_STR, TRUE);
return ((xlock.usedtime = 0));
/* 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\82Í\89ó\82ê\82Ä\82µ\82Ü\82Á\82½\81I",xname(uwep));
+#endif
useup(uwep);
+/*JP
You("give up your attempt to force the lock.");
+*/
+ pline("\8c®\82ð\82±\82¶\8aJ\82¯\82é\82Ì\82ð\82 \82«\82ç\82ß\82½\81D");
exercise(A_DEX, TRUE);
return ((xlock.usedtime = 0));
}
if (rn2(100) >= xlock.chance)
return 1; /* still busy */
+/*JP
You("succeed in forcing the lock.");
+*/
+ pline("\8c®\82ð\82±\82¶\8aJ\82¯\82½\81D");
breakchestlock(xlock.box, (boolean) (!xlock.picktyp && !rn2(3)));
exercise((xlock.picktyp) ? A_DEX : A_STR, TRUE);
/* 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[] = "\82´\82ñ\82Ë\82ñ\82È\82ª\82ç\81C\82 \82È\82½\82Í%s%s";
if (nohands(youmonst.data)) {
+/*JP
const char *what = (picktyp == LOCK_PICK) ? "pick" : "key";
+*/
+ const char *what = (picktyp == LOCK_PICK) ? "\8c®\8aJ\82¯\8aí\8bï" : "\8c®";
if (picktyp == CREDIT_CARD)
+/*JP
what = "card";
+*/
+ what = "\83J\81[\83h";
+/*JP
pline(no_longer, "hold the", what);
+*/
+ pline(no_longer, what, "\82ð\82Â\82©\82ß\82È\82¢");
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, "\8c®\82É", "\93Í\82©\82È\82¢");
reset_pick();
return PICKLOCK_LEARNED_SOMETHING;
} else {
const char *action = lock_action();
+/*JP
You("resume your attempt at %s.", action);
+*/
+ pline("%s\82Ì\82ð\8dÄ\8aJ\82µ\82½\81D", 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\82ð\82Â\82©\82Þ\82±\82Æ\82ª\82Å\82«\82È\82¢\81I\8eè\82ª\82È\82¢\82ñ\82¾\82à\82Ì\81I", xname(pick));
return PICKLOCK_DID_NOTHING;
} else if (u.uswallow) {
You_cant("%sunlock %s.", (picktyp == CREDIT_CARD) ? "" : "lock or ",
}
ch = 0; /* lint suppression */
+/*JP
if (!get_adjacent_loc((char *) 0, "Invalid location!", u.ux, u.uy, &cc))
+*/
+ if (!get_adjacent_loc((char *) 0, "\88Ê\92u\82ª\82¨\82©\82µ\82¢\81I", u.ux, u.uy, &cc))
return PICKLOCK_DID_NOTHING;
if (cc.x == u.ux && cc.y == u.uy) { /* pick lock on a container */
int count;
if (u.dz < 0) {
+#if 0 /*JP*/
There("isn't any sort of lock up %s.",
Levitation ? "here" : "there");
+#else
+ pline("%s\82É\82Í\8c®\82ð\82©\82¯\82é\82æ\82¤\82È\95¨\82Í\82È\82¢\81D",
+ Levitation ? "\82±\82±" : "\89º\95û");
+#endif
return PICKLOCK_LEARNED_SOMETHING;
} else if (is_lava(u.ux, u.uy)) {
+/*JP
pline("Doing that would probably melt %s.", yname(pick));
+*/
+ pline("\82»\82ñ\82È\82±\82Æ\82ð\82µ\82½\82ç%s\82ª\97n\82¯\82Ä\82µ\82Ü\82¤\81D", yname(pick));
return PICKLOCK_LEARNED_SOMETHING;
} else if (is_pool(u.ux, u.uy) && !Underwater) {
+/*JP
pline_The("water has no lock.");
+*/
+ pline("\90\85\82É\8fù\91O\82Í\82È\82¢\81D");
return PICKLOCK_LEARNED_SOMETHING;
}
if (Is_box(otmp)) {
++count;
if (!can_reach_floor(TRUE)) {
+/*JP
You_cant("reach %s from up here.", the(xname(otmp)));
+*/
+ You("\82±\82±\82©\82ç%s\82É\93Í\82©\82È\82¢\81D", the(xname(otmp)));
return PICKLOCK_LEARNED_SOMETHING;
}
it = 0;
if (otmp->obroken)
+/*JP
verb = "fix";
+*/
+ verb = "\8fC\95\9c\82·\82é";
else if (!otmp->olocked)
+/*JP
verb = "lock", it = 1;
+*/
+ verb = "\8c®\82ð\82©\82¯\82é", it = 1;
else if (picktyp != LOCK_PICK)
+/*JP
verb = "unlock", it = 1;
+*/
+ verb = "\8c®\82ð\82Í\82¸\82·", it = 1;
else
+/*JP
verb = "pick";
+*/
+ verb = "\82±\82¶\82 \82¯\82é";
/* "There is <a box> here; <verb> <it|its lock>?" */
+/*JP
Sprintf(qsfx, " here; %s %s?", verb, it ? "it" : "its lock");
+*/
+ Sprintf(qsfx, "\82ª\82 \82é\81D%s\81H", verb);
+#if 0 /*JP*/
(void) safe_qbuf(qbuf, "There is ", qsfx, otmp, doname,
ansimpleoname, "a box");
+#else
+ (void) safe_qbuf(qbuf, "\82±\82±\82É\82Í", qsfx, otmp, doname,
+ ansimpleoname, "\94 ");
+#endif
otmp->lknown = 1;
c = ynq(qbuf);
continue;
if (otmp->obroken) {
+/*JP
You_cant("fix its broken lock with %s.", doname(pick));
+*/
+ You("\89ó\82ê\82½\8c®\82ð%s\82Å\8fC\95\9c\82Å\82«\82È\82¢\81D", 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\82¶\82á\82»\82ñ\82È\82±\82Æ\82Í\82Å\82«\82È\82¢\81D",
+ simple_typename(picktyp));
+#endif
return PICKLOCK_LEARNED_SOMETHING;
}
switch (picktyp) {
}
if (c != 'y') {
if (!count)
+/*JP
There("doesn't seem to be any sort of lock here.");
+*/
+ pline("\82±\82±\82É\82Í\8c®\82ð\82©\82¯\82é\82æ\82¤\82È\95¨\82Í\82È\82¢\82æ\82¤\82¾\81D");
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("\97\8e\82µ\8c\8a\82Ì\92\86\82©\82ç\82Å\82Í\93Í\82©\82È\82¢\81D");
return PICKLOCK_LEARNED_SOMETHING;
}
&& 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("\82¢\82Â\82à\83j\83R\83j\83R\8c»\8bà\95¥\82¢\81D");
else
+#if 0 /*JP*/
pline("I don't think %s would appreciate that.",
mon_nam(mtmp));
+#else
+ pline("%s\82ª\82»\82Ì\89¿\92l\82ð\94F\82ß\82é\82Æ\82Í\8ev\82¦\82È\82¢\81D", mon_nam(mtmp));
+#endif
return PICKLOCK_LEARNED_SOMETHING;
} else if (mtmp && is_door_mappear(mtmp)) {
/* "The door actually was a <mimic>!" */
}
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("\92µ\82Ë\8b´\82É\82Í\8c®\82ª\82È\82¢%s\81D", Blind ? "\82æ\82¤\82¾" : "\82æ\82¤\82É\8c©\82¦\82é");
else
+/*JP
You("%s no door there.", Blind ? "feel" : "see");
+*/
+ pline("\82±\82±\82É\82Í\94à\82ª\82È\82¢%s\81D", Blind ? "\82æ\82¤\82¾" : "\82æ\82¤\82É\8c©\82¦\82é");
return PICKLOCK_LEARNED_SOMETHING;
}
switch (door->doormask) {
case D_NODOOR:
+/*JP
pline("This doorway has no door.");
+*/
+ pline("\82±\82Ì\8fo\93ü\8cû\82É\82Í\94à\82ª\82È\82¢\81D");
return PICKLOCK_LEARNED_SOMETHING;
case D_ISOPEN:
+/*JP
You("cannot lock an open door.");
+*/
+ pline("\8aJ\82¢\82Ä\82é\94à\82É\82Í\8c®\82ð\82©\82¯\82ç\82ê\82È\82¢\81D");
return PICKLOCK_LEARNED_SOMETHING;
case D_BROKEN:
+/*JP
pline("This door is broken.");
+*/
+ pline("\82±\82Ì\94à\82Í\89ó\82ê\82Ä\82¢\82é\81D");
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("\83N\83\8c\83W\83b\83g\83J\81[\83h\82Å\94à\82É\8c®\82ð\82©\82¯\82é\82±\82Æ\82Í\82Å\82«\82È\82¢\81D");
return PICKLOCK_LEARNED_SOMETHING;
}
+#if 0 /*JP*/
Sprintf(qbuf, "%s it?",
(door->doormask & D_LOCKED) ? "Unlock" : "Lock");
+#else
+ Sprintf(qbuf, "%s\82Ü\82·\82©\81H",
+ (door->doormask & D_LOCKED) ? "\82Í\82¸\82µ" : "\82©\82¯" );
+#endif
c = yn(qbuf);
if (c == 'n')
|| 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\95\90\8aí\82È\82µ\82Å\8c®\82ð\82±\82¶\8aJ\82¯\82é\82±\82Æ\82Í\82Å\82«\82È\82¢\81D",
+ !uwep ? "\91\95\94õ\82µ\82Ä\82¢\82é"
+ : (uwep->oclass != WEAPON_CLASS && !is_weptool(uwep))
+ ? "\93K\90Ø\82È"
+ : "");
+#endif
return 0;
}
if (!can_reach_floor(TRUE)) {
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("\8c®\82ð\82±\82¶\82 \82¯\82é\82Ì\82ð\8dÄ\8aJ\82µ\82½\81D");
+/*JP
set_occupation(forcelock, "forcing the lock", 0);
+*/
+ set_occupation(forcelock, "\8c®\82ð\82±\82¶\82 \82¯\82é", 0);
return 1;
}
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("\82±\82±\82É\82Í%s\82ª\82 \82é\81C\82µ\82©\82µ\82»\82Ì\8c®\82Í\82à\82¤%s\81D", doname(otmp),
+ otmp->obroken ? "\89ó\82ê\82Ä\82¢\82é" : "\82Í\82¸\82³\82ê\82Ä\82¢\82é");
+#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, "\82±\82±\82É\82Í", "\82ª\82 \82é\81C\8c®\82ð\82±\82¶\8aJ\82¯\82Ü\82·\82©\81H",
+ otmp, doname, ansimpleoname, "\94 ");
+#endif
otmp->lknown = 1;
c = ynq(qbuf);
continue;
if (picktyp)
+/*JP
You("force %s into a crack and pry.", yname(uwep));
+*/
+ You("%s\82ð\82·\82«\8aÔ\82É\8d·\82µ\82±\82ñ\82Å\82±\82¶\82 \82¯\82æ\82¤\82Æ\82µ\82½\81D",xname(uwep));
else
+/*JP
You("start bashing it with %s.", yname(uwep));
+*/
+ pline("%s\82Å\89£\82è\82Â\82¯\82½\81D", xname(uwep));
xlock.box = otmp;
xlock.chance = objects[uwep->otyp].oc_wldam * 2;
xlock.picktyp = picktyp;
}
if (xlock.box)
+/*JP
set_occupation(forcelock, "forcing the lock", 0);
+*/
+ set_occupation(forcelock, "\8c®\82ð\82±\82¶\82 \82¯\82é", 0);
else
+/*JP
You("decide not to force the issue.");
+*/
+ pline("\82»\82ê\82Í\96³\88Ó\96¡\82È\8ds\88×\82¾\81D");
return 1;
}
int res = 0;
if (nohands(youmonst.data)) {
+/*JP
You_cant("open anything -- you have no hands!");
+*/
+ You("\89½\82à\8aJ\82¯\82é\82±\82Æ\82ª\82Å\82«\82È\82¢\81I\8eè\82ª\82È\82¢\82ñ\82¾\82à\82Ì\81I");
return 0;
}
if (u.utrap && u.utraptype == TT_PIT) {
+/*JP
You_cant("reach over the edge of the pit.");
+*/
+ pline("\97\8e\82µ\8c\8a\82Ì\92\86\82©\82ç\93Í\82©\82È\82¢\81D");
return 0;
}
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("\92µ\82Ë\8b´\82ð\8d~\82ë\82·\96¾\94\92\82È\95û\96@\82Í\82È\82¢\81D");
else if (portcullis || door->typ == DRAWBRIDGE_DOWN)
+/*JP
pline_The("drawbridge is already open.");
+*/
+ pline_The("\92µ\82Ë\8b´\82Í\82à\82¤\8aJ\82¢\82Ä\82¢\82é\81D");
else
+/*JP
You("%s no door there.", Blind ? "feel" : "see");
+*/
+ pline("\82»\82±\82É\82Í\94à\82Í\82È\82¢\82æ\82¤%s\81D", Blind ? "\82¾" : "\82É\8c©\82¦\82é");
return res;
}
switch (door->doormask) {
case D_BROKEN:
+/*JP
mesg = " is broken";
+*/
+ mesg = "\94à\82Í\89ó\82ê\82Ä\82¢\82é";
break;
case D_NODOOR:
+/*JP
mesg = "way has no door";
+*/
+ mesg = "\8fo\93ü\8cû\82É\82Í\94à\82ª\82È\82¢";
break;
case D_ISOPEN:
+/*JP
mesg = " is already open";
+*/
+ mesg = "\94à\82Í\82à\82¤\8aJ\82¢\82Ä\82¢\82é";
break;
default:
+/*JP
mesg = " is locked";
+*/
+ mesg = "\94à\82É\82Í\8c®\82ª\8a|\82©\82Á\82Ä\82¢\82é";
break;
}
+/*JP
pline("This door%s.", mesg);
+*/
+ pline("%s\81D", mesg);
return res;
}
if (verysmall(youmonst.data)) {
+/*JP
pline("You're too small to pull the door open.");
+*/
+ You("\94à\82ð\89\9f\82·\82É\82Í\8f¬\82³\82·\82¬\82é\81D");
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("\94à\82Í\8aJ\82¢\82½\81D");
if (door->doormask & D_TRAPPED) {
+/*JP
b_trapped("door", FINGER);
+*/
+ b_trapped("\94à", FINGER);
door->doormask = D_NODOOR;
if (*in_rooms(cc.x, cc.y, SHOPBASE))
add_damage(cc.x, cc.y, 0L);
unblock_point(cc.x, cc.y); /* vision: new see through there */
} else {
exercise(A_STR, TRUE);
+/*JP
pline_The("door resists!");
+*/
+ pline("\82È\82©\82È\82©\8aJ\82©\82È\82¢\81I");
}
return 1;
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\82ª\97§\82¿\82Ó\82³\82ª\82Á\82Ä\82¢\82é\81I",
+ !canspotmon(mtmp) ? "\89½\82©" : Monnam(mtmp),
+ !canspotmon(mtmp) ? "" : "\82Ì\90K\94ö");
+#endif
} else {
+#if 0 /*JP*/
pline("%s blocks the way!",
!canspotmon(mtmp) ? "Some creature" : Monnam(mtmp));
+#else
+ pline("%s\82ª\97§\82¿\82Ó\82³\82ª\82Á\82Ä\82¢\82é\81I",
+ !canspotmon(mtmp) ? "\89½\8eÒ\82©" : Monnam(mtmp));
+#endif
}
}
if (!canspotmon(mtmp))
if (OBJ_AT(x, y)) {
objhere:
if (!quietly)
+/*JP
pline("%s's in the way.", Something);
+*/
+ pline("\89½\82©\82ª\8fo\93ü\8cû\82É\82 \82é\81D");
return TRUE;
}
return FALSE;
int res = 0;
if (nohands(youmonst.data)) {
+/*JP
You_cant("close anything -- you have no hands!");
+*/
+ You("\95Â\82ß\82é\82±\82Æ\82ª\82Å\82«\82È\82¢\81I\8eè\82ª\82È\82¢\82ñ\82¾\82à\82Ì\81I");
return 0;
}
if (u.utrap && u.utraptype == TT_PIT) {
+/*JP
You_cant("reach over the edge of the pit.");
+*/
+ pline("\97\8e\82µ\8c\8a\82Ì\92\86\82©\82ç\93Í\82©\82È\82¢\81D");
return 0;
}
x = u.ux + u.dx;
y = u.uy + u.dy;
if ((x == u.ux) && (y == u.uy)) {
+/*JP
You("are in the way!");
+*/
+ pline("\82 \82È\82½\82ª\8fo\93ü\8cû\82É\82¢\82é\82Ì\82Å\95Â\82Ü\82ç\82È\82¢\81I");
return 1;
}
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("\92µ\82Ë\8b´\82Í\82à\82¤\95Â\82¶\82Ä\82¢\82é\81D");
else if (portcullis || door->typ == DRAWBRIDGE_DOWN)
+/*JP
There("is no obvious way to close the drawbridge.");
+*/
+ pline("\92µ\82Ë\8b´\82ð\95Â\82ß\82é\96¾\94\92\82È\95û\96@\82Í\82È\82¢\81D");
else {
nodoor:
+/*JP
You("%s no door there.", Blind ? "feel" : "see");
+*/
+ pline("\82»\82±\82É\94à\82Í\82È\82¢\82æ\82¤%s\81D", Blind ? "\82¾" : "\82É\8c©\82¦\82é");
}
return res;
}
if (door->doormask == D_NODOOR) {
+/*JP
pline("This doorway has no door.");
+*/
+ pline("\8fo\93ü\8cû\82É\82Í\94à\82ª\82È\82¢\81D");
return res;
} else if (obstructed(x, y, FALSE)) {
return res;
} else if (door->doormask == D_BROKEN) {
+/*JP
pline("This door is broken.");
+*/
+ pline("\94à\82Í\89ó\82ê\82Ä\82¢\82é\81D");
return res;
} else if (door->doormask & (D_CLOSED | D_LOCKED)) {
+/*JP
pline("This door is already closed.");
+*/
+ pline("\94à\82Í\82à\82¤\95Â\82¶\82Ä\82¢\82é\81D");
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("\8f¬\82³\82·\82¬\82Ä\94à\82ð\95Â\82ß\82ç\82ê\82È\82¢\81D");
return res;
}
if (u.usteed
|| rn2(25) < (ACURRSTR + ACURR(A_DEX) + ACURR(A_CON)) / 3) {
+/*JP
pline_The("door closes.");
+*/
+ pline("\94à\82Í\95Â\82¶\82½\81D");
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("\82È\82©\82È\82©\95Â\82Ü\82ç\82È\82¢\81I");
}
}
case WAN_LOCKING:
case SPE_WIZARD_LOCK:
if (!obj->olocked) { /* lock it; fix if broken */
+/*JP
pline("Klunk!");
+*/
+ pline("\83J\83`\81I");
obj->olocked = 1;
obj->obroken = 0;
if (Role_if(PM_WIZARD))
case WAN_OPENING:
case SPE_KNOCK:
if (obj->olocked) { /* unlock; couldn't be broken */
+/*JP
pline("Klick!");
+*/
+ pline("\83R\83\93\83R\83\93\81I");
obj->olocked = 0;
res = 1;
if (Role_if(PM_WIZARD))
boolean res = TRUE;
int loudness = 0;
const char *msg = (const char *) 0;
+/*JP
const char *dustcloud = "A cloud of dust";
+*/
+ const char *dustcloud = "\82Ù\82±\82è";
+/*JP
const char *quickly_dissipates = "quickly dissipates";
+*/
+ const char *quickly_dissipates = "\82 \82Á\82Æ\8c¾\82¤\82Ü\82É\94ò\82Ñ\8eU\82Á\82½";
boolean mysterywand = (otmp->oclass == WAND_CLASS && !otmp->dknown);
if (door->typ == SDOOR) {
door->doormask = D_CLOSED | (door->doormask & D_TRAPPED);
newsym(x, y);
if (cansee(x, y))
+/*JP
pline("A door appears in the wall!");
+*/
+ pline("\95Ç\82©\82ç\94à\82ª\8c»\82ê\82½\81I");
if (otmp->otyp == WAN_OPENING || otmp->otyp == SPE_KNOCK)
return TRUE;
break; /* striking: continue door handling below */
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("\8cÃ\82\82³\82¢\81C\8c´\8en\93I\82È\8fo\93ü\8cû\82É%s\82ª\97§\82¿\82±\82ß\82½\81D",
dustcloud);
else
+/*JP
You_hear("a swoosh.");
+*/
+ You_hear("\83V\83\85\81[\83b\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D");
if (obstructed(x, y, mysterywand)) {
if (vis)
+/*JP
pline_The("cloud %s.", quickly_dissipates);
+*/
+ pline("\82Ù\82±\82è\82Í%s\81D",quickly_dissipates);
return FALSE;
}
block_point(x, y);
door->typ = SDOOR;
if (vis)
+/*JP
pline_The("doorway vanishes!");
+*/
+ pline("\8fo\93ü\8cû\82Í\8fÁ\82¦\82½\81I");
newsym(x, y);
return TRUE;
}
/* & 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\82ª\8fo\93ü\8cû\82É\97§\82¿\82±\82ß\82½\81C\82µ\82©\82µ%s", dustcloud,
+ quickly_dissipates);
+#endif
return FALSE;
}
switch (door->doormask & ~D_TRAPPED) {
case D_CLOSED:
+/*JP
msg = "The door locks!";
+*/
+ msg = "\94à\82É\8c®\82ª\82©\82©\82Á\82½\81I";
break;
case D_ISOPEN:
+/*JP
msg = "The door swings shut, and locks!";
+*/
+ msg = "\94à\82Í\90¨\82¢\82æ\82\95Â\82Ü\82è\81C\8c®\82ª\82©\82©\82Á\82½\81I";
break;
case D_BROKEN:
+/*JP
msg = "The broken door reassembles and locks!";
+*/
+ msg = "\89ó\82ê\82½\94à\82ª\8dÄ\8d\\90¬\82³\82ê\81C\8c®\82ª\82©\82©\82Á\82½\81I";
break;
case D_NODOOR:
msg =
+/*JP
"A cloud of dust springs up and assembles itself into a door!";
+*/
+ "\82Ù\82±\82è\82ª\82½\82¿\82±\82ß\81C\8fW\82Ü\82Á\82Ä\94à\82É\82È\82Á\82½\81I";
break;
default:
res = FALSE;
case WAN_OPENING:
case SPE_KNOCK:
if (door->doormask & D_LOCKED) {
+/*JP
msg = "The door unlocks!";
+*/
+ msg = "\94à\82Ì\8c®\82Í\82Í\82¸\82ê\82½\81I";
door->doormask = D_CLOSED | (door->doormask & D_TRAPPED);
} else
res = FALSE;
(void) mb_trapped(m_at(x, y));
else if (flags.verbose) {
if (cansee(x, y))
+/*JP
pline("KABOOM!! You see a door explode.");
+*/
+ pline("\82¿\82ã\82Ç\81[\82ñ\81I\94à\82ª\94\9a\94\82µ\82½\81D");
else
+/*JP
You_hear("a distant explosion.");
+*/
+ You_hear("\89\93\82\82Ì\94\9a\94\89¹\82ð\95·\82¢\82½\81D");
}
door->doormask = D_NODOOR;
unblock_point(x, y);
door->doormask = D_BROKEN;
if (flags.verbose) {
if (cansee(x, y))
+/*JP
pline_The("door crashes open!");
+*/
+ pline("\94à\82Í\89ó\82ê\8aJ\82¢\82½\81I");
else
+/*JP
You_hear("a crashing sound.");
+*/
+ You_hear("\89½\82©\82ª\89ó\82ê\82é\89¹\82ð\95·\82¢\82½\81D");
}
unblock_point(x, y);
newsym(x, y);
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\82ª\8a\84\82ê\82é\89¹\82ð\95·\82¢\82½\81I", bottlename());
+ else
+ pline("%s\82ª\8a\84\82ê\82½\81I", bottlename());
+#endif
if (!breathless(youmonst.data) || haseyes(youmonst.data))
potionbreathe(otmp);
return;
Blinded = save_Blinded;
switch (objects[otmp->otyp].oc_material) {
case PAPER:
+/*JP
disposition = "is torn to shreds";
+*/
+ disposition = "\82Í\90¡\92f\82³\82ê\82½";
break;
case WAX:
+/*JP
disposition = "is crushed";
+*/
+ disposition = "\82ð\8f°\82É\82Ô\82¿\82Ü\82¯\82½";
break;
case VEGGY:
+/*JP
disposition = "is pulped";
+*/
+ disposition = "\82Í\82Ç\82ë\82Ç\82ë\82É\82È\82Á\82½";
break;
case FLESH:
+/*JP
disposition = "is mashed";
+*/
+ disposition = "\82Í\82Ç\82ë\82Ç\82ë\82É\82È\82Á\82½";
break;
case GLASS:
+/*JP
disposition = "shatters";
+*/
+ disposition = "\82Í\8a\84\82ê\82½";
break;
case WOOD:
+/*JP
disposition = "splinters to fragments";
+*/
+ disposition = "\82Í\82©\82¯\82ç\82É\82È\82Á\82½";
break;
default:
+/*JP
disposition = "is destroyed";
+*/
+ disposition = "\82Í\89ó\82ê\82½";
break;
}
+/*JP
pline("%s %s!", An(thing), disposition);
+*/
+ pline("%s%s\81I", thing, disposition);
}
/*lock.c*/