monsters could end up off the left side of the Ranger quest start level
worms don't have scales, krakens have tentacles, stalkers have a head
you no longer "fry to a crisp" as a water elemental
+leather spellbooks violate vegetarian conduct
Platform- and/or Interface-Specific Fixes
STATIC_DCL const char *FDECL(foodword, (struct obj *));
STATIC_DCL int FDECL(tin_variety, (struct obj *,BOOLEAN_P));
STATIC_DCL boolean FDECL(maybe_cannibal, (int,BOOLEAN_P));
+STATIC_DCL boolean FDECL(leather_cover, (struct obj *));
char msgbuf[BUFSZ];
return;
}
+STATIC_OVL boolean
+leather_cover(otmp)
+struct obj *otmp;
+{
+ const char *odesc = OBJ_DESCR(objects[otmp->otyp]);
+ if (odesc && (otmp->oclass == SPBOOK_CLASS)) {
+ if (!strcmp(odesc, "leather"))
+ return TRUE;
+ }
+ return FALSE;
+}
+
/*
* return 0 if the food was not dangerous.
* return 1 if the food was dangerous and you chose to stop.
if (!u.uconduct.unvegan &&
((material == LEATHER || material == BONE ||
material == DRAGON_HIDE || material == WAX) ||
+ (leather_cover(otmp)) ||
(cadaver && !vegan(&mons[mnum])))) {
Sprintf(buf, "%s foul and unfamiliar to you. %s",
foodsmell, eat_it_anyway);
if (!u.uconduct.unvegetarian &&
((material == LEATHER || material == BONE ||
material == DRAGON_HIDE) ||
+ (leather_cover(otmp)) ||
(cadaver && !vegetarian(&mons[mnum])))) {
Sprintf(buf, "%s unfamiliar to you. %s",
foodsmell, eat_it_anyway);
material = objects[otmp->otyp].oc_material;
if (material == LEATHER ||
- material == BONE || material == DRAGON_HIDE) {
+ material == BONE || material == DRAGON_HIDE ||
+ leather_cover(otmp)) {
u.uconduct.unvegan++;
violated_vegetarian();
} else if (material == WAX)