Merge branch 'NetHack-3.6'

This commit is contained in:
nhmall
2019-09-21 10:52:13 -04:00
3 changed files with 41 additions and 18 deletions

View File

@@ -1,4 +1,4 @@
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.112 $ $NHDT-Date: 1568509226 2019/09/15 01:00:26 $
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.114 $ $NHDT-Date: 1568922510 2019/09/19 19:48:30 $
This fixes36.3 file is here to capture information about updates in the 3.6.x
lineage following the release of 3.6.2 in May 2019. Please note, however,
@@ -139,6 +139,12 @@ when spellcasting monster aimed at wrong spot due to not being able to see
prevent impossible when guard tries to relocate a monster on a full level
hallucination provides partial protection from passive gaze counterattack
against hero's attack; check for that before checking for free action
feedback from blessed potion of restore ability never reported "you feel great"
due to bad logic for not-unihorn case in unfixable_trouble_count()
when rubbing a ring on a touchstone, all types of rings were treated as if
they were gems; an iron ring made a cyan streak instead of yielding
"scritch, scritch" and a gold ring made a yellow streak rather than
a golden scratch
Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 youprop.h $NHDT-Date: 1433291407 2015/06/03 00:30:07 $ $NHDT-Branch: master $:$NHDT-Revision: 1.23 $ */
/* NetHack 3.6 youprop.h $NHDT-Date: 1568831820 2019/09/18 18:37:00 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.27 $ */
/* Copyright (c) 1989 Mike Threepoint */
/* NetHack may be freely redistributed. See license for details. */
@@ -75,8 +75,8 @@
/* Pseudo-property */
#define Punished (uball != 0)
/* Those implemented solely as timeouts (we use just intrinsic) */
#define HStun u.uprops[STUNNED].intrinsic
/* Many are implemented solely as timeouts (we use just intrinsic) */
#define HStun u.uprops[STUNNED].intrinsic /* timed or FROMFORM */
#define Stunned HStun
#define HConfusion u.uprops[CONFUSION].intrinsic

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 apply.c $NHDT-Date: 1559670602 2019/06/04 17:50:02 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.274 $ */
/* NetHack 3.6 apply.c $NHDT-Date: 1568922511 2019/09/19 19:48:31 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.277 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2012. */
/* NetHack may be freely redistributed. See license for details. */
@@ -2301,13 +2301,14 @@ static void
use_stone(tstone)
struct obj *tstone;
{
static const char scritch[] = "\"scritch, scritch\"";
static const char allowall[3] = { COIN_CLASS, ALL_CLASSES, 0 };
static const char coins_gems[3] = { COIN_CLASS, GEM_CLASS, 0 };
struct obj *obj;
boolean do_scratch;
const char *streak_color, *choices;
char stonebuf[QBUFSZ];
static const char scritch[] = "\"scritch, scritch\"";
static const char allowall[3] = { COIN_CLASS, ALL_CLASSES, 0 };
static const char coins_gems[3] = { COIN_CLASS, GEM_CLASS, 0 };
int oclass;
/* in case it was acquired while blinded */
if (!Blind)
@@ -2352,7 +2353,14 @@ struct obj *tstone;
do_scratch = FALSE;
streak_color = 0;
switch (obj->oclass) {
oclass = obj->oclass;
/* prevent non-gemstone rings from being treated like gems */
if (oclass == RING_CLASS
&& objects[obj->otyp].oc_material != GEMSTONE
&& objects[obj->otyp].oc_material != MINERAL)
oclass = RANDOM_CLASS; /* something that's neither gem nor ring */
switch (oclass) {
case GEM_CLASS: /* these have class-specific handling below */
case RING_CLASS:
if (tstone->otyp != TOUCHSTONE) {
@@ -3712,25 +3720,34 @@ boolean is_horn;
if (Stoned)
unfixable_trbl++;
if (Slimed)
unfixable_trbl++;
if (Strangled)
unfixable_trbl++;
if (Wounded_legs && !u.usteed)
unfixable_trbl++;
if (Slimed)
unfixable_trbl++;
/* lycanthropy is undesirable, but it doesn't actually make you feel bad */
/* lycanthropy is undesirable, but it doesn't actually make you feel bad
so don't count it as a trouble which can't be fixed */
if (!is_horn || (Confusion & ~TIMEOUT))
/*
* Unicorn horn can fix these when they're timed but not when
* they aren't. Potion of restore ability doesn't touch them,
* so they're always unfixable for the not-unihorn case.
* [Most of these are timed only, so always curable via horn.
* An exception is Stunned, which can be forced On by certain
* polymorph forms (stalker, bats).]
*/
if (Sick && (!is_horn || (Sick & ~TIMEOUT) != 0L))
unfixable_trbl++;
if (!is_horn || (Sick & ~TIMEOUT))
if (Stunned && (!is_horn || (HStun & ~TIMEOUT) != 0L))
unfixable_trbl++;
if (!is_horn || (HHallucination & ~TIMEOUT))
if (Confusion && (!is_horn || (HConfusion & ~TIMEOUT) != 0L))
unfixable_trbl++;
if (!is_horn || (Vomiting & ~TIMEOUT))
if (Hallucination && (!is_horn || (HHallucination & ~TIMEOUT) != 0L))
unfixable_trbl++;
if (!is_horn || (HStun & ~TIMEOUT))
if (Vomiting && (!is_horn || (Vomiting & ~TIMEOUT) != 0L))
unfixable_trbl++;
if (!is_horn || (HDeaf & ~TIMEOUT))
if (Deaf && (!is_horn || (HDeaf & ~TIMEOUT) != 0L))
unfixable_trbl++;
return unfixable_trbl;