Why is 'about' weird?

The behavior of the following is strange to me:

quizzing is an action applying to one topic.
Understand "tell me about[text]" as quizzing.
Understand "tell me[text]" as quizzing.
Understand "tell about[text]" as quizzing.

When carrying out the action, the Understand "tell me about[text]" as quizzing appears to be intercepted by higher precedence rules, but ‘about’ doesn’t seem to hold any special place in the documentation (the other ones work fine, which makes this stranger still). Using the RULES command, I see that the rule “telling yourself rule” applies, but disabling it just cascades to other rules of higher precedence anyway. Is there a clean way out of this?

In case the above isn’t clear, the two statements that work result in the correct ‘Carry out’ sequence; the one that does not work results in “You talk to yourself a while” and never executes the ‘Carry out’ section.

2 Likes

You’re running into the fact that “tell [someone] about [text]” already exists in the standard rules as the Telling It About action (you can check this with the ACTIONS testing command). There are various ways to deal with this, but the simplest is probably to just redirect the action to your new quizzing action – so do this instead of that Understand statement:

Instead of telling the player about something, try quizzing the topic understood.

(That’s assuming that you really just want “me” to work – if you want quizzing to fire for other characters too, e.g. TELL ARTHUR ABOUT THE DEFENESTRATION OF PRAGUE, substitute “someone” for “the player”).

Hope this helps!

EDIT: by the way, @otistdog pulled together a very helpful reference chart where you can look up actions by command, or commands by action – the info is also in the index, but this might be an easier reference.

3 Likes

Excellent solution, thank you!
That reference will certainly come in handy. Crazy thought: As I’m still new to this, I find myself puzzling over which words are significant to the compiler (e.g., already used/key/reserved words) and which are just an uninteresting string of chars I use for identifiers, etc. It makes me mistrust, with good reason, my own mental parsing abilities. If only Inform had a mode where significant words were at least highlighted in the source…

2 Likes

Sadly Inform syntax highlighting is a very difficult task, because many of the things it recognizes aren’t words but phrases. But you can see the names it cares about in the Index panel of the IDE. Things like “talking about” will be found under the Actions tab (actions the player can perform in the world), while most of the other syntax will be in Phrasebook (functions the programmer can use).

5 Likes