While clause for activities on values

This compiles but doesn’t do the Right Thing (specifically, the showme gives nothing instead of yourself):

[code]Considering something is an activity on things.

After printing the name of something while considering a thing (called X):
Say paragraph break;
Showme X.

Before looking:
Begin the considering activity with the player;
If handling the considering activity with the player:
Say “Handling it!”;
Say the player;
Say “Handled!”;
End the considering activity with the player.[/code]

This won’t compile at all:

[code]Considering something is an activity on scenes.

After printing the name of something while considering a scene (called X):
Say paragraph break;
Showme X.

Before looking:
Begin the considering activity with the entire game;
If handling the considering activity with the entire game:
Say “Handling it!”;
Say the player;
Say “Handled!”;
End the considering activity with the entire game.[/code]

Is this supposed to work? If not, how can I achieve the same effect? Or am I just missing something incredibly obvious?

Looks like two bugs here. The obvious one is that X isn’t being set, and either the compiler should reject the code or compile it to do so. Another is in the implicit test that the object being considered is a thing—that test is being applied to the something whose name is being printed, which need not be the something under considerations. I don’t see either in Mantis, so if you could file a couple new reports, that would be great.

Unfortunately, I’m not coming up with any simple workarounds, but here’s a moderately clean one:[code]There is a room.

Considering something is an activity on things.

The object of consideration is an object that varies.
The considering activity has an object called the displaced object of consideration.

Before considering something (called X):
now the displaced object of consideration is the object of consideration;
now the object of consideration is X.
After considering something:
now the object of consideration is the displaced object of consideration.

After printing the name of something while the considering activity is going on and the object of consideration is a thing:
say paragraph break;
showme the printed name of the object of consideration.

Before looking:
begin the considering activity with the player;
if handling the considering activity with the player:
say “Handling it!”;
say the player;
say “Handled!”;
end the considering activity with the player.[/code]
Note that I changed the showme to show the printed name and avoid an infinite loop.

I would note that the more subtle issue also pops up if there is not “something” in the after rule:

After listing contents while considering a scene (called X): Say paragraph break; Showme X.

In other words, it’s not mixing the type checking up with the something, it’s pulling it out of thin air.

EDIT: Issues reported as 884 and 885 in Mantis.

Erm, I got that diagnosis wrong; printing the name is an activity on things, and the kind check I was looking at was coming from there. Sorry about that.

Edit: I’ve changed report 884 accordingly. Let me know if it doesn’t look okay.

884 is good. Its example is possibly slightly more elaborate than it should be. Right now the “leftmost” activity is “printing the name of something”, but maybe we could use something simpler such as “Printing a refusal to act in the dark” (since that doesn’t have a basis). But I’m nitpicking. It’s fine as it is.