-/* NetHack 3.6 objects.c $NHDT-Date: 1447313395 2015/11/12 07:29:55 $ $NHDT-Branch: master $:$NHDT-Revision: 1.49 $ */
+/* NetHack 3.6 objects.c $NHDT-Date: 1535422421 2018/08/28 02:13:41 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.51 $ */
/* Copyright (c) Mike Threepoint, 1989. */
/* NetHack may be freely redistributed. See license for details. */
#undef SCROLL
/* spellbooks ... */
-/* expanding beyond 52 spells would require changes in spellcasting
- or imposition of a limit on number of spells hero can know because
- they are currently assigned successive letters, a-zA-Z, when learned */
+ /* Expanding beyond 52 spells would require changes in spellcasting
+ * or imposition of a limit on number of spells hero can know because
+ * they are currently assigned successive letters, a-zA-Z, when learned.
+ * [The existing spell sorting capability could conceivably be extended
+ * to enable moving spells from beyond Z to within it, bumping others
+ * out in the process, allowing more than 52 spells be known but keeping
+ * only 52 be castable at any given time.]
+ */
#define SPELL(name,desc,sub,prob,delay,level,mgc,dir,color) \
OBJECT(OBJ(name, desc), \
BITS(0, 0, 0, 0, mgc, 0, 0, 0, 0, 0, dir, sub, PAPER), \
0, SPBOOK_CLASS, prob, delay, 50, level * 100, \
0, 0, 0, level, 20, color)
+/* Spellbook description normally refers to book covers (primarily color).
+ Parchment and vellum would never be used for such, but rather than
+ eliminate those, finagle their definitions to refer to the pages
+ rather than the cover. They are made from animal skin (typically of
+ a goat or sheep) and books using them for pages generally need heavy
+ covers with straps or clamps to tightly close the book in order to
+ keep the pages flat. (However, a wooden cover might itself be covered
+ by a sheet of parchment, making this become less of an exception. Also,
+ changing the internal composition from paper to leather makes eating a
+ parchment or vellum spellbook break vegetarian conduct, as it should.) */
+#define PAPER LEATHER /* override enum for use in SPELL() expansion */
SPELL("dig", "parchment",
- P_MATTER_SPELL, 20, 6, 5, 1, RAY, HI_PAPER),
+ P_MATTER_SPELL, 20, 6, 5, 1, RAY, HI_LEATHER),
SPELL("magic missile", "vellum",
- P_ATTACK_SPELL, 45, 2, 2, 1, RAY, HI_PAPER),
+ P_ATTACK_SPELL, 45, 2, 2, 1, RAY, HI_LEATHER),
+#undef PAPER /* revert to normal material */
SPELL("fireball", "ragged",
P_ATTACK_SPELL, 20, 4, 4, 1, RAY, HI_PAPER),
SPELL("cone of cold", "dog eared",