genociding mindflayers
When looking at name_to_mon() to teach it how to cope with possessive
suffices, I discovered that it already knows how. But while looking at
it, I remembered a newsgroup complaint from a while back by someone who
accidentally committed suicide by attempting to genocide "master mindflayers"
(when he meant "master mind flayers"). name_to_mon() didn't recognize that
misspelling but it did match "master" as a role title. Unfortunately for
the player, his character was a monk; the game allowed him to genocide his
own role and he died. That's kind of harsh for such a likely misspelling.
(I don't think a monk is very likely to ever use "master thief" as a mistake
for "master of thieves", but catch that one too just in case. Conversely,
recognize "master of assassins" as an alternate for "master assassin".)
Also, wishing for "the <something>" strips off "the" and finds (or not)
<something>, but genociding didn't. You could specify "a wolf" to wipe out
all wolves, but "the wolf" yielded "such creatures don't exist", and ^G had
similar unfriendly behavior. This extends name_to_mon() to handle it.
This commit is contained in:
@@ -174,6 +174,7 @@ Call command could be used to remotely identify which high priest is which
|
||||
large amorphous, whirly, noncorporeal, or slithy creatures can fit through
|
||||
tight diagonal gaps despite their size
|
||||
avoid "You summoned it!" for unseen monster produced by same-race offering
|
||||
recognize "mindflayer" as an alternative spelling for "mind flayer"
|
||||
|
||||
|
||||
Platform- and/or Interface-Specific Fixes
|
||||
|
||||
@@ -517,6 +517,7 @@ const char *in_str;
|
||||
|
||||
if (!strncmp(str, "a ", 2)) str += 2;
|
||||
else if (!strncmp(str, "an ", 3)) str += 3;
|
||||
else if (!strncmp(str, "the ", 4)) str += 4;
|
||||
|
||||
slen = strlen(str);
|
||||
term = str + slen;
|
||||
@@ -542,6 +543,14 @@ const char *in_str;
|
||||
{ "grey unicorn", PM_GRAY_UNICORN },
|
||||
{ "grey ooze", PM_GRAY_OOZE },
|
||||
{ "gray-elf", PM_GREY_ELF },
|
||||
{ "mindflayer", PM_MIND_FLAYER },
|
||||
{ "master mindflayer", PM_MASTER_MIND_FLAYER },
|
||||
/* Inappropriate singularization by -ves check above */
|
||||
{ "master of thief", PM_MASTER_OF_THIEVES },
|
||||
/* Potential misspellings where we want to avoid falling back
|
||||
to the rank title prefix (input has been singularized) */
|
||||
{ "master thief", PM_MASTER_OF_THIEVES },
|
||||
{ "master of assassin", PM_MASTER_ASSASSIN },
|
||||
/* Hyphenated names */
|
||||
{ "ki rin", PM_KI_RIN },
|
||||
{ "uruk hai", PM_URUK_HAI },
|
||||
@@ -568,8 +577,6 @@ const char *in_str;
|
||||
{ "djinn", PM_DJINNI },
|
||||
{ "mumakil", PM_MUMAK },
|
||||
{ "erinyes", PM_ERINYS },
|
||||
/* falsely caught by -ves check above */
|
||||
{ "master of thief", PM_MASTER_OF_THIEVES },
|
||||
/* end of list */
|
||||
{ 0, 0 }
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user