This one is interesting. The issue seems to be a big circular loop through various scope and parsing routines triggered by the use of “[somebody]
” in the grammar line. This creates a line in the parse_name()
routine:
w = ParseTokenStopped(ELEMENTARY_TT, CREATURE_TOKEN);
When trying to parse a command and deciding the scope:
- After processing compass directions,
SearchScope()
case(c.3)
attempts to add objects in the room to scope by callingScopeWithin(location, yourself)
. -
ScopeWithin()
begins to loop through unconcealed objects in the location, submitting each toDoScopeActionAndRecurse()
. - When the backdrop is reached via a call of
DoScopeActionAndRecurse(backdrop, yourself)
, the routine immediately callsDoScopeAction(backdrop)
. - Because the
scope_reason
isPARSING_REASON
,DoScopeAction()
callsMatchTextAgainstItem(backdrop)
. -
MatchTextAgainstItem()
callsTryGivenObject(backdrop, nothing)
. -
TryGivenObject()
notes that the backdrop has aparse_name()
routine and calls it. - During pass 2 of
backdrop.parse_name()
, the call toParseTokenStopped()
mentioned above is made. - The token-parsing machinery invokes
NounDomain()
to see what nouns are available to match. -
NounDomain()
makes a call toSearchScope(location, yourself)
, and it’s back to step 1.
The above is for 6M62. Does the issue persist in 10.1?