Newsgroups: rec.arts.int-fiction
Path: news.duke.edu!newsgate.duke.edu!nntp-out.monmouth.com!newspeer.monmouth.com!newshub2.home.com!news.home.com!news.maxwell.syr.edu!newsfeed.skycache.com!Cidera!news-reader.ntrnet.net!uunet!ash.uu.net!world!buzzard
From: buzzard@world.std.com (Sean T Barrett)
Subject: [Inform] 'before' reference list
Message-ID: <GDoyso.MCG@world.std.com>
Date: Mon, 21 May 2001 15:24:24 GMT
Organization: The World Public Access UNIX, Brookline, MA
Lines: 98
Xref: news.duke.edu rec.arts.int-fiction:87323

The DM provides a convenient list of all of the actions
defined by the library, organized primarily by the Group 1-
Group 2-Group 3 distinction, which seems to primarily fall
out as being organized by the degree to which the library
provides a simulation for the action.

Primarily in the interests of providing a sort of checklist
for adding before/after code to objects, I've produced the
following tentative reference. It organizes actions by two
categories: number of objects involved (to easily distinguish
common cases involving before on a room vs. an object), and
then by classifying the "kind" of an action in an abstract
and perhaps not very useful way, but with the intent that
if you do before/after processing for an action of some kind,
you might want to consider other actions of the same kind.

I've included it below, but it is also available on my IF page,
which also includes a listing of "what each of the LibraryMessages
is for" for authors who are rewriting most or all of those
messages (and is substantially different from the information
in either DM): http://world.std.com/~buzzard/games/if/index.html

Corrections and suggestions welcome. This was mostly generated
from a direct reading of 'grammar.h'.

==================================================================

Action Categories

Actions marked with '*' can be issued with different numbers
of noun phrases (e.g. 'smell' vs. 'smell object', which both
produce the 'Smell' action), so extra care should be observed:

NO OBJECTS ('before' on room)

 Look, Inv,                               taking stock
 *Smell, *Listen,                         alternate sensing
 Jump, WaveHands, Sing                    solitary gestures
 Pray, Wake, Think                        mental actions
 Wait, Sleep, Swim                        miscellaneous actions
 Yes, No, Sorry, Strong, Mild,            talking back to the parser

HELD OBJECT ACTIONS (cannot 'before' them unless object in player)

 Drop                                     object movement
 Wear, Disrobe                            simulated manipulation
 Eat, Blow                                specialized interactions

SINGLE-OBJECT ACTIONS (cannot assume held or not held)

 Enter, GetOff, Go                        player movement (or vehicle)
 Take,                                    object movement
 Examine, Search, LookUnder               visual sensing
 Touch, Rub, Squeeze, Move, Pull, Turn    gross touching
 *Smell, *Listen, Taste                   alternate sensing
 Open, Close, Switchoff, Switchon         simulated manipulations
 Wave, Swing                              physical manipulations
 Climb, JumpOver                          local player movement
 Attack                                   violent action
 Drink, Fill                              liquids
 *Tie, *Burn, Cut, *Dig, Set              specialized interactions
 Buy,                                     transaction

ANIMATE OBJECT ACTIONS (cannot 'before' them if don't match 'creature')

 WakeOther, Kiss                          character interactions

TWO-OBJECT ACTIONS

 Remove, Insert, PutOn                    object movement
 PushDir, *Tie                            specialized interactions
 LetGo, Receive, ThrownAt                 object movement (fake actions)

TWO-OBJECT ACTIONS WITH VARIOUS PRECONDITIONS ON 'before'

 ThrowAt (first: held)                    object movement
 Lock, Unlock (second: held)              simulated manipulations
 *Burn, *Dig (second: held)               specialized interactions
 Give, Show (1st:held, 2nd: animate)      character interactions

TWO-PHRASE ACTIONS

 Consult  (1st: topic,   2nd: noun)       reading
 Answer   (1st: topic,   2nd: animate)    character interaction
 Ask,Tell (1st: animate, 2nd: topic)      character interaction
 SetTo    (1st: noun,    2nd: special)    specialized interaction

IGNOREABLE ACTIONS (remapped to other actions)

 zero objects:  Exit ('out_to')
                GoIn ('in_to')
                VagueGo (parser message)
 one object:    Empty (Remove + Drop/PutOn/Insert)
 two objects:   Transfer (Drop/PutOn/Insert)

=============

SeanB
