Allowed to name a scene via "(called ...)" notation?

I’m trying to set up something for convenience:

A scene can be frobby.

Every turn during a frobby scene (called situation):
	showme situation.

In 10.1.2, the compiler complains that it can’t understand the meaning of “situation” in the phrase showme situation; but will compile without complaint if some other statement is in its place, like say "Frobby scene playing."

In 6M62, I get an internal error referencing “inform7/Chapter 20/Descriptions.w”.

Is assigning a scene to a local variable using the (called ...) disallowed, or is this a bug?

It turns out that that doesn’t make sense. If there are two frobby scenes running, your rule will only run once per turn. The rule condition is effectively “if any frobby scene is running”, so you can’t name “the” scene.

If you know there’s only one, you could say

	let S be a random frobby happening scene;

I would think the limitation here is “not allowed to used called in a during clause”, which makes sense considering what @zarf said. So it’s not specifically that it’s a scene. Using called for a scene somewhere else should be fine.

1 Like

But can’t you do:

Every turn while the player carries a container (called the item):

Which will pick an arbitrary carried container if there are multiple?

1 Like

I see what you mean, zarf, but I was expecting behavior in line with the pattern mentioned by Draconis.

I wasn’t thinking of any particular limitation being imposed by the assignment being within a during clause, though I guess that makes sense. That would mean it’s arguably a bug to allow compilation instead of throwing a Problem message, though.

The same sort of logic seems to work fine if the (called ...) construction is used outside of a during clause as suggested by Celtic_Minstrel:

Every turn when a frobby scene (called situation) is happening:
	showme situation.

As zarf points out, a different structure is needed to handle multiple qualifying scenes happening at the same time.

I’m not convinced it is, honestly. “Called” picking an arbitrary member of the set is pretty standard behavior when it comes to anything except scenes, isn’t it?

Yes, and that’s what the revised version does, too, but what I meant by “handle” in that sentence was to take some action on every applicable scene. If there are multiple scenes of that type happening at the same time, then as zarf notes only the one arbitrarily chosen will be processed.

In my case I’m only expecting one frobby scene at a time.

It might help to make clear that the original example:

Every turn during a frobby scene:

…seems to be handled as a special case. It’s different from otisdog’s example:

Every turn when a frobby scene (called situation) is happening:

…which is a normal description (of scenes) and can thus use the “called” machinery.

1 Like