dragon armor fix

Fix a segfault when polymorphed into a dragon and using ^X.

One inconsistency I've spotted that I hadn't noticed earlier:  if
you wear red dragon scales/mail you obtain infravision ability, but
if polymorph into a red dragon, you don't.
This commit is contained in:
PatR
2021-12-25 14:31:33 -08:00
parent 439b6b7779
commit c4724fd271
2 changed files with 3 additions and 1 deletions

View File

@@ -67,7 +67,7 @@
#define HSick_resistance u.uprops[SICK_RES].intrinsic
#define ESick_resistance u.uprops[SICK_RES].extrinsic
#define Sick_resistance (HSick_resistance || ESick_resistance \
|| defends(AD_DISE, uwep))
|| defended(&g.youmonst, AD_DISE))
/* Intrinsics only */
#define Invulnerable u.uprops[INVULNERABLE].intrinsic /* [Tom] */

View File

@@ -396,6 +396,8 @@ defends(int adtyp, struct obj *otmp)
{
struct artifact *weap;
if (!otmp)
return FALSE;
if ((weap = get_artifact(otmp)) != 0)
return (boolean) (weap->defn.adtyp == adtyp);
if (Is_dragon_armor(otmp)) {