Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

This commit is contained in:
nhmall
2019-03-05 09:51:18 -05:00
5 changed files with 121 additions and 62 deletions

View File

@@ -1,4 +1,4 @@
.\" $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.298 $ $NHDT-Date: 1551312285 2019/02/28 00:04:45 $
.\" $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.299 $ $NHDT-Date: 1551488947 2019/03/02 01:09:07 $
.\"
.\" This is an excerpt from the 'roff' man page from the 'groff' package.
.\" NetHack's Guidebook.mn currently does *not* adhere to these guidelines.
@@ -1713,7 +1713,7 @@ outside the shop.
While the shopkeeper watches you like a hawk, he will generally ignore
any other customers.
.lp * 2
If a shop is \(lqclosed for inventory\(rq, it will not open of its own accord.
If a shop is \(lqclosed for inventory,\(rq it will not open of its own accord.
.lp * 2
Shops do not get restocked with new items, regardless of inventory depletion.
.
@@ -3158,15 +3158,14 @@ Debug mode only.
.lp mouse_support
Allow use of the mouse for input and travel.
Valid settings are:
.PS -1
.PL "\ 0"
disabled
.PL "\ 1"
enabled and make OS adjustments to support mouse use in the game.
.PL "\ 2"
like 1 but does not make any OS adjustments
.PE
For backward compatibility, omitting a value is the same as specifying 1
.sd
.si
.CC 0 "disabled"
.CC 1 "enabled and make OS adjustments to support mouse use in the game"
.CC 2 "like 1 but does not make any OS adjustments"
.ei
.ed
Omitting a value is the same as specifying 1
and negating
.op mouse_support
is the same as specifying 0.
@@ -3291,23 +3290,23 @@ boolean option.
Curses interface only; value is one or more of the following letters.
.sd
.si
.CC N "Normal text (no highlighting)"
.CC I "Inverse video (default)"
.CC B "Bold text"
.CC U "Underlined text"
.CC K "blinKing text"
.CC D "Dim text"
.CC T "iTalic text"
.CC L "Left line indicator"
.CC R "Right line indicator"
.CC n "Normal text (no highlighting)"
.CC i "Inverse video (default)"
.CC b "Bold text"
.CC u "Underlined text"
.CC k "blinKing text"
.CC d "Dim text"
.CC t "iTalic text"
.CC l "Left line indicator"
.CC r "Right line indicator"
.ei
.ed
Some of those choices might not work, particularly the final three,
depending upon terminal hardware or terminal emulation software.
.lp ""
Currently multiple highlight-style letters can be combined by simply
stringing them together (for example, \(lqBK\(rq), but in the future
they might require being separated by plus signs (such as \(lqB+K\(rq,
stringing them together (for example, \(lqbk\(rq), but in the future
they might require being separated by plus signs (such as \(lqb+k\(rq,
which works already).
When using the \(oqN\(cq choice, it should be specified on its own,
not in combination with any of the other letters.
@@ -4234,13 +4233,13 @@ it also matches when value is below or above the percentage.
Use prefix \(oq<\(cq or \(oq>\(cq to match when strictly below or above.
(The numeric limit is relaxed slightly for those: \f(CR>-1%\fP
and \f(CR<101%\fP are allowed.)
Only valid for \(lqpower\(rq and \(lqhitpoints\(rq fields.
Only valid for \(lqhitpoints\(rq and \(lqpower\(rq fields.
.lp "*"
absolute value sets the attribute when the field value matches
that number.
The number must be 0 or higher, except for \(lqarmor-class\(cq which
allows negative values.
If the number is prefixed with \(oq<=\(cq or \(oq>=\(cq,
allows negative values, and may optionally be preceded by \(oq=\(cq.
If the number is preceded by \(oq<=\(cq or \(oq>=\(cq instead,
it also matches when value is below or above.
If the prefix is \(oq<\(cq or \(oq>\(cq, only match when strictly
above or below.

View File

@@ -1892,7 +1892,7 @@ While the shopkeeper watches you like a hawk, he will generally ignore
any other customers.
%.lp \(bu 2
\item[$\bullet$]
If a shop is ``closed for inventory'', it will not open of its own accord.
If a shop is ``closed for inventory,'' it will not open of its own accord.
%.lp \(bu 2
\item[$\bullet$]
Shops do not get restocked with new items, regardless of inventory depletion.
@@ -3471,16 +3471,13 @@ Valid settings are:
%.sd
%.si
\newlength{\mwidth}
\settowidth{\mwidth}{\tt -0}
\newcommand{\numbox}[1]{\makebox[\mwidth][r]{{\tt #1}}}
\numbox{0} --- disabled\\
\numbox{1} --- enabled and make OS adjustment to support mouse use in the game\\
\numbox{2} --- enabled like {\tt 1}, but does not make any OS adjustments\\
{\tt 0} --- disabled\\
{\tt 1} --- enabled and make OS adjustment to support mouse use in the game\\
{\tt 2} --- enabled like {\tt 1}, but does not make any OS adjustments\\
%.ei
%.ed
For backward compatibility, omitting a value is the same as specifying {\tt 1}
Omitting a value is the same as specifying {\tt 1}
and negating
{\it mouse\verb+_+support\/}
is the same as specifying {\tt 0}.
@@ -3527,6 +3524,37 @@ Start the character with no armor (default false). Persistent.
\item[\ib{null}]
Send padding nulls to the terminal (default on). Persistent.
%.lp
\item[\ib{number\verb+_+pad}]
Use digit keys instead of letters to move (default 0 or off).\\
Valid settings are:
%.sd
%.si
\newlength{\mwidth}
\settowidth{\mwidth}{\tt -0}
\newcommand{\numbox}[1]{\makebox[\mwidth][r]{{\tt #1}}}
\numbox{0} --- move by letters; `{\tt yuhjklbn}'\\
\numbox{1} --- move by numbers; digit `{\tt 5}' acts as `{\tt G}' movement prefix\\
\numbox{2} --- like {\tt 1} but `{\tt 5}' works as `{\tt g}' prefix instead of as `{\tt G}'\\
\numbox{3} --- by numbers using phone key layout; {\tt 123} above, {\tt 789} below\\
\numbox{4} --- combines {\tt 3} with {\tt 2}; phone layout plus MS-DOS compatibility\\
\numbox{-1} --- by letters but use `{\tt z}' to go northwest, `{\tt y}' to zap wands
%.ei
%.ed
For backward compatibility, omitting a value is the same as specifying {\tt 1}
and negating
{\it number\verb+_+pad\/}
is the same as specifying {\tt 0}.
(Settings {\tt 2} and {\tt 4} are for compatibility with MS-DOS or old PC Hack;
in addition to the different behavior for `{\tt 5}', `{\tt Alt-5}' acts as `{\tt G}'
and `{\tt Alt-0}' acts as `{\tt I}'.
Setting {\tt -1} is to accommodate some QWERTZ keyboards which have the
location of the `{\tt y}' and `{\tt z}' keys swapped.)
When moving by numbers, to enter a count prefix for those commands
which accept one (such as ``{\tt 12s}'' to search twelve times), precede it
with the letter `{\tt n}' (``{\tt n12s}'').
%.lp
\item[\ib{packorder}]
Specify the order to list object types in (default
``\verb&")[%?+!=/(*`0_&''). The value of this option should be a string
@@ -3594,15 +3622,15 @@ Curses interface only; value is one or more of the following letters.
%.sd
%.si
{\tt N} --- Normal text (no highlighting)\\
{\tt I} --- Inverse video (default)\\
{\tt B} --- Bold text\\
{\tt U} --- Underlined text\\
{\tt K} --- blinKing text\\
{\tt D} --- Dim text\\
{\tt T} --- iTalic text\\
{\tt L} --- Left line indicator\\
{\tt R} --- Right line indicator\\
{\tt n} --- Normal text (no highlighting)\\
{\tt i} --- Inverse video (default)\\
{\tt b} --- Bold text\\
{\tt u} --- Underlined text\\
{\tt k} --- blinKing text\\
{\tt d} --- Dim text\\
{\tt t} --- iTalic text\\
{\tt l} --- Left line indicator\\
{\tt r} --- Right line indicator\\
%.ei
%.ed
@@ -3611,8 +3639,8 @@ depending upon terminal hardware or terminal emulation software.
%.lp ""
Currently multiple highlight-style letters can be combined by simply
stringing them together (for example, ``BK''), but in the future
they might require being separated by plus signs (such as ``B\verb&+&K'',
stringing them together (for example, ``bk''), but in the future
they might require being separated by plus signs (such as ``b\verb&+&k'',
which works already).
When using the `N' choice, it should be specified on its own,
not in combination with any of the other letters.
@@ -4651,7 +4679,8 @@ depending upon your other option settings.
Instead of a behavior, `condition' takes the following condition flags:
{\it stone}, {\it slime}, {\it strngl}, {\it foodpois}, {\it termill},
{\it blind}, {\it deaf}, {\it stun}, {\it conf}, {\it hallu},
{\it lev}, {\it fly}, and {\it ride}. You can use `major\_troubles' as an alias
{\it lev}, {\it fly}, and {\it ride}.
You can use `major\_troubles' as an alias
for stone through termill, `minor\_troubles' for blind through hallu,
`movement' for lev, fly, and ride, and `all' for every condition.
@@ -4686,14 +4715,14 @@ it also matches when value is below or above the percentage.
Use prefix `{\tt <}' or `{\tt >}' to match when strictly below or above.
(The numeric limit is relaxed slightly for those: {\tt >-1\%}
and {\tt <101\%} are allowed.)
Only valid for ``{\it power\/}'' and ``{\it hitpoints\/}'' fields.
Only valid for ``{\it hitpoints\/}'' and ``{\it power\/}'' fields.
%.lp "*"
\item{\bb{}}
absolute value sets the attribute when the field value
matches that number.
The number must be 0 or higher, except for ``{\it armor-class\/} which
allows negative values.
If the number is prefixed with `{\tt <=}' or `{\tt >=}',
allows negative values, and may optionally be preceded by `{\tt =}'.
If the number is preceded by `{\tt <=}' or `{\tt >=}' instead,
it also matches when value is below or above.
If the prefix is `{\tt <}' or `{\tt >}', only match when strictly
above or below.

View File

@@ -1,4 +1,4 @@
$NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.267 $ $NHDT-Date: 1551395521 2019/02/28 23:12:01 $
$NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.269 $ $NHDT-Date: 1551739190 2019/03/04 22:39:50 $
This fixes36.2 file is here to capture information about updates in the 3.6.x
lineage following the release of 3.6.1 in April 2018. Please note, however,
@@ -387,6 +387,8 @@ toggling perm_invent on didn't immediately show persistent inventory window
some fish should lay their eggs in the water rather than on land
wand or spell of undead turning handled messages and wand-discovery in a
non-intuitive manner biased toward healers
if steed ate a mimic corpse and began masquerading as something, hero could
keep riding it; force dismount
Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository
@@ -443,13 +445,16 @@ when engulfed while in a shop, dropping an item into the engulfer and then
using ':' to look at current location could cause a crash
when items were on the floor just inside a shop's door where the shopkeeper
doesn't buy and sell stuff, those items showed a 'for sale' price
applying a container while inside a shop and initiating a put-in operation
would show non-empty containers in inventory--including the one being
applied--with "for sale" amounts for the prices of their contents
after 'when donning armor, enchanment becomes known even if interrupted' fix,
wearing a leather jacket, fedora, or dented pot (no multi-turn delay
worn in a slot which usually has one) didn't make +/- become known
when persistent inventory window is enabled, wearing armor didn't immediately
update it with armor's newly observed +/- value
having an artifact wish be refused ("for a moment you feel <artifact> in
your hands, but it disappears") would immediately segfault
when persistent inventory window is enabled, wearing armor doesn't immediately
update it with armor's newly observed +/- value
tty: turn off an optimization that is the suspected cause of Windows reported
partial status lines following level changes
tty: ensure that current status fields are always copied to prior status

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 dogmove.c $NHDT-Date: 1502753407 2017/08/14 23:30:07 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.63 $ */
/* NetHack 3.6 dogmove.c $NHDT-Date: 1551493951 2019/03/02 02:32:31 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.72 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2012. */
/* NetHack may be freely redistributed. See license for details. */
@@ -1379,6 +1379,15 @@ struct monst *mtmp;
if (Protection_from_shape_changers || !mtmp->meating)
return;
/* with polymorph, the steed's equipment would be re-checked and its
saddle would come off, triggering DISMOUNT_FELL, but mimicking
doesn't impact monster's equipment; normally DISMOUNT_POLY is for
rider taking on an unsuitable shape, but its message works fine
for this and also avoids inflicting damage during forced dismount;
do this before changing so that dismount refers to original shape */
if (mtmp == u.usteed)
dismount_steed(DISMOUNT_POLY);
do {
idx = rn2(SIZE(qm));
if (qm[idx].mndx != 0 && monsndx(mtmp->data) == qm[idx].mndx)

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 shk.c $NHDT-Date: 1549921170 2019/02/11 21:39:30 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.156 $ */
/* NetHack 3.6 shk.c $NHDT-Date: 1551738135 2019/03/04 22:22:15 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.157 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2012. */
/* NetHack may be freely redistributed. See license for details. */
@@ -1328,7 +1328,7 @@ dopay()
debugpline0("dopay: null shkp.");
return 0;
}
proceed:
proceed:
eshkp = ESHK(shkp);
ltmp = eshkp->robbed;
@@ -1547,7 +1547,7 @@ proceed:
}
}
}
thanks:
thanks:
if (!itemize)
update_inventory(); /* Done in dopayobj() if itemize. */
}
@@ -1867,7 +1867,7 @@ boolean silently;
eshkp->following = 0;
eshkp->robbed = 0L;
}
skip:
skip:
/* in case we create bones */
rouse_shk(shkp, FALSE); /* wake up */
if (!inhishop(shkp))
@@ -2013,7 +2013,7 @@ int *nochrg; /* alternate return value: 1: no charge, 0: shop owned, */
if (carried(top) ? (int) obj->unpaid : !*nochrg)
cost = obj->quan * get_cost(obj, shkp);
if (Has_contents(obj) && !freespot)
cost += contained_cost(obj, shkp, 0L, FALSE, FALSE);
cost += contained_cost(obj, shkp, 0L, FALSE, TRUE);
}
return cost;
}
@@ -2154,7 +2154,19 @@ long price;
boolean usell;
boolean unpaid_only;
{
register struct obj *otmp;
register struct obj *otmp, *top;
xchar x, y;
boolean on_floor, freespot;
for (top = obj; top->where == OBJ_CONTAINED; top = top->ocontainer)
continue;
/* pick_obj() removes item from floor, adds it to shop bill, then
puts it in inventory; behave as if it is still on the floor
during the add-to-bill portion of that situation */
on_floor = (top->where == OBJ_FLOOR || top->where == OBJ_FREE);
if (top->where == OBJ_FREE || !get_obj_location(top, &x, &y, 0))
x = u.ux, y = u.uy;
freespot = (on_floor && x == ESHK(shkp)->shk.x && y == ESHK(shkp)->shk.y);
/* price of contained objects; "top" container handled by caller */
for (otmp = obj->cobj; otmp; otmp = otmp->nobj) {
@@ -2168,8 +2180,13 @@ boolean unpaid_only;
&& !(Is_candle(otmp)
&& otmp->age < 20L * (long) objects[otmp->otyp].oc_cost))
price += set_cost(otmp, shkp);
} else if (!otmp->no_charge && (otmp->unpaid || !unpaid_only)) {
price += get_cost(otmp, shkp) * otmp->quan;
} else {
/* no_charge is only set for floor items (including
contents of floor containers) inside shop proper;
items on freespot are implicitly 'no charge' */
if (on_floor ? (!otmp->no_charge && !freespot)
: (otmp->unpaid || !unpaid_only))
price += get_cost(otmp, shkp) * otmp->quan;
}
if (Has_contents(otmp))
@@ -3317,7 +3334,7 @@ int mode; /* 0: deliver count 1: paged */
putstr(datawin, 0, "");
putstr(datawin, 0, buf_p);
display_nhwindow(datawin, FALSE);
quit:
quit:
destroy_nhwindow(datawin);
return 0;
}
@@ -4100,7 +4117,7 @@ boolean cant_mollify;
if ((um_dist(x, y, 1) && !uinshp) || cant_mollify
|| (money_cnt(invent) + ESHK(shkp)->credit) < cost_of_damage
|| !rn2(50)) {
getcad:
getcad:
if (muteshk(shkp)) {
if (animal && shkp->mcanmove && !shkp->msleeping)
yelp(shkp);