Merge branch 'NetHack-3.6.2'

This commit is contained in:
nhmall
2018-12-18 20:29:41 -05:00
6 changed files with 31 additions and 16 deletions

View File

@@ -284,6 +284,8 @@ while levitating inside a shop, throwing an unpaid item and having recoil move
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
diluted potion of oil is less effective when filling lamps (adds less fuel)
or burning (lasts less long) or exploding (inflicts less damage)
Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository

View File

@@ -1,4 +1,4 @@
/* 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 $ */
/* NetHack 3.6 extern.h $NHDT-Date: 1545182146 2018/12/19 01:15:46 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.674 $ */
/* Copyright (c) Steve Creps, 1988. */
/* NetHack may be freely redistributed. See license for details. */
@@ -739,7 +739,7 @@ E long FDECL(rndexp, (BOOLEAN_P));
E void FDECL(explode, (int, int, int, int, CHAR_P, int));
E long FDECL(scatter, (int, int, int, unsigned int, struct obj *));
E void FDECL(splatter_burning_oil, (int, int));
E void FDECL(splatter_burning_oil, (int, int, BOOLEAN_P));
E void FDECL(explode_oil, (struct obj *, int, int));
/* ### extralev.c ### */

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 end.c $NHDT-Date: 1544917598 2018/12/15 23:46:38 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.158 $ */
/* NetHack 3.6 end.c $NHDT-Date: 1545172226 2018/12/18 22:30:26 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.159 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2012. */
/* NetHack may be freely redistributed. See license for details. */
@@ -128,14 +128,17 @@ static boolean NDECL(NH_panictrace_libc);
static boolean NDECL(NH_panictrace_gdb);
#ifndef NO_SIGNAL
/*ARGSUSED*/
void panictrace_handler(
sig_unused) /* called as signal() handler, so sent at least one arg */
/* called as signal() handler, so sent at least one arg */
/*ARGUSED*/
void
panictrace_handler(sig_unused)
int sig_unused UNUSED;
{
#define SIG_MSG "\nSignal received.\n"
(void) write(2, SIG_MSG, sizeof(SIG_MSG) - 1);
NH_abort();
int f2 = (int) write(2, SIG_MSG, sizeof SIG_MSG - 1);
nhUse(f2); /* what could we do if write to fd#2 (stderr) fails */
NH_abort(); /* ... and we're already in the process of quitting? */
}
void
@@ -201,7 +204,7 @@ NH_abort()
traceback and exit; 2 = show traceback and stay in debugger */
/* if (wizard && gdb_prio == 1) gdb_prio = 2; */
vms_traceback(gdb_prio);
(void) libc_prio; /* half-hearted attempt at lint suppression */
nhUse(libc_prio);
#endif /* ?VMS */

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 explode.c $NHDT-Date: 1543101719 2018/11/24 23:21:59 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.59 $ */
/* NetHack 3.6 explode.c $NHDT-Date: 1545182146 2018/12/19 01:15:46 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.60 $ */
/* Copyright (C) 1990 by Ken Arromdee */
/* NetHack may be freely redistributed. See license for details. */
@@ -780,12 +780,15 @@ struct obj *obj; /* only scatter this obj */
* For now, just perform a "regular" explosion.
*/
void
splatter_burning_oil(x, y)
splatter_burning_oil(x, y, diluted_oil)
int x, y;
boolean diluted_oil;
{
int dmg = d(diluted_oil ? 3 : 4, 4);
/* ZT_SPELL(ZT_FIRE) = ZT_SPELL(AD_FIRE-1) = 10+(2-1) = 11 */
#define ZT_SPELL_O_FIRE 11 /* value kludge, see zap.c */
explode(x, y, ZT_SPELL_O_FIRE, d(4, 4), BURNING_OIL, EXPL_FIERY);
explode(x, y, ZT_SPELL_O_FIRE, dmg, BURNING_OIL, EXPL_FIERY);
}
/* lit potion of oil is exploding; extinguish it as a light source before
@@ -795,10 +798,12 @@ explode_oil(obj, x, y)
struct obj *obj;
int x, y;
{
boolean diluted_oil = obj->odiluted;
if (!obj->lamplit)
impossible("exploding unlit oil");
end_burn(obj, TRUE);
splatter_burning_oil(x, y);
splatter_burning_oil(x, y, diluted_oil);
}
/*explode.c*/

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 potion.c $NHDT-Date: 1543745356 2018/12/02 10:09:16 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.155 $ */
/* NetHack 3.6 potion.c $NHDT-Date: 1545182147 2018/12/19 01:15:47 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.156 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2013. */
/* NetHack may be freely redistributed. See license for details. */
@@ -2169,7 +2169,10 @@ more_dips:
} else {
You("fill %s with oil.", yname(obj));
check_unpaid(potion); /* Yendorian Fuel Tax */
obj->age += 2 * potion->age; /* burns more efficiently */
/* burns more efficiently in a lamp than in a bottle;
diluted potion provides less benefit but we don't attempt
to track that the lamp now also has some non-oil in it */
obj->age += (!potion->odiluted ? 4L : 3L) * potion->age / 2L;
if (obj->age > 1500L)
obj->age = 1500L;
useup(potion);

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 timeout.c $NHDT-Date: 1544050558 2018/12/05 22:55:58 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.88 $ */
/* NetHack 3.6 timeout.c $NHDT-Date: 1545182148 2018/12/19 01:15:48 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.89 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2018. */
/* NetHack may be freely redistributed. See license for details. */
@@ -1423,6 +1423,8 @@ boolean already_lit;
case POT_OIL:
turns = obj->age;
if (obj->odiluted)
turns = (3L * turns + 2L) / 4L;
radius = 1; /* very dim light */
break;