Overriding defaults & Story idea

Hey everyone, I’ll post my main question(s) first for anyone that doesn’t feel like reading the supplemental info below the code.

These are fairly simple things I think, but they are difficult to find in the documentation because I’m not sure what to look for. The first thing I want to do is remove the default operation of telling what’s in a room, or its description, especially when it has a certain property (i.e. it is a “mind room” in my case). Second, using the same scenario, how do I make it so an examine action (or any action for that matter) does not automatically target a thing in the room, or at least require a noun? Below is the relevant output. Note: I have touch understood as examine, which produces a weird way of touch requiring a noun, but then examine produces text meant to be incorporated into an “Instead” activity meant for touching, thus giving the funky output below, but that’s kind of irrelevant.

Tester Room
You can see a fluorescent light here.

(the fluorescent light)
the lightly heard electric buzzing grow heavier as I press on it. The plastic cover protecting the light seems to be loose on one edge

touch light
(the fluorescent light)
“As I touch the fluorescent light, I can feel the lightly heard electric buzzing grow heavier as I press on it. The plastic cover protecting the light seems to be loose on one edge.”[/code]
Background: This is my first piece of IF and I’m doing it for a “Writing for Interactive Media” class. The idea for the story is that the player is a therapeutic hypnotist analyzing a blind patient (Basir) who is one of several survivors of a mass kidnapping. Since all the victims were blindfolded, the patient, having enhanced senses due to his blindness, is the only one capable of producing enough sensory detail to help out the investigating party. The IF progresses as a player asks Basir to describe his surroundings using all senses except sight.

[rant]While I enjoy the challenge, having such a plan for the story has turned out to be a fairly difficult to program IF for me, having to basically speed-learn the syntax and such. I have programming experience with languages such as C#, JavaScript, and PHP but it just seems strangely difficult to wrap my head around I7 for some reason. The whole “natural language” thing almost confuses me more than traditional programing. Has anyone else experienced this?

It’s just darn difficult to find answers in the documentation when I don’t even know what to look for, without looking at many examples and using pieces from those. I’ve had to implement things like feeling or tasting a room in what I can only guess to be a “hacky” way, but at least they work for now. Maybe I’ll post it later on if anyone is willing to give feedback.[/rant]
Thanks for any help, I’d appreciate it. :wink:

I don’t know much about it, but I believe the Room Description Control extension may help you with room descriptions.

I’m not exactly sure if you want “touch” and “examine” to be identical, but if you do, this would work pretty well:

Instead of touching something, try examining the noun.

You might want to use one of the Custom Library Messages extensions if you’re not happy with the use of “see” in library messages. They can also help you put library messages in first person.

I know there are a few blind authors on raif, but I’m not sure if they’re all here. Some of them have been known to offer advice on writing blind characters in IF, so you might consider posting your questions there as well.

You can prevent Inform from hazarding any guesses as to what the player may want to examine in a mind room by this line:

Does the player mean examining something in a mind room: it is very unlikely.

First off, see the specification for the looking action in Index''->Actions’’->Standard actions concerning the actor's vision''->Looking.’’ That will tell you how room descriptions are created, and it should give you an idea on how to suppress them.

As far as not supplying a noun automatically, I’m afraid that

Does the player mean examining something in a mind room: it is very unlikely.

won’t do the trick; Inform will still pick some object, even if it has to go with an unlikely alternative. Instead, read Writing with Inform, Section 17.30. I will note that you will need nounless forms of your commands, so if you have

Understand the commands "examine" and "x" as something new. Understand "examine [something]" and "x [something]" as touching.
be sure to also have

Understand "touch" and "examine" and "x" as touching.

so that the parser knows that you’re prepared to take responsibility for filling in (or not filling in) a missing noun.

Maybe I misunderstood jfreehill’s problem.
But if the problem is that you have a room with only one thing in it and the player types X and you don’t want Inform automatically to examine that thing for him, then Does the player mean examining something: it is very unlikely. will prevent Inform from doing that – or it would as late as build 6E72. (The same goes/went for “it is unlikely”, but not for “possible”, “likely” or “very likely”.) Instead the player is/was asked what he wants to examine.

As for preventing Inform from telling what is in a mind room:
If you want no objects in a room to be described at all –– printing neither “initial appearances” (if they have any) nor the “You can also see”-paragraph nor listing things on supporters in the room --, I suppose you could do it thus:

For printing a locale paragraph about a thing (called the item) in a mind room: now the item is mentioned.

In effect that tells Inform that it has already mentioned each thing in the mind room and need not bother doing it again.
(There are lots of Inform activities going on when it comes to printing the contents of a room, however, and I certainly won’t swear that this simple solution doesn’t introduce any bugs anywhere. It might be worth a try, though.)

Felix is right about the ``it is very unlikely’’ line. I must have messed up when I tested it. Sorry.