MantisBT - Core Inform
View Issue Details
0002063Core InformPropertiespublic2018-07-14 20:512018-07-16 17:18
x64 based intel pcWindows 10 Pro10.0.17134
(serious/mild) Game compiles but misbehaves
0002063: Privately Named object appears when no object specified
When the parser chooses an object in the room, it can choose a privately-named object. This is equivalent to the player accessing it directly. I don't think it should be able to do that.
This issue appears when running an example from the Inform7 recipe book. The example is 0000201 "Puff of Orange Smoke". Simply run the "test me" and then enter the x command. The system reports (the worldview) which is a privately-named backdrop. It then says, "There is nothing special about the worldview."

This Inform7 code will reproduce it though:
Bedroom is a room.
The worldview is a privately-named backdrop. It is everywhere.


(the worldview)
You see nothing special about the worldview.

>x worldview
You can't see any such thing.
I apologize if I am putting this in the wrong place. It is my belief that it is a bug somewhere, but I don't know where.
No tags attached.
Issue History
2018-07-14 20:51CJGidmanNew Issue
2018-07-14 22:57zarfNote Added: 0004786
2018-07-16 17:18CJGidmanNote Added: 0004787

2018-07-14 22:57   
I think what you're saying is that an object with no name values should not be selected as a disambiguation assumption.

(Privately-named is only relevant here because a publicly-named object always has at least one name value.)

I understand where you're coming from, but I don't think this is possible in general. The parser can't really tell when an object is un-referrable-to.

For example, you could have an object which has "Understand as... when..." or "Understand property as referring to..." lines. This would be referrable-to by an ordinary typed command even though it is privately-named.

My advice is: privately-named doesn't do what you want. If you don't want the player to refer to an object, don't put it in the room.
2018-07-16 17:18   
I understand, and I guess I don't really have much of a stake in this. None of my projects use it. I just stumbled on it while exploring the manual. The example I cited, "Puff of Orange Smoke", comes from the Inform 7 documentation. Perhaps the example should be adjusted then? Here is the full definition from the object copied from the example:
The worldview is a privately-named backdrop. It is everywhere. The spirit-world is a privately-named transparent closed unopenable container. It is part of the worldview.
The mechanism puts dead people in the spirit-world container while leaving their corpses lying around. Since worldview is a backdrop, you can always refer to the real person, because they are visible.

By messing around, I found that the parser can be helped along with this line:
Does the player mean doing something to the worldview: it is very unlikely.
So, I'll say no more about this.