I'm probably the only one, but I never liked that spellbooks can have four different names for a given spell. While I appreciate having different types of spell books for flavor, I thought it would make more sense to have the name be based on the level of the spell. I figured it couldn't be too hard to implement, so I did it--see the patch below. So, is this a good thing? --PC --- readable.c.orig Fri Mar 23 17:21:02 2001 +++ readable.c Fri Mar 23 17:14:46 2001 @@ -425,22 +425,20 @@ static char *mage_book_name[] = { - "grimoire", - "grimoire", - "grimoire", - "manual", - "tome", - "treatise" + "grimoire", /* Level 1 */ + "grimoire", /* Level 2-3 */ + "manual", /* Level 4-5 */ + "tome", /* Level 6-7 */ + "treatise" /* Level 8+ */ }; static char *priest_book_name[] = { - "hymnal", - "prayerbook", - "prayerbook", - "prayerbook", - "sacred text", - "testiment" + "hymnal", /* Level 1 */ + "prayerbook", /* Level 2-3 */ + "prayerbook", /* Level 4-5 */ + "sacred text", /* Level 6-7 */ + "testiment" /* Level 8+ */ }; static int max_titles[6] = @@ -1131,13 +1129,20 @@ case SPELLBOOK: /* depends on mage/clerical */ if (!strcmp (book->arch->name, "cleric_book")) { + int level; + level=spells[book->stats.sp].level; nbr = sizeof (priest_book_name) / sizeof (char *); - strcpy (name, priest_book_name[RANDOM () % nbr]); + if (level>nbr*2-1) level=nbr*2-1; + strcpy (name, priest_book_name[level/2]); } else { + int level; + + level=spells[book->stats.sp].level; nbr = sizeof (mage_book_name) / sizeof (char *); - strcpy (name, mage_book_name[RANDOM () % nbr]); + if (level>nbr*2-1) level=nbr*2-1; + strcpy (name, mage_book_name[level/2]); } if (book->name) free_string (book->name);