The following piece of code shows a problem where Inform being helpful actually spoils something for the player. I don’t want the player to know about Big A before he finds Big A, but Inform shows its disambiguation right away. (Ok, they could figure that from my own error message, but the important thing is, I want to zap the parentheses in the test case below.)
[code]“Big A” by Andrew Schultz
room 1 is a room. room 2 is east of room 1. room 3 is east of room 2. Big A is a person in room 2. Big Bob is a person in room 3.
recalling is an action applying to one visible thing. understand “recall [any thing]” as recalling. does the player mean recalling Big A: it is likely.
carry out recalling:
if location of noun is unvisited:
say “I have no idea what you’re talking about.” instead;
otherwise:
say “You get your Proust on. Or Prizzoust, if you’re funky like that. Sorry, dat.”;
say “[description of noun]”;
if noun is big a:
say “But, oh, by the way…did you see ‘(Big A)’ when you recalled Big A?”;
say “I have no idea what you’re talking about.” instead;
description of Big A is “Full of awesomeness and as good-looking as ever.”. description of player is “As good-looking as ever, but not quite as good-looking as Big A.”. description of Big Bob is “Nowhere near as good-looking as Big A.”
test a with “recall a time far in the past/recall a/recall big a/recall big bob/recall bob/recall big”[/code]
Is the only solution here to make Big A privately-named, then use Eric Eve’s Epistemology (or something like it) to say:
(understand “Big A” as big-a if big-a is known)? Or is there a way to work into the parser to hide the parenthetical disambiguation for certain things?
Also, is there any way to detect keywords that expose this sort of disambiguation spoiler from the i6/i7 source? For instance, Bob doesn’t trip things, but Big A does. Testing shows other common words do & I’m wondering where I could check for myself. Standard rules didn’t turn much up and I don’t understand much of the reserved i6t files.