Newsgroups: rec.arts.int-fiction
Path: nntp.gmd.de!news.rwth-aachen.de!news.rhrz.uni-bonn.de!news.uni-stuttgart.de!uni-regensburg.de!lrz-muenchen.de!informatik.tu-muenchen.de!Germany.EU.net!howland.reston.ans.net!ix.netcom.com!netcom.com!monolith
From: monolith@netcom.com (Mon O'Lith)
Subject: Re: Inform 6 request
Message-ID: <monolithDpHCy9.H06@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <0lKW2jm00WB3AFhcQr@andrew.cmu.edu> <66.4377.1727@tabb.com>
Date: Sun, 7 Apr 1996 07:03:45 GMT
Lines: 52
Sender: monolith@netcom.netcom.com

Joe Mason (joe.mason@tabb.com) wrote:
: This is a place where I think we should borrow from MUSH conventions.  They 
: conatain pronoun strings, which of course I can't remember now.  Basically, 
: they take "%?" where ? is a letter, and print the appropraite pronoun. For 
: example, if "%A" returned "You/He/She/It" you would type:
:    "%a climbs the wobbly ladder"

Being a rather good MUSH programmer as well as the author of a MUSH server
(AlloyMUSH!), I think I'm qualified to enter into this discussion. ;)

Pronoun strings print an appropriate pronoun for the current actor. The
strings for name, subject, object, possessive, and absolute possessive are
%n, %s, %o, %p, and %a, respectively. There are also functions for this,
name(obj), subj(obj), obj(obj), poss(obj), and aposs(obj).

The pronoun strings/functions do not return "you", their return value is
totally based on the actor's @sex attribute: he, she, it, they.

(That was more than a little off-topic!)

: and depending on the actor, the game would print

:    "You climbs the wobbly ladder."
:    "He climbs the wobbly ladder."
:    "She climbs the wobbly ladder."
:    "It climbs the wobbly ladder."

: Notice the obvious problem.  I'm not sure how they deal with that on MUSHes, 
: but they must have some way.

The same attribute (property) value isn't used all the time. Let's suppose I
pick up an object that's defined like this:

  Succ: You pick up your box.
 Osucc: picks up %p box.

Then I see "You pick up your box." and everyone else sees "(Myname) picks up
his box."

I think the best way to implement this in Inform would be to adopt a syntax
similar to the one used in TADS. Following the ladder example, you'd have
something like this:

 before [;
  Climb: print "%You% climb%s% the wobbly ladder.";
 ]

This is more readable, easier to remember, and has more potential for
extension than the MUSH version (where you might have "%S climb%z the wobbly
ladder.").

Jesse McGrew, temporarily.
