I’m in a conversation with Lucy. Next topic up is ask her why you are here…
The prompt ask her why you are here is the autoName for a QueryTopic…
My response, using TADS shorthand, is a why here and the response by the game is the non sequitur There’s no point trying to talk to a door. Say what? What door?
Well, the door in question is one of three doors at the apartment building entrance. The doors are door a, door b, and door c. In order to make it easy on the player, I’ve added a, b, and c to the vocab, so that when you say knock on door, the game says which door, you can say just a and the game will do the right thing…
[code]+ door300a: Door ->doorToLanding ‘door;to[prep] 300a a’
“The door is a plain wooden door with a brass
mail slot…etc.”
...
disambigName = 'door to 300a'
;
[/code]
That all works.
But now, some time after we’ve gone through the door, and a couple of rooms distant so the door is no longer in scope, we get into a conversation with Lucy, where a why here should be a valid command-line entry, but the library thinks a is a vocab word, and it thinks we’re trying to address the door. The library makes that association at line 253 in command.t…
[code] foreach (local role in predRoles)
{
/* get the NPMatch list for this role */
local matches = self.(role.objListProp);
/* get the list of names for this role's list of objects */
local names = Distinguisher.getNames(
matches.mapAll({ m: m.obj }), nil);[/code]
When I stop there on a breakpoint after entering the shorthand command, the names list consists of door300a. If I comment out the final a in the door’s vocab, the conversation is correctly handled, but then, of course, the door nomenclature is broken. Doesn’t matter if I leave the a/b/c at the end of the vocab string or move it to the noun portion (door a, door b, door c). Still doesn’t work, and the disambiguation syntax gets more clunky (Which door, the door a, the door b, or the door c?)
Can this be fixed, or do I have to choose one or the other, conversation or door, and compromise on how I name the other?
Jerry