Newsgroups: rec.arts.int-fiction
Path: gmd.de!xlink.net!howland.reston.ans.net!pipex!sunic!uts!news.daimi.aau.dk!aau!joedal
From: joedal@dfi.aau.dk (Lars Joedal)
Subject: Re: Adaptive item listings in TADS
Message-ID: <joedal.751903848@dfi.aau.dk>
Sender: news@aau.dk
Nntp-Posting-Host: dfi.aau.dk
Organization: Aarhus University, Denmark
References: <2al0it$f87@agate.berkeley.edu>
Date: Fri, 29 Oct 1993 14:10:48 GMT
Lines: 87

This looks like the right place to quote a post from last year:

> From rec.games.int-fiction Fri Nov 20 10:00:31 1992
> From: mollems@wkuvx1.bitnet (Molley the Mage)
> Date: 19 Nov 92 12:27:23 CST
> Newsgroups: rec.games.int-fiction
> Subject: A new idea for items in TADS
>
> On the subject of implementing neat tricks in TADS, one of my favorite
> things about the old Infocom games was that the first time you saw an
> object, before you ever picked it up, it would have its own little
> description of how and where it was.  Thus, if there was a key lying
> on a dusty floor in a Grecian temple, you might see the following
> description:
>
> Grecian Temple
> 	This is the central room of the temmple, marble columns rising
> all around you.  The main dome arches above you, giving you a sense of
> extreme insignificance before the huge renderings of the gods staring
> down at you from its makeshift firmament.
> 	Horrors!  It seems as though the disciples of the renegade god
> Acme have been here before you!  Lying on the ground, in the dust of
> ages, is a Spamm (tm) Kee!
> 	( with apologies to Mssrs. Leary and Baggett :-) )
>
> Currently, under TADS, an ITEM lying on the ground like that is simply
> given the text "You see a Spamm (tm) Kee here."  This isn't the fault
> of TADS, of course, since it's not the compiler's job to write text
> for us.  However, I've been tinkering with ADV.T, and have worked out
> a way to give ITEMS a "heredesc" which is only valid until the item
> has been taken.  Once the player has picked up and dropped the Spamm
> (tm) Kee again, the description reverts to the standard "There's a
> <WHATEVER> here."
>
> The trick is creating a class:
>
> class longitem : item
> 	islongitem = true
> ;
>
> then, in ADV.T, I change the listcont () function to say something to
> the effect that if thing.islongitem, print its longdesc instead of
> "you see <<thing.adesc>> here."  Thus, the Spamm (tm) Kee above could
> be done like so:
>
> spamkey : longitem
> 	noun = 'key' 'kee'
> 	adjective = 'spam' 'spamm'
> 	sdesc = "Spamm (tm) Kee"
> 	thedesc = "the Spamm (tm) Kee"
> 	ldesc = "It seems to be made of an imitation meat product, yet
> another innovation from the folks at Acme."
> 	longdesc = "Oh no!  It seems as though the disciples of the
> renegade god Acme have been here before you!  Lying on the ground in
> the dust of ages you see a Spamm (tm) Kee!"
> ... et cetera
>
> finally, changing the general doTake action of ADV.T to revert the
> item to normal status once it's been taken:
>
> 	...
> 	if (do.islongitem)
> 		do.islongitem := nil;
> 	...
>
> I believe this covers all the angles.  What do you folks think about
> this?  Note that I haven't actually DONE it yet, since I just thought
> of it, but I decided to go ahead and share it :-)
>
> Sean 
> ---
> M. Sean Molley, CS Department, Western Kentucky University, Bowling Green, KY
> RealSpace - (502) 745-4027 |   "When push comes to shove, push and shove."
> All flames and other heavy ordnance should be fired at  MOLLEMS@WKUVX1.BITNET

The only comment I would like to accompany this nice description with is
that perhaps the listcont() function should make sure to print any longitems
before normal items.

+------------------------------------------------------------------------+
| Lars J|dal                | Q: What's the difference between a quantum |
| email: joedal@dfi.aau.dk  |    mechanic and an auto mechanic?          |
| Physics student at the    | A: A quantum mechanic can get his car into |
| University of Aarhus      |    the garage without opening the door.    |
| Denmark                   |                    -- David Kra            |
+------------------------------------------------------------------------+

