Merge branch 'NetHack-3.6'
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.189 $ $NHDT-Date: 1574475416 2019/11/23 02:16:56 $
|
||||
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.190 $ $NHDT-Date: 1574638389 2019/11/24 23:33:09 $
|
||||
|
||||
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,
|
||||
@@ -300,6 +300,8 @@ when Riders use their bargethrough capability, don't let them swap places with
|
||||
door opening ability was letting them exchange places with something
|
||||
co-located with a closed door without opening it; if killed there,
|
||||
there'd be no corpse so no auto-revive)
|
||||
putting on levitation boots while on sink would crash when attempting to set
|
||||
the enchantment known flag on Null 'uarmf' pointer
|
||||
unix: Fix double DLB definition in linux hints file
|
||||
windows: fix --showpaths output for the data file which relies on being
|
||||
constructed programmatically to incorporate the version suffix
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.6 do_wear.c $NHDT-Date: 1573346188 2019/11/10 00:36:28 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.113 $ */
|
||||
/* NetHack 3.6 do_wear.c $NHDT-Date: 1574638390 2019/11/24 23:33:10 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.114 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Robert Patrick Rankin, 2012. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -192,18 +192,24 @@ Boots_on(VOID_ARGS)
|
||||
break;
|
||||
case LEVITATION_BOOTS:
|
||||
if (!oldprop && !HLevitation && !(BLevitation & FROMOUTSIDE)) {
|
||||
uarmf->known = 1; /* might come off if putting on over a sink,
|
||||
* so uarmf could be Null below; status line
|
||||
* gets updated during brief interval they're
|
||||
* worn so hero and player learn enchantment */
|
||||
context.botl = 1; /* status hilites might mark AC changed */
|
||||
makeknown(uarmf->otyp);
|
||||
float_up();
|
||||
if (Levitation)
|
||||
spoteffects(FALSE); /* for sink effect */
|
||||
} else {
|
||||
float_vs_flight(); /* maybe toggle (BFlying & I_SPECIAL) */
|
||||
float_vs_flight(); /* maybe toggle BFlying's I_SPECIAL */
|
||||
}
|
||||
break;
|
||||
default:
|
||||
impossible(unknown_type, c_boots, uarmf->otyp);
|
||||
}
|
||||
uarmf->known = 1; /* boots' +/- evident because of status line AC */
|
||||
if (uarmf) /* could be Null here (levitation boots put on over a sink) */
|
||||
uarmf->known = 1; /* boots' +/- evident because of status line AC */
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -317,7 +323,8 @@ Cloak_on(VOID_ARGS)
|
||||
default:
|
||||
impossible(unknown_type, c_cloak, uarmc->otyp);
|
||||
}
|
||||
uarmc->known = 1; /* cloak's +/- evident because of status line AC */
|
||||
if (uarmc) /* no known instance of !uarmc here but play it safe */
|
||||
uarmc->known = 1; /* cloak's +/- evident because of status line AC */
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -389,24 +396,24 @@ Helmet_on(VOID_ARGS)
|
||||
adj_abon(uarmh, uarmh->spe);
|
||||
break;
|
||||
case CORNUTHAUM:
|
||||
/* people think marked wizards know what they're talking
|
||||
* about, but it takes trained arrogance to pull it off,
|
||||
* and the actual enchantment of the hat is irrelevant.
|
||||
*/
|
||||
/* people think marked wizards know what they're talking about,
|
||||
but it takes trained arrogance to pull it off, and the actual
|
||||
enchantment of the hat is irrelevant */
|
||||
ABON(A_CHA) += (Role_if(PM_WIZARD) ? 1 : -1);
|
||||
g.context.botl = 1;
|
||||
makeknown(uarmh->otyp);
|
||||
break;
|
||||
case HELM_OF_OPPOSITE_ALIGNMENT:
|
||||
uarmh->known = 1; /* do this here because uarmh could get cleared */
|
||||
/* changing alignment can toggle off active artifact
|
||||
properties, including levitation; uarmh could get
|
||||
dropped or destroyed here */
|
||||
/* changing alignment can toggle off active artifact properties,
|
||||
including levitation; uarmh could get dropped or destroyed here
|
||||
by hero falling onto a polymorph trap or into water (emergency
|
||||
disrobe) or maybe lava (probably not, helm isn't 'organic') */
|
||||
uchangealign((u.ualign.type != A_NEUTRAL)
|
||||
? -u.ualign.type
|
||||
: (uarmh->o_id % 2) ? A_CHAOTIC : A_LAWFUL,
|
||||
1);
|
||||
/* makeknown(uarmh->otyp); -- moved below, after xname() */
|
||||
/* makeknown(HELM_OF_OPPOSITE_ALIGNMENT); -- below, after Tobjnam() */
|
||||
/*FALLTHRU*/
|
||||
case DUNCE_CAP:
|
||||
if (uarmh && !uarmh->cursed) {
|
||||
@@ -427,14 +434,14 @@ Helmet_on(VOID_ARGS)
|
||||
? "like sitting in a corner"
|
||||
: "giddy");
|
||||
} else {
|
||||
/* [message moved to uchangealign()] */
|
||||
/* [message formerly given here moved to uchangealign()] */
|
||||
makeknown(HELM_OF_OPPOSITE_ALIGNMENT);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
impossible(unknown_type, c_helmet, uarmh->otyp);
|
||||
}
|
||||
/* uarmh could be zero due to uchangealign() */
|
||||
/* uarmh could be Null due to uchangealign() */
|
||||
if (uarmh)
|
||||
uarmh->known = 1; /* helmet's +/- evident because of status line AC */
|
||||
return 0;
|
||||
@@ -509,7 +516,8 @@ Gloves_on(VOID_ARGS)
|
||||
default:
|
||||
impossible(unknown_type, c_gloves, uarmg->otyp);
|
||||
}
|
||||
uarmg->known = 1; /* gloves' +/- evident because of status line AC */
|
||||
if (uarmg) /* no known instance of !uarmg here but play it safe */
|
||||
uarmg->known = 1; /* gloves' +/- evident because of status line AC */
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -608,7 +616,8 @@ Shield_on(VOID_ARGS)
|
||||
default:
|
||||
impossible(unknown_type, c_shield, uarms->otyp);
|
||||
}
|
||||
uarms->known = 1; /* shield's +/- evident because of status line AC */
|
||||
if (uarms) /* no known instance of !uarmgs here but play it safe */
|
||||
uarms->known = 1; /* shield's +/- evident because of status line AC */
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -648,7 +657,8 @@ Shirt_on(VOID_ARGS)
|
||||
default:
|
||||
impossible(unknown_type, c_shirt, uarmu->otyp);
|
||||
}
|
||||
uarmu->known = 1; /* shirt's +/- evident because of status line AC */
|
||||
if (uarmu) /* no known instances of !uarmu here but play it safe */
|
||||
uarmu->known = 1; /* shirt's +/- evident because of status line AC */
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -680,7 +690,8 @@ Armor_on(VOID_ARGS)
|
||||
* suits are set up as intrinsics (actually 'extrinsics') by setworn()
|
||||
* which is called by armor_or_accessory_on() before Armor_on().
|
||||
*/
|
||||
uarm->known = 1; /* suit's +/- evident because of status line AC */
|
||||
if (uarm) /* no known instances of !uarm here but play it safe */
|
||||
uarm->known = 1; /* suit's +/- evident because of status line AC */
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user