data.base lookup bit
When testing the change to the Eyes of the Overworld wording and asking for information about inventory item k - a pair of lenses named The Eyes of the Overworld I got "I don't have any information on those things". Not because that item wasn't identified, but because the lookup was for "pair of lenses" (finding nothing) and then for "The Eyes of the Overworld" (and not finding it due to "The" which is stripped from the first attempt but wasn't from the second nor present in the data.base key).
This commit is contained in:
12
src/pager.c
12
src/pager.c
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.6 pager.c $NHDT-Date: 1545129848 2018/12/18 10:44:08 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.142 $ */
|
||||
/* NetHack 3.6 pager.c $NHDT-Date: 1545361111 2018/12/21 02:58:31 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.143 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Robert Patrick Rankin, 2018. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -576,6 +576,8 @@ char *supplemental_name;
|
||||
if (*dbase_str == ' ')
|
||||
++dbase_str;
|
||||
}
|
||||
if (!strncmp(dbase_str, "pair of ", 8))
|
||||
dbase_str += 8;
|
||||
if (!strncmp(dbase_str, "tame ", 5))
|
||||
dbase_str += 5;
|
||||
else if (!strncmp(dbase_str, "peaceful ", 9))
|
||||
@@ -640,6 +642,14 @@ char *supplemental_name;
|
||||
ep = strstri(dbase_str, ", ");
|
||||
if (ep && ep > dbase_str)
|
||||
*ep = '\0';
|
||||
/* remove article from 'alt' name ("a pair of lenses named
|
||||
The Eyes of the Overworld" simplified above to "lenses named
|
||||
The Eyes of the Overworld", now reduced to "The Eyes of the
|
||||
Overworld", skip "The" as with base name processing) */
|
||||
if (!strncmpi(alt, "a ", 2)
|
||||
|| !strncmpi(alt, "an ", 3)
|
||||
|| !strncmpi(alt, "the ", 4))
|
||||
alt = index(alt, ' ') + 1;
|
||||
/* remove charges or "(lit)" or wizmode "(N aum)" */
|
||||
if ((ep = strstri(dbase_str, " (")) != 0 && ep > dbase_str)
|
||||
*ep = '\0';
|
||||
|
||||
Reference in New Issue
Block a user