Merge remote-tracking branch 'origin/NetHack-3.6.0'

This commit is contained in:
keni
2016-07-30 16:39:30 -04:00
9 changed files with 49 additions and 35 deletions

View File

@@ -1091,6 +1091,7 @@ dokick()
goto ouch;
if (IS_TREE(maploc->typ)) {
struct obj *treefruit;
/* nothing, fruit or trouble? 75:23.5:1.5% */
if (rn2(3)) {
if (!rn2(6) && !(mvitals[PM_KILLER_BEE].mvflags & G_GONE))
@@ -1101,7 +1102,9 @@ dokick()
&& (treefruit = rnd_treefruit_at(x, y))) {
long nfruit = 8L - rnl(7), nfall;
short frtype = treefruit->otyp;
treefruit->quan = nfruit;
treefruit->owt = weight(treefruit);
if (is_plural(treefruit))
pline("Some %s fall from the tree!", xname(treefruit));
else
@@ -1125,6 +1128,7 @@ dokick()
int cnt = rnl(4) + 2;
int made = 0;
coord mm;
mm.x = x;
mm.y = y;
while (cnt--) {

View File

@@ -1489,7 +1489,7 @@ struct obj *otmp;
}
if (s1)
pline("Use the '%s' command to %s %s%s.", s1, s2,
!is_plural(otmp) ? "that" : "those", s3);
!(is_plural(otmp) || pair_of(otmp)) ? "that" : "those", s3);
else
#endif
pline(silly_thing_to, word);

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 muse.c $NHDT-Date: 1457254910 2016/03/06 09:01:50 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.72 $ */
/* NetHack 3.6 muse.c $NHDT-Date: 1469840918 2016/07/30 01:08:38 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.78 $ */
/* Copyright (C) 1990 by Ken Arromdee */
/* NetHack may be freely redistributed. See license for details. */
@@ -2369,7 +2369,7 @@ boolean by_you;
return muse_unslime(mon, obj, (struct trap *) 0, by_you);
if (((t = t_at(mon->mx, mon->my)) == 0 || t->ttyp != FIRE_TRAP)
&& !mon->mtrapped && !mptr->mmove == 0) {
&& mptr->mmove && !mon->mtrapped) {
int xy[2][8], x, y, idx, ridx, nxy = 0;
for (x = mon->mx - 1; x <= mon->mx + 1; ++x)

View File

@@ -2763,24 +2763,25 @@ struct obj *no_wish;
}
/*
Skip over "pair of ", "pairs of", "set of" and "sets of".
Accept "3 pair of boots" as well as "3 pairs of boots". It is valid
English either way. See makeplural() for more on pair/pairs.
We should only double count if the object in question is not
referred to as a "pair of". E.g. We should double if the player
types "pair of spears", but not if the player types "pair of
lenses". Luckily (?) all objects that are referred to as pairs
-- boots, gloves, and lenses -- are also not mergable, so cnt is
ignored anyway.
*/
* Skip over "pair of ", "pairs of", "set of" and "sets of".
*
* Accept "3 pair of boots" as well as "3 pairs of boots". It is
* valid English either way. See makeplural() for more on pair/pairs.
*
* We should only double count if the object in question is not
* referred to as a "pair of". E.g. We should double if the player
* types "pair of spears", but not if the player types "pair of
* lenses". Luckily (?) all objects that are referred to as pairs
* -- boots, gloves, and lenses -- are also not mergable, so cnt is
* ignored anyway.
*/
if (!strncmpi(bp, "pair of ", 8)) {
bp += 8;
cnt *= 2;
} else if (cnt > 1 && !strncmpi(bp, "pairs of ", 9)) {
} else if (!strncmpi(bp, "pairs of ", 9)) {
bp += 9;
cnt *= 2;
if (cnt > 1)
cnt *= 2;
} else if (!strncmpi(bp, "set of ", 7)) {
bp += 7;
} else if (!strncmpi(bp, "sets of ", 8)) {

View File

@@ -1798,7 +1798,7 @@ dodip()
if (inaccessible_equipment(obj, "dip", FALSE))
return 0;
shortestname = is_plural(obj) ? "them" : "it";
shortestname = (is_plural(obj) || pair_of(obj)) ? "them" : "it";
/*
* Bypass safe_qbuf() since it doesn't handle varying suffix without
* an awful lot of support work. Format the object once, even though

View File

@@ -421,10 +421,11 @@ dowieldquiver()
}
Strcpy(qbuf, "Ready all of them instead?");
} else {
boolean use_plural = (is_plural(uwep) || pair_of(uwep));
Sprintf(qbuf, "You are wielding %s. Ready %s instead?",
/* uwep->quan is 1, but name might be plural ('boots') */
!is_plural(uwep) ? "that" : "those",
!is_plural(uwep) ? "it" : "them");
!use_plural ? "that" : "those",
!use_plural ? "it" : "them");
}
/* require confirmation to ready the main weapon */
if (ynq(qbuf) != 'y') {
@@ -458,11 +459,12 @@ dowieldquiver()
}
Strcpy(qbuf, "Ready all of them instead?");
} else {
boolean use_plural = (is_plural(uswapwep) || pair_of(uswapwep));
Sprintf(qbuf, "%s your %s weapon. Ready %s instead?",
!is_plural(uswapwep) ? "That is" : "Those are",
!use_plural ? "That is" : "Those are",
u.twoweap ? "second" : "alternate",
/* uswapwep->quan is 1, but name might be plural */
!is_plural(uswapwep) ? "it" : "them");
!use_plural ? "it" : "them");
}
/* require confirmation to ready the alternate weapon */
if (ynq(qbuf) != 'y') {