Polymorphing into creature with horns such as a minotaur,
will cause your helmet to fall off if it is made of a hard material.
Only minotaurs pass the has_horns() test in include/mondata.h
because the complaint specifically referred to them, but that
should perhaps be reviewed at some point by someone who is
certain which creatures have horns growing from their
head (some demons?)
show correct gender in ^X display when polymorphed into non-humanoid form
for wizard and explore modes, skip second screen of ^X output when first
screen is cancelled by ESC
+polyself into minotaur causes hard headgear to fall off
Platform- and/or Interface-Specific Fixes
#define nolimbs(ptr) (((ptr)->mflags1 & M1_NOLIMBS) == M1_NOLIMBS)
#define notake(ptr) (((ptr)->mflags1 & M1_NOTAKE) != 0L)
#define has_head(ptr) (((ptr)->mflags1 & M1_NOHEAD) == 0L)
+#define has_horns(ptr) ((ptr) == &mons[PM_MINOTAUR])
#define is_whirly(ptr) ((ptr)->mlet == S_VORTEX || \
(ptr) == &mons[PM_AIR_ELEMENTAL])
#define is_silent(ptr) ((ptr)->msound == MS_SILENT)
}
#endif
}
+ if (has_horns(youmonst.data)) {
+ if ((otmp = uarmh) != 0) {
+ if (is_flimsy(otmp) && !donning(otmp)) {
+ char yourbuf[BUFSZ];
+ /* Future possiblities: This could damage/destroy helmet*/
+ Your("horns pierce through %s %s.", shk_your(yourbuf, otmp),
+ xname(otmp));
+ } else {
+ if (donning(otmp)) cancel_don();
+ Your("helmet falls to the %s!", surface(u.ux, u.uy));
+ (void) Helmet_off();
+ dropx(otmp);
+ }
+ }
+ }
if (nohands(youmonst.data) || verysmall(youmonst.data)) {
if ((otmp = uarmg) != 0) {
if (donning(otmp)) cancel_don();