Function the() wasn't supposed to be used for monsters because many of the ones with capitalized names confuse it, but over time multiple instances of the(mon_nam()) have crept into the code. Instead of ripping those out, modify the() to handle that situation better. Pull request #636 by entrez dealt with this with one extra line of code, but could end up scanning all the names in mons[] repeatedly if the("Capitalized string") gets called a lot. This uses a similar one line fix but calls a whole new routine that scans through mons[] once collecting all the relevant special case names. As a bonus, it does the same for hallucinatory monster names which name_to_mon() couldn't handle. Fixes #626
119 KiB
119 KiB