&& !undiscovered_artifact(ART_EYES_OF_THE_OVERWORLD)))
#define pair_of(o) ((o)->otyp == LENSES || is_gloves(o) || is_boots(o))
+#define unpolyable(o) ((o)->otyp == WAN_POLYMORPH \
+ || (o)->otyp == SPE_POLYMORPH \
+ || (o)->otyp == POT_POLYMORPH)
+
/* achievement tracking; 3.6.x did this differently */
#define is_mines_prize(o) ((o)->o_id == g.context.achieveo.mines_prize_oid)
#define is_soko_prize(o) ((o)->o_id == g.context.achieveo.soko_prize_oid)
} else if (obj->otyp == POT_POLYMORPH || potion->otyp == POT_POLYMORPH) {
/* some objects can't be polymorphed */
if (obj->otyp == potion->otyp /* both POT_POLY */
- || obj->otyp == WAN_POLYMORPH || obj->otyp == SPE_POLYMORPH
+ || unpolyable(obj)
|| obj == uball || obj == uskin
|| obj_resists(obj->otyp == POT_POLYMORPH ? potion : obj,
5, 95)) {
switch (otmp->otyp) {
case WAN_POLYMORPH:
case SPE_POLYMORPH:
- if (obj->otyp == WAN_POLYMORPH || obj->otyp == SPE_POLYMORPH
- || obj->otyp == POT_POLYMORPH || obj_resists(obj, 5, 95)) {
+ if (unpolyable(obj) || obj_resists(obj, 5, 95)) {
res = 0;
break;
}