Message-ID: <3B6175E7.AB20C873@csi.com>
Date: Fri, 27 Jul 2001 10:08:39 -0400
From: John Colagioia <JColagioia@csi.com>
Organization: No Conspiracy Here...
X-Mailer: Mozilla 4.77 [en] (Win98; U)
X-Accept-Language: en,fr,ru,es,it,ga,de,ja,gd,eu
MIME-Version: 1.0
Newsgroups: rec.arts.int-fiction
Subject: Re: [Inform] indef_mode and attribute 'proper'
References: <GH2Hzu.6L7@world.std.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
NNTP-Posting-Host: 208.34.37.104
X-Original-NNTP-Posting-Host: 208.34.37.104
X-Trace: excalibur.gbmtech.net 996242455 208.34.37.104 (27 Jul 2001 10:00:55 EST)
Lines: 32
X-Authenticated-User: jnc
X-Original-NNTP-Posting-Host: 127.0.0.1
Path: news.duke.edu!newsgate.duke.edu!nntp-out.monmouth.com!newspeer.monmouth.com!newshub2.home.com!news.home.com!howland.erols.net!newsfeed.fast.net!uunet!dca.uu.net!ash.uu.net!excalibur.gbmtech.net
Xref: news.duke.edu rec.arts.int-fiction:90278

Sean T Barrett wrote:

> Goal:
>    I want to have an object which appears without articles,
>    but prints differently in definite and indefinite contexts.
>    (It's a character, I want last-name-only in definite context
>    and first-name last-name in indefinite contexts.)

[...]

> Is there anywhere else I can hook this?

This may just be me being rather naive (since I spent the last three days
fiddling with the grammar property to get it to recognize two-word
sentences, naivete wouldn't be out of character...), but can't you simply
Replace DefArt() and/or IndefArt() to recognize your special cases and
handle them separately?  Or, maybe less icky, write your own printing
routines that call (In)DefArt() for default cases?


> Does anyone know why
> indef_mode gets stomped to NULL? The DM mentions that it is
> necessary for the player object to be 'proper', so I don't know
> if maybe this is somehow used for that or what.

All I can tell you about this (from a quick read) is that indef_mode is
tested in PSN__(), but only to see if it is nonzero (in conjunction with
the existance of short_name_indef for the object), which NULL should be.
This looks like the proper behavior for things with the proper attribute
(always being Indefinite), and is probably done to keep things simple.


