Parts of the Actor or Player not Compiling

I’m encountering some strange behavior whenever I refer to something which is a part of the player with “the player’s x”, or something which is a part of an actor with “the actor’s x”. Properties I set for things incorporated by the player don’t seem to compile, and if I write a rule which involves the player’s X, it never applies. Same for the actor, even when I check if the actor incorporates the noun first.

This code demonstrates the problem:


"Oculus Thrift"

Observitory is a room.

Kim is a woman. She is here.
Cal is a man. He is here.
A mirror is here.

Hallway is south of Observitory.

A pair of eyes is a kind of thing.
One pair of eyes is part of every person.

The description of Cal's pair of eyes is "He has blue eyes."

The description of Kim's pair of eyes is "Her eyes are gray."

The description of the player's pair of eyes is "You can't see them at the moment, but you know they are yellow." [ property is never set. ]

Before examining the player's pair of eyes:
	say "***Testing***: Examining the player's eyes now." [ rule never applies. ]

Carry out examining the player's pair of eyes when the mirror is visible:
	say "You see your own yellow eyes looking back at you." [rule never applies. ]

After examining Kim's pair of eyes for the first time:
	say "Kim raises an eyebrow at you. 'What are you looking at?' She asks."

Test me with "x Cal's eyes / x my eyes / s / x my eyes / n / x Kim's eyes".

Output:


Observitory
You can see Kim, Cal and a mirror here.

>test me
(Testing.)

>[1] x cal's eyes
He has blue eyes.

>[2] x my eyes
You see nothing special about your pair of eyes.

>[3] s

Hallway

>[4] x my eyes
You see nothing special about your pair of eyes.

>[5] n

Observitory
You can see Kim, Cal and a mirror here.

>[6] x kim's eyes
Her eyes are gray.

Kim raises an eyebrow at you. "What are you looking at?" She asks.

The showme command says that everyone else’s eyes have a description, but the player’s eyes do not. Am I just using the incorrect syntax, or misunderstanding the examples? I’ve read the sections of the recipe book which deal with body parts and clothing, and this is how they seem to do it.

If you check the index → contents, you can see this code creates both a “your pair of eyes” and a “player’s pair of eyes” – the latter is what you’re pegging your descriptions and rules to, but it’s the former that’s a part of the player, as you can test by SHOWMEing the two pairs.

I confess that I am not 100% sure why Inform interprets things this way – the “yourself” object is somewhat mysterious – but at least this should be an easy fix: just change all the “the player’s pair of eyes” to “your pair of eyes” and you should be good!

2 Likes

That is kinda strange. Thanks Mike.

1 Like

The >TREE debugging command is also potentially of use for spotting this type of error; all created pairs of eyes are visible in the output. (Unfortunately, the output of this command is rooted in the I6 object tree and not the I7 incorporation relation, so it doesn’t show the eyes as subitems of the people to whom they belong. Instead, they are listed at the end.)

The shortest output useful for identifying the root cause might be from >SHOWME EYES, which yields the clarification question:

Which do you mean, your pair of eyes, Kim's pair of eyes, Cal's pair of eyes or the player's pair of eyes?
1 Like