Newsgroups: rec.arts.int-fiction
Path: news.duke.edu!newsgate.duke.edu!nntp-out.monmouth.com!newspeer.monmouth.com!howland.erols.net!newsfeed.fast.net!uunet!dca.uu.net!ash.uu.net!world!buzzard
From: buzzard@world.std.com (Sean T Barrett)
Subject: Re: [Inform] indef_mode and attribute 'proper'
Message-ID: <GH5AGC.E6y@world.std.com>
Date: Fri, 27 Jul 2001 18:38:33 GMT
References: <GH2Hzu.6L7@world.std.com> <3B6175E7.AB20C873@csi.com>
Organization: The World Public Access UNIX, Brookline, MA
Lines: 43
Xref: news.duke.edu rec.arts.int-fiction:90286

John Colagioia  <JColagioia@csi.com> wrote:
>Sean T. Barrett wrote:
>> 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.

Please define "should be"?

parserm.h:
   Constant NULL = $ffff;

This is why it seems odd that it's being set to NULL.

My point is that, yes, I can just go replace defart etc.
to do what I want--to make proper leave 'indef_mode' in
the right state so I can use it--but I don't know what
other consequences that might have, since, for example,
I don't know why it was being stomped to NULL in the first
place--one imagines it was for a reason.  And if I change
it and everything *looks* ok, that doesn't mean I might
not have broken some other feature somewhere in the libray,
one that I'll never notice but some player might.

>This looks like the proper behavior for things with the proper attribute
>(always being Indefinite), and is probably done to keep things simple.

Yes, I can see the mentality that says "proper names
are always used definitely"--which setting indef_mode to false would
accomplish--but in practical terms, there's no reason to do
it. If you're calling a short_name function on a proper
object, if that object "always seems to be definite"
it can take care of that in its short name; there's no
reason to hide the context-in-which-it-was-called.
Nothing is made simpler by setting it that way. (And,
indeed, it even seems to be a bug that it's set to NULL,
or at least that short_name_indef is called.)

SeanB
