Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
37
src/shk.c
37
src/shk.c
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user