Newsgroups: rec.arts.int-fiction
Path: nntp.gmd.de!Dortmund.Germany.EU.net!Germany.EU.net!EU.net!uunet!in1.uu.net!eskimo!roc
From: roc@eskimo.com (Mark Riel)
Subject: Re: "at the table" not "in"
X-Nntp-Posting-Host: eskimo.com
Message-ID: <DA0BoJ.5vw@eskimo.com>
Sender: usenet@eskimo.com (News User Id)
Organization: Eskimo North (206) For-Ever
References: <60.5696.4154.0N1E6298@canrem.com>
Date: Sun, 11 Jun 1995 11:53:07 GMT
Lines: 44

In article <60.5696.4154.0N1E6298@canrem.com>,
Tim Middleton <tim.middleton@canrem.com> wrote:
>Here is my next puzzling Inform programming quandary.
>
>If one declares an enterable object to be a container then when the player
>is in it the message "(in the object)" is given beside the location's short
>name. If it's a supporter then you get "(on the object)"... but how can you
>make Inform give you an "(at the object)" message.
>
>If you are wondering what on earth one might want "at the object" for
>consider the example of being "at the table" while eating dinner.
>Technically it's basically a container object like a chair. You want to be
>able to leave the table, exit the table, get up, stand up, etc etc...
>however the description of being "in" the table is no good <G>.
>
>I thought, at first, the way to do this would be to manually create a
>Short_Name routine the room which checks if the player is "in" the object,
>and then print out the appropriate short name message with parenthesis...
>but this is not the solution. Inform still tacks on it's own parenthesis at
>the end so I get something like:
>
>Dining Room (at the table) (in the table)
>
>Also it would be good to avoid the "Dining Room Table (which is empty)"
>message that might occur (not sure).
>
>The only thing I can find (so far) in the designer manual that seems
>remotely relavant to this problem is the "invent" routine showing how to
>change the short_name of a match to "lit match" or "unlit" match depending
>on it's state. This is not an inventory however.... is it?
>
>Maybe it is in some way? Maybe I'll give that a try just in case... gee,
>nice talking to you people... (-:
>
	The particular print you want to change is generated by the 
looksub in verblib.h. I would probably just add it. Make a new attribute 
called sittable (or whatever) and make looksub check this along with 'in' 
and 'on' (container,supporter). 
	Two days ago while looking through the manual I came across 
a routine to change the library default prints, I just again tried to find 
it, but could not. Maybe a more experienced informer could help you find 
a way without changing the verblib.h file.
-MRR

