Merge branch 'NetHack-3.6.2'
This commit is contained in:
@@ -278,6 +278,11 @@ while inside a shop, dropping an unpaid item inside an engulfer would leave
|
|||||||
the engulfer was killed; treat dropping shop items inside an engulfer
|
the engulfer was killed; treat dropping shop items inside an engulfer
|
||||||
as stealing them and giving them to that engulfer--hero must pay for
|
as stealing them and giving them to that engulfer--hero must pay for
|
||||||
for them and shop retains ownership of them
|
for them and shop retains ownership of them
|
||||||
|
while levitating inside a shop, throwing an unpaid item and having recoil move
|
||||||
|
hero out of shop (or to shopkeeper's spot in front of door) would
|
||||||
|
leave the item unpaid on shop floor and also on the shop's bill but
|
||||||
|
not visible via 'Iu' or 'Ix'; leaving the shop after that would anger
|
||||||
|
the shopkeeper and summon kops
|
||||||
|
|
||||||
|
|
||||||
Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository
|
Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 extern.h $NHDT-Date: 1544998887 2018/12/16 22:21:27 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.671 $ */
|
/* NetHack 3.6 extern.h $NHDT-Date: 1545043771 2018/12/17 10:49:31 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.673 $ */
|
||||||
/* Copyright (c) Steve Creps, 1988. */
|
/* Copyright (c) Steve Creps, 1988. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 do.c $NHDT-Date: 1545005168 2018/12/17 00:06:08 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.179 $ */
|
/* NetHack 3.6 do.c $NHDT-Date: 1545043771 2018/12/17 10:49:31 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.181 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/*-Copyright (c) Derek S. Ray, 2015. */
|
/*-Copyright (c) Derek S. Ray, 2015. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
@@ -588,8 +588,7 @@ register struct obj *obj;
|
|||||||
|
|
||||||
/* doname can call s_suffix, reusing its buffer */
|
/* doname can call s_suffix, reusing its buffer */
|
||||||
Strcpy(monbuf, s_suffix(mon_nam(u.ustuck)));
|
Strcpy(monbuf, s_suffix(mon_nam(u.ustuck)));
|
||||||
onam_p = obj->unpaid ? yobjnam(obj, (char *) 0) : doname(obj);
|
onam_p = is_unpaid(obj) ? yobjnam(obj, (char *) 0) : doname(obj);
|
||||||
|
|
||||||
You("drop %s into %s %s.", onam_p, monbuf,
|
You("drop %s into %s %s.", onam_p, monbuf,
|
||||||
mbodypart(u.ustuck, STOMACH));
|
mbodypart(u.ustuck, STOMACH));
|
||||||
}
|
}
|
||||||
@@ -684,7 +683,7 @@ boolean with_impact;
|
|||||||
could_grow = (obj->corpsenm == PM_WRAITH);
|
could_grow = (obj->corpsenm == PM_WRAITH);
|
||||||
could_heal = (obj->corpsenm == PM_NURSE);
|
could_heal = (obj->corpsenm == PM_NURSE);
|
||||||
}
|
}
|
||||||
if (obj->unpaid)
|
if (is_unpaid(obj))
|
||||||
(void) stolen_value(obj, u.ux, u.uy, TRUE, FALSE);
|
(void) stolen_value(obj, u.ux, u.uy, TRUE, FALSE);
|
||||||
(void) mpickobj(u.ustuck, obj);
|
(void) mpickobj(u.ustuck, obj);
|
||||||
if (is_animal(u.ustuck->data)) {
|
if (is_animal(u.ustuck->data)) {
|
||||||
|
|||||||
+10
-5
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 dothrow.c $NHDT-Date: 1544401268 2018/12/10 00:21:08 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.153 $ */
|
/* NetHack 3.6 dothrow.c $NHDT-Date: 1545044705 2018/12/17 11:05:05 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.154 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/*-Copyright (c) Robert Patrick Rankin, 2013. */
|
/*-Copyright (c) Robert Patrick Rankin, 2013. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
@@ -893,21 +893,26 @@ struct obj *obj;
|
|||||||
xchar x, y;
|
xchar x, y;
|
||||||
boolean broken;
|
boolean broken;
|
||||||
{
|
{
|
||||||
|
boolean costly_xy;
|
||||||
struct monst *shkp = shop_keeper(*u.ushops);
|
struct monst *shkp = shop_keeper(*u.ushops);
|
||||||
|
|
||||||
if (!shkp)
|
if (!shkp)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (broken || !costly_spot(x, y)
|
costly_xy = costly_spot(x, y);
|
||||||
|| *in_rooms(x, y, SHOPBASE) != *u.ushops) {
|
if (broken || !costly_xy || *in_rooms(x, y, SHOPBASE) != *u.ushops) {
|
||||||
/* thrown out of a shop or into a different shop */
|
/* thrown out of a shop or into a different shop */
|
||||||
if (is_unpaid(obj))
|
if (is_unpaid(obj))
|
||||||
(void) stolen_value(obj, u.ux, u.uy, (boolean) shkp->mpeaceful,
|
(void) stolen_value(obj, u.ux, u.uy, (boolean) shkp->mpeaceful,
|
||||||
FALSE);
|
FALSE);
|
||||||
if (broken)
|
if (broken)
|
||||||
obj->no_charge = 1;
|
obj->no_charge = 1;
|
||||||
} else {
|
} else if (costly_xy) {
|
||||||
if (costly_spot(u.ux, u.uy) && costly_spot(x, y)) {
|
char *oshops = in_rooms(x, y, SHOPBASE);
|
||||||
|
|
||||||
|
/* ushops0: in case we threw while levitating and recoiled
|
||||||
|
out of shop (most likely to the shk's spot in front of door) */
|
||||||
|
if (*oshops == *u.ushops || *oshops == *u.ushops0) {
|
||||||
if (is_unpaid(obj))
|
if (is_unpaid(obj))
|
||||||
subfrombill(obj, shkp);
|
subfrombill(obj, shkp);
|
||||||
else if (x != shkp->mx || y != shkp->my)
|
else if (x != shkp->mx || y != shkp->my)
|
||||||
|
|||||||
+2
-2
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 invent.c $NHDT-Date: 1541145517 2018/11/02 07:58:37 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.241 $ */
|
/* NetHack 3.6 invent.c $NHDT-Date: 1545043772 2018/12/17 10:49:32 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.244 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/*-Copyright (c) Derek S. Ray, 2015. */
|
/*-Copyright (c) Derek S. Ray, 2015. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
@@ -25,8 +25,8 @@ STATIC_DCL boolean FDECL(only_here, (struct obj *));
|
|||||||
STATIC_DCL void FDECL(compactify, (char *));
|
STATIC_DCL void FDECL(compactify, (char *));
|
||||||
STATIC_DCL boolean FDECL(taking_off, (const char *));
|
STATIC_DCL boolean FDECL(taking_off, (const char *));
|
||||||
STATIC_DCL boolean FDECL(putting_on, (const char *));
|
STATIC_DCL boolean FDECL(putting_on, (const char *));
|
||||||
STATIC_PTR int FDECL(ckunpaid, (struct obj *));
|
|
||||||
STATIC_PTR int FDECL(ckvalidcat, (struct obj *));
|
STATIC_PTR int FDECL(ckvalidcat, (struct obj *));
|
||||||
|
STATIC_PTR int FDECL(ckunpaid, (struct obj *));
|
||||||
STATIC_PTR char *FDECL(safeq_xprname, (struct obj *));
|
STATIC_PTR char *FDECL(safeq_xprname, (struct obj *));
|
||||||
STATIC_PTR char *FDECL(safeq_shortxprname, (struct obj *));
|
STATIC_PTR char *FDECL(safeq_shortxprname, (struct obj *));
|
||||||
STATIC_DCL char FDECL(display_pickinv, (const char *, const char *,
|
STATIC_DCL char FDECL(display_pickinv, (const char *, const char *,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 shk.c $NHDT-Date: 1542853899 2018/11/22 02:31:39 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.142 $ */
|
/* NetHack 3.6 shk.c $NHDT-Date: 1545036290 2018/12/17 08:44:50 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.143 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/*-Copyright (c) Robert Patrick Rankin, 2012. */
|
/*-Copyright (c) Robert Patrick Rankin, 2012. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
@@ -2763,6 +2763,15 @@ boolean peaceful, silent;
|
|||||||
char roomno = *in_rooms(x, y, SHOPBASE);
|
char roomno = *in_rooms(x, y, SHOPBASE);
|
||||||
struct bill_x *bp;
|
struct bill_x *bp;
|
||||||
struct monst *shkp = 0;
|
struct monst *shkp = 0;
|
||||||
|
boolean was_unpaid;
|
||||||
|
long c_count = 0L, u_count = 0L;
|
||||||
|
|
||||||
|
/* gather information for message(s) prior to manipulating bill */
|
||||||
|
was_unpaid = obj->unpaid ? TRUE : FALSE;
|
||||||
|
if (Has_contents(obj)) {
|
||||||
|
c_count = count_contents(obj, TRUE, FALSE, TRUE);
|
||||||
|
u_count = count_contents(obj, TRUE, FALSE, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
if (!billable(&shkp, obj, roomno, FALSE)) {
|
if (!billable(&shkp, obj, roomno, FALSE)) {
|
||||||
/* things already on the bill yield a not-billable result, so
|
/* things already on the bill yield a not-billable result, so
|
||||||
@@ -2810,6 +2819,7 @@ boolean peaceful, silent;
|
|||||||
ESHK(shkp)->debit += value;
|
ESHK(shkp)->debit += value;
|
||||||
|
|
||||||
if (!silent) {
|
if (!silent) {
|
||||||
|
char buf[BUFSZ];
|
||||||
const char *still = "";
|
const char *still = "";
|
||||||
|
|
||||||
if (credit_use) {
|
if (credit_use) {
|
||||||
@@ -2823,12 +2833,17 @@ boolean peaceful, silent;
|
|||||||
}
|
}
|
||||||
still = "still ";
|
still = "still ";
|
||||||
}
|
}
|
||||||
if (obj->oclass == COIN_CLASS)
|
Sprintf(buf, "%sowe %s %ld %s", still, shkname(shkp),
|
||||||
You("%sowe %s %ld %s!", still, shkname(shkp), value,
|
value, currency(value));
|
||||||
currency(value));
|
if (u_count) /* u_count > 0 implies Has_contents(obj) */
|
||||||
else
|
Sprintf(eos(buf), " for %s%sits contents",
|
||||||
You("%sowe %s %ld %s for %s!", still, shkname(shkp),
|
was_unpaid ? "it and " : "",
|
||||||
value, currency(value), (obj->quan > 1L) ? "them" : "it");
|
(c_count > u_count) ? "some of " : "");
|
||||||
|
else if (obj->oclass != COIN_CLASS)
|
||||||
|
Sprintf(eos(buf), " for %s",
|
||||||
|
(obj->quan > 1L) ? "them" : "it");
|
||||||
|
|
||||||
|
You("%s!", buf); /* "You owe <shk> N zorkmids for it!" */
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ESHK(shkp)->robbed += value;
|
ESHK(shkp)->robbed += value;
|
||||||
|
|||||||
Reference in New Issue
Block a user