(dp17088476
S'@edit'
p17386940
(ipoohelp
HelpRec
p14830892
(S'initial'
p16422348
I0
S'syntax'
p16420428
S'@edit <function or property>'
p17177100
S'desc'
p16655372
S'\012The @edit command allows you to edit the source code of a function,\012or any property which consists of a list of strings.  Note that after\012changing the source code of a function, you must compile it for your\012changes to take effect.\012\012Example:\012\012   @edit self.squeak'
p17045244
dp17558348
bsS'go'
p17175036
(ipoohelp
HelpRec
p14838588
(g16422348
I0
g16420428
S'[go ]<exit>'
p16310892
g16655372
S'\012You explore by moving through exits.  You can do this by using "go" and\012the exit name, or you can simple enter the name of the exit.\012\012Examples:\012\012   go north\012   south'
p15552428
dp16756828
bsS'@who'
p17710204
(ipoohelp
HelpRec
p14831628
(g16422348
I0
g16420428
S'@who'
p17105148
g16655372
S'\012This command lists all the currently connected users.'
p17479916
dp17451260
bsS'get'
p17034668
(ipoohelp
HelpRec
p14825868
(g16422348
I0
g16420428
S'get <obj>'
p17344300
g16655372
S'\012This command attempts to take the specified object from the room.  Some\012objects cannot be taken.'
p16578940
dp16750860
bsS'wizards'
p17506028
(ipoohelp
HelpRec
p14828492
(g16422348
I1
g16420428
S''
p14701900
g16655372
S'\012Wizards are the POO administrators; they have certain abilities not\012available to other users.  To facilitate their administrative duties,\012wizards have the following special commands available to them.\012\012    beam              @setown              @newuser\012    find              @movprop             @opassword\012    @force           '
p17819404
dp17426892
bsS'@newuser'
p17599580
(ipoohelp
HelpRec
p14829676
(g16422348
I0
g16420428
S'@newuser <base> as <name>         [wizards only]'
p15147804
g16655372
S"\012Wizards should use @newuser to create new POO users.  Specify a base\012class and the name of the user to be created.  The new user's password\012is set to his name, and the user is sent home (which will be inherited\012from the base classes).\012\012Example:\012\012   @newuser $sys.usertypes.Coder as Cody"
p17026780
dp17671084
bsS'credits'
p17713020
(ipoohelp
HelpRec
p14836028
(g16422348
I0
g16420428
g14701900
g16655372
S"\012Credits are used in POO as a way of controlling database size; it's\012similar to a quota system, but more flexible.  Creating an object costs\012100 credits; recycling gets you some of those credits back.  Credits\012cannot be created nor destroyed, even by wizards."
p17025756
dp17408172
bsS'introduction'
p17500252
(ipoohelp
HelpRec
p14828716
(g16422348
I1
g16420428
g14701900
g16655372
S'\012POO is a MOO written in Python.  Both the engine itself, and all the \012user-written functions in the database, are in the Python scripting\012language.\012\012For more information on POO, point your web browser to:\012        http://www.strout.net/python/poo/\012\012For more information on the Python language, see:\012        http://www.python.org/'
p16998044
dp17412972
bsS'@parse'
p17599132
(ipoohelp
HelpRec
p14831436
(g16422348
I0
g16420428
S'@parse [<dobj>] [<prep> <iobj>]'
p17576364
g16655372
S'\012This is a utility function for new POO coders.  You give it any set\012of arguments, and it prints the direct object, preposition, and\012indirect object that it finds.  The same variables would be available\012to your own function.  This is also useful as a quick way to find\012the object number of a local object (instead of using @ex).\012\012Example:\012\012    @parse Fred with apple'
p17061660
dp17450428
bsS'miscellaneous'
p17808892
(ipoohelp
HelpRec
p14832364
(g16422348
I1
g16420428
g14701900
g16655372
S'\012Other commands you may need from time to time:\012\012    @home               @password            give'
p16581500
dp17167020
bsS'say'
p17754380
(ipoohelp
HelpRec
p14832332
(g16422348
I0
g16420428
S'say <msg>     OR     "<msg>'
p17512940
g16655372
S'\012Tells everyone in the room that you say the specified message.  For\012example, if you enter:\012\012   say Hello!\012\012and your character\'s name is Bob, then everyone in the room will see:\012\012   Bob says, "Hello!"\012\012As a shortcut, you can simply enter a single or double quote followed\012by your message.  Thus, the above example is equivalent to:\012\012   "Hello!'
p16892892
dp17534684
bsS'@describe'
p17462988
(ipoohelp
HelpRec
p14832204
(g16422348
I0
g16420428
S'@describe <obj> as <str>'
p17219164
g16655372
S'\012This command is used to set the description of an object.  You must\012be a wizard, or the owner of the object.  Note that since you always\012own yourself, you can always set your own description.\012\012Example:\012   @describe me as "You see a short man wearing a tall hat."'
p17010348
dp17091100
bsS'communication'
p17219356
(ipoohelp
HelpRec
p14838012
(g16422348
I1
g16420428
g14701900
g16655372
S'\012A variety of commands are available for communicating with other users:\012\012    say        emote        @page         who'
p15855612
dp16961452
bsS'@newfunc'
p17630556
(ipoohelp
HelpRec
p14830572
(g16422348
I0
g16420428
S'@newfunc <obj>.<funcdef>'
p17485948
g16655372
S'\012This command creates a new function with the given name.  It will be\012placed on the specified object, if any; if none is specified, the\012function is stored on yourself (the caller).  <funcdef> should be a\012full function specification, with parameters; every function should\012have at least a "self" parameter, which receives the object on which\012the function was invoked.\012\012For example, the command\012\012   @newfunc myclock.getCurrentTime(self)\012\012creates a function "getcurrenttime" on myclock.  If you to call this\012from some other method on the same object -- say, .description() --\012you might use a line like this: \012\012    theTime = self.getCurrentTime()\012\012Notice that the "self" parameter is not specified when you actually\012call the function, since it is automatically filled in when the \012function is invoked.\012\012@newfunc may be used to replace an existing function; or you may\012change the code with the "@edit" command.\012\012To give a one-line description to a function, set its "desc"\012property.  This will appear when you @ex the object on which the\012function is defined.  Example:\012\012   @set self.getCurrentTime.desc to "Returns the current time"\012\012Finally, if you DON\'T want to allow your function to be invoked from\012other Python code, clear its "x" flag.  It will then only work when\012directly called by a user command (see @cmd).  Example:\012\012   @setperm self.getCurrentTime = rc'
p17256732
dp17676844
bsS'@renprop'
p16988812
(ipoohelp
HelpRec
p14839452
(g16422348
I0
g16420428
S'@renprop <object>.<propname> to <newpropname>'
p15566540
g16655372
S'\012This command changes the name of a property, especially useful for\012correcting typos.\012\012Example:\012\012   @renprop widget.desx to desc\012\012Note that you do NOT specify the object again in the new name; this\012command cannot be used to move properties from one object to another.'
p16980620
dp17540780
bsS'@delprop'
p17177164
(ipoohelp
HelpRec
p14837276
(g16422348
I0
g16420428
S'@delprop <obj>.<propname>'
p17751372
g16655372
S'\012The delprop command removes a property from an object.  You must have\012write privilege on the object to do this.\012\012Example:\012\012   @delprop me.spam'
p17432348
dp17712252
bsS'@password'
p17811964
(ipoohelp
HelpRec
p14830412
(g16422348
I0
g16420428
S'@password <new password>'
p17713340
g16655372
S"\012This command is used to change your password.  You should set your\012password to something hard to guess, but easy for you to remember.\012It takes effect immediately; you'll need the new password the next\012time you connect.\012\012Example:\012\012    @password Joshua5"
p17819916
dp17034028
bsS'drop'
p17541292
(ipoohelp
HelpRec
p14833196
(g16422348
I0
g16420428
S'drop <obj>'
p17562316
g16655372
S'\012This command drops an object from your inventory into the room.'
p17363852
dp17425484
bsS'movement'
p17633500
(ipoohelp
HelpRec
p14709468
(g16422348
I0
g16420428
g14701900
g16655372
S'\012See "go".'
p16988748
dp16728668
bsS'look'
p17631580
(ipoohelp
HelpRec
p14829548
(g16422348
I0
g16420428
S'look [[at] <obj>]'
p16733740
g16655372
S'\012"Look" is used to examine your surroundings, or to look at a particular\012object.\012\012Examples:\012\012   look\012   look spam\012   look at Tim\012   look north'
p15555500
dp16994572
bsS'page'
p16741180
(ipoohelp
HelpRec
p14825900
(g16422348
I0
g16420428
S'page <recipient> with <message>'
p17765916
g16655372
S'\012You can use the page command to send a message to another player,\012anywhere in the game.\012\012If you don\'t wish to receive page messages, use this command:\012\012    set me.nopage = 1\012\012Example:\012\012    page Tim with "Help!  I\'m hopelessly confused!"'
p16909308
dp16755548
bsS'@delcmd'
p16728796
(ipoohelp
HelpRec
p14839900
(g16422348
I0
g16420428
S'@delcmd <obj>.<command>'
p17173244
g16655372
S'\012@delcmd deletes a command definition from the specified object.  You\012must specify the command with its arguments, as in these examples:\012\012   @delcmd widget.warble <this>\012   @delcmd #53.eat <this> with <obj>\012\012See also: @cmd, @whichcmd'
p17021660
dp17063020
bsS'emote'
p17036204
(ipoohelp
HelpRec
p14829612
(g16422348
I0
g16420428
S'emote <msg>     OR     :<msg>'
p17048972
g16655372
S'\012Causes your character to "act out" the specified message.  For example,\012if a player named Bob enters the command:\012\012   emote strikes a pose.\012\012then everyone in the room will see:\012\012   Bob strikes a pose.\012\012As a shortcut, you can simply enter a colon and the message, as in:\012\012   :strikes a pose.'
p17012396
dp17533404
bsS'give'
p17810684
(ipoohelp
HelpRec
p14831948
(g16422348
I0
g16420428
S'give <amount> to <whom>'
p16756892
g16655372
S'\012Use the give command to transfer some of your credits to another player,\012or even to an object.\012\012Example:\012\012   give 150 to Joe'
p15855100
dp16748684
bsS'quit'
p17485500
(ipoohelp
HelpRec
p14825804
(g16422348
I0
g16420428
S'quit'
p17717436
g16655372
S'\012This command disconnects you from the server.  In direct mode, it\012shuts the game engine down.'
p17303580
dp17559628
bsS'find'
p16952348
(ipoohelp
HelpRec
p14837212
(g16422348
I0
g16420428
S'find <object name>               [wizards only]'
p15683884
g16655372
S'\012The "find" command searches the database for objects with the given\012name.  The name must match exactly; aliases are not checked.  With a\012large database, this operation can be expensive, so it should be used\012sparingly.'
p15853308
dp17166508
bsS'@compile'
p17715836
(ipoohelp
HelpRec
p14828620
(g16422348
I0
g16420428
S'@compile <function>'
p17377580
g16655372
S'\012This command recompiles a function.  This is necessary when you have\012modified its source code (see @edit).\012\012Example:\012\012   @compile self.squeak'
p17305372
dp16750668
bsS'@markup'
p17714556
(ipoohelp
HelpRec
p14837148
(g16422348
I0
g16420428
S'@markup <plain|vt100|html|show>'
p17396684
g16655372
S'\012This command is used to change the way you received styled (marked up)\012text.  Some POO output contains markup tags which indicate bold text\012(etc.)  If you enter the command "@markup plain", these tags will\012simply be stripped from the output before you see it.  "@markup vt100"\012will convert the tags to VT100 escape sequences.  "@markup html"\012converts the tags to HTML tags, which can be interpreted by some MUD\012clients.  "@markup show" does no translation at all, allowing you to\012see the markup tags in their native POO form.  This is very convenient\012when examining or copying descriptions for future reference.'
p17071420
dp17160428
bsS'@sethome'
p17428108
(ipoohelp
HelpRec
p14839004
(g16422348
I0
g16420428
S'@sethome'
p17677100
g16655372
S"\012@sethome declares that the room you're currently in should hereafter\012be considered your home room.  You can return to this room at any\012time with the @home command."
p17431324
dp17342188
bsS'@force'
p17596316
(ipoohelp
HelpRec
p14833580
(g16422348
I0
g16420428
S'@force <obj> to <command>'
p17671596
g16655372
S'\012This command causes another object to execute a command.  It is handy\012when testing the database, as shown below.\012\012Example:\012\012   @force Puppet to get thingy from box'
p17304348
dp17170812
bsS'help'
p17092828
(ipoohelp
HelpRec
p14828588
(g16422348
I1
g16420428
S'help [<topic>]'
p17669804
g16655372
S'\012Provides help on the requested topic, or an initial list of topics\012if none is specified.  Topics may be abbreviated if unique; for\012example, "help comm" is the same as "help communication".'
p17304860
dp17377196
bsS'programming'
p17093468
(ipoohelp
HelpRec
p14835260
(g16422348
I1
g16420428
g14701900
g16655372
S'\012POO characters derived from $coder can directly execute Python commands,\012as well as create and edit functions attached to objects.  To enter a\012Python command, prefix it with ";" or "%", as in:\012\012   ;print "Hi there!"\012   ;print "My name is", self.name\012\012Functions are created and edited with the following commands:\012\012   @newfunc                 @edit\012   @list                    @cmd\012\012Commands are viewed and modified with these commands:\012\012   @cmd            @whichcmd             @delcmd'
p16843644
dp17507436
bsS'preferences'
p17383164
(ipoohelp
HelpRec
p14838108
(g16422348
I1
g16420428
g14701900
g16655372
S'\012Various commands are available to configure your character, and your\012interface with the POO system.\012\012   @password            @markup             @linelen\012   @sethome'
p15552172
dp16965228
bsS'@recycle'
p17163500
(ipoohelp
HelpRec
p14840092
(g16422348
I0
g16420428
S'@recycle <object>'
p17757004
g16655372
S"\012This command destroys an object.  To work, the object must not have any\012children (i.e., must not be in the .parents list of any other object);\012and you must be either the object's owner, or a wizard.\012\012Use this command with caution!  It is better to reshape an existing\012object into something new than to @recycle and @create a new one."
p16908284
dp17756108
bsS'@list'
p17669612
(ipoohelp
HelpRec
p14833068
(g16422348
I0
g16420428
S'@list <obj>.<propname> [range]'
p17715068
g16655372
S'\012This command lists a property value which is a tuple, list, or POO\012method.  (You must be a coder to list POO methods, however.)  The\012optional "range" argument is the starting and ending line number\012separated by a dash, though parts can be omitted in any sensible\012combination.\012\012Examples:\012\012   @list self.spam\012   @list parrot.memory 3-5\012   @list me.broken 9\012   @list widget.warble 12-'
p16945740
dp15726844
bsS'markup tags'
p17676524
(ipoohelp
HelpRec
p14831244
(g16422348
I0
g16420428
g14701900
g16655372
S'\012A markup tag is a key letter enclosed in angle brackets; e.g., <X>\012would be a markup tag if capital "X" were a key letter.  When any\012text containing these tags is sent to a user, the tags are converted\012according to that user\'s @markup setting.  The following tags are\012currently defined:\012\012   b   <b>bold<t>\012   i   <i>italics<t>\012   u   <u>underline<t>\012   l   <l>blink<t> (that\'s a lowercase "L")\012   t   plain text (turns off b, i, u, and l)\012\012Example:\012   say "I\'m feeling <b>bold<t> today!"\012\012To see the markup tags with no translation, enter:  @markup show'
p16919580
dp16738236
bsS'@opassword'
p17100140
(ipoohelp
HelpRec
p14831020
(g16422348
I0
g16420428
S'@opassword <password> on <user>   [wizards only]'
p17525324
g16655372
S"\012This command sets a user's password."
p15683244
dp16990476
bsS'@linelen'
p17036844
(ipoohelp
HelpRec
p14833676
(g16422348
I0
g16420428
S'@linelen <int>'
p16966700
g16655372
S'\012This command sets your line length, i.e., how many characters fit on\012a line for your terminal or client program.  If line length is\012unlimited (because your client automatically wraps words, for example),\012use "@linelen 0".  The default is "@linelen 80", i.e, 80-character\012lines.'
p17002140
dp17030124
bsS'@setown'
p17672940
(ipoohelp
HelpRec
p14829868
(g16422348
I0
g16420428
S'@setown <property> to <owner>            [wizards only]'
p17440556
g16655372
S'\012This command is used to set the owner of a property.  Only the owner\012of a property or a wizard can change the property\'s permissions (via\012"@setperm").  Property ownership is especially important when the\012property value is a function: functions always execute with the\012privileges of their owner.  As a special case, you can set a property\012owner to None, in which case the function executes with the \012privileges of the user calling it.\012\012Examples:\012\012   @setown $user.simplefunc to $user\012   @setown widget.spam to None'
p16935996
dp16966252
bsS'@setperm'
p17630940
(ipoohelp
HelpRec
p14830028
(g16422348
I0
g16420428
S'@setperm <obj>.<propname> = <permstr>'
p16643068
g16655372
S"\012This command sets the permissions of the specified property.  <flags>\012should be any combination of 'r', 'w', and 'c', for Read, Write, and\012Change ownership in descendants.  If the property refers to an object\012method, also specify (or not) and 'x' (Execute) flag: 'x' permits\012the method to be called from Python code; no 'x' means that the method\012can only be invoked from a command.\012\012Examples:\012\012   @setperm spam.value = wrc\012   @setperm here.desc = r\012   @setperm widget.warble = rc\012   @setperm #15.NukeProgram\012\012(The last example illustrates clearing all permission flags.)"
p16942140
dp17756684
bsS'@which'
p17018124
(ipoohelp
HelpRec
p14839324
(g16422348
I0
g16420428
S'@which [<obj>.]<propname>'
p17018508
g16655372
S'\012The @which command searches the specified object, and all of its\012ancestors, for properties with the given property name.  Each match\012is printed with the object number and value.  This is handy for\012finding where an inherited property value is actually defined.\012\012If no object is specified, "me" is assumed.\012\012Examples:\012\012   @which desc\012   @which Bob.gender'
p17039100
dp17629468
bsS'@cmd'
p17017356
(ipoohelp
HelpRec
p14837436
(g16422348
I0
g16420428
S'@cmd <obj>.<syntax> calls <funcdef>'
p17325132
g16655372
S'\012@cmd is used for creating new commands.  Commands may be placed\012on an object, on the room, or on a player.  You create a command\012by specifying the command syntax, and the function which should\012be called to actually process the command.  This is best\012illustrated with an example:\012\012   @cmd me.bonk <obj> <int> times calls bonk(%1,%2)\012\012In this example, "bonk <obj> <int> times" is the comman syntax;\012"calls" is a keyword (itself part of the @cmd syntax) which \012separates the command syntax from the function definition; and\012"bonk(%1,%2)" is the function to be called.  The command is\012defined on "me", and the "bonk" function must be defined on the\012same object.  Now, when this player enters\012\012   bonk Sam 4 times\012\012it will match this particular "bonk" command, and execute\012\012   me.bonk(Sam,4)\012\012where "Sam" is actually the Sam object, and 4 is actually an\012integer; neither of them is passed as a string.  This automatic\012conversion happens because of the parameter tags specified in\012the command syntax.  Possible parameter tags include:\012\012       <str>   matches anything; passes a string\012       <int>   matches an integer; passes an integer\012       <obj>   matches any object reference; passes an object\012       <this>  matches only the object on which the command\012                 is defined\012       <val>   matches anything, but converts to an integer\012                 or object reference if possible\012\012In the function definition, you can pass the parsed parameters\012to your function.  To do this, place a percent sign (\'%\')\012and the number of the parameter in the function definition.\012You may also pass hardcoded integers, strings, or the keyword\012\'caller\', which is the player that invoked the command.\012\012More examples:\012\012   @cmd ball.bounce <this> calls doBounce(caller)\012\012This defines a command on the "ball" object which would match\012"bounce ball", and would invoke the function ball.doBounce(caller),\012where "caller" is the player that typed the command.\012\012   @cmd me.bonk <obj> calls bonk(%1,3)\012\012This is the "bonk" example again, but in this case, the second\012parameter (how many times to bonk) is not specified, so a hardcoded\012value (3) is passed to the function.'
p17258796
dp17019532
bsS'who'
p17017228
(ipoohelp
HelpRec
p14838844
(g16422348
I0
g16420428
g14701900
g16655372
S'\012See @who.'
p17408748
dp17033580
bsS'@page'
p16989068
(ipoohelp
HelpRec
p14839644
(g16422348
I0
g16420428
S'@page <user> with <message>'
p17674220
g16655372
S"\012This command sends a message to another user, wherever they are.\012\012Example:\012\012   @page Tim with Help!  I've fallen and I can't get up!"
p17305884
dp17019596
bsS'@ex'
p16989452
(ipoohelp
HelpRec
p14831820
(g16422348
I0
g16420428
S'ex <object>'
p17369436
g16655372
S'\012This command lists all the properties of an object, along with their\012value, creator, and permissions.  Note, however, that you may be\012unable to read a property if it belongs to someone else and does not\012have its "r" (readable) flag set.\012\012See also: @set, @setperm, @setown'
p16927276
dp17370204
bsS'beam'
p17500892
(ipoohelp
HelpRec
p14832012
(g16422348
I0
g16420428
S'beam <obj> to <location>          [wizards only]'
p17234940
g16655372
S'\012The beam command is used to teleport objects from one place to another.\012It is a quick way for wizards to relocate objects in the database, or\012teleport themselves.\012\012Examples:\012\012   beam $usr.Lancelot to here\012   beam #42 to me\012   beam me to me.Camelot'
p17006252
dp17510956
bsS'inventory'
p16953692
(ipoohelp
HelpRec
p14829196
(g16422348
I0
g16420428
S'i[nventory]'
p16744700
g16655372
S'\012Entering "inventory", "inv", or just "i" shows you what items you are\012carrying.\012\012See also: get, drop'
p16580988
dp17162028
bsS'@dir'
p17030380
(ipoohelp
HelpRec
p14832268
(g16422348
I0
g16420428
S'@dir <object>'
p17334044
g16655372
S'\012@dir is similar to @ex, except that it lists only properties which\012refer to other objects.  This is especially useful on directory\012objects, which treat their contents like properties.\012\012Examples:\012\012   @dir $pub\012   @dir me.stuff'
p16905212
dp17013772
bsS'@home'
p17019404
(ipoohelp
HelpRec
p14833356
(g16422348
I0
g16420428
S'@home'
p17811900
g16655372
S'\012The @home command magically transports you to your "home" -- that is,\012the room you have defined to be your home with the @sethome command.'
p17431836
dp16757148
bsS'creation'
p17018700
(ipoohelp
HelpRec
p14829804
(g16422348
I1
g16420428
g14701900
g16655372
S'\012Creating objects in POO is fairly straightforward.  The following\012commands in the core database are relevant:\012\012   @create              @dig               @recycle\012   @ex                  @set               @setperm\012   @setown              @delprop           @renprop\012\012You will also want to examine public base objects (@dir $pub).\012Note that you must be a Builder in order to use these commands.\012See also: programming'
p16950860
dp17103020
bsS'@create'
p17561420
(ipoohelp
HelpRec
p14839164
(g16422348
I0
g16420428
S'@create <parent> [as <name>]'
p17065004
g16655372
S'\012This command creates a new object, derived from the given parent.  If\012you supply a name, it will be given to the new object; otherwise, it\012will be called "new" plus the name of the parent.  The newly created\012object is placed in your inventory, and you are its owner.\012\012Example:\012\012   @create $exit as north\012   drop north\012\012This example creates an exit called "north", then drops it into the\012current room.'
p16975484
dp17635996
bsS'@set'
p17015052
(ipoohelp
HelpRec
p14829260
(g16422348
I0
g16420428
S'@set <obj>.<propname> to <value>'
p15681836
g16655372
S'\012Use this command to set the value of an object property.  Specify the\012property with an object reference and the property name, separated by\012a period.  The value can be a string, a number, another object, etc.\012\012Examples:\012\012   @set self.age to 42\012   @set breakfast.desc to "Spam, spam, spam, spam, eggs, and spam."\012   @set #15.home = here\012   @set wooden staff.aliases = "staff","pole","big stick"'
p16890844
dp16749004
bsS'@dig'
p17674092
(ipoohelp
HelpRec
p14838172
(g16422348
I0
g16420428
S'@dig <n|s|e|w|ne|se|nw|sw|u|d> to <room>'
p16247036
g16655372
S'\012This command is a very handy shortcut for "digging" a series of rooms.\012You supply the direction from the current room to the new room, and\012either the name of a new room to create, or a reference to an existing\012room.  This function then creates the new room (if needed), an exit\012from your current room to the new one, and a reciprocal exit from the\012new room back to the one you\'re in.  Each exit is given a full name\012and the standard one- or two-letter alias, and all objects are placed\012in the proper location.  This is the recommended method for adding\012rooms to a POO database.\012\012Examples:\012\012   @dig n to Balcony\012   @dig sw to #57'
p16921628
dp17141692
bsS'@whichcmd'
p17029932
(ipoohelp
HelpRec
p14834172
(g16422348
I0
g16420428
S'@whichcmd [<obj>.]<verb>'
p17029804
g16655372
S'\012@whichcmd searches the given object (or if not specified, the caller)\012and all of its ancestors for commands which begin with the given verb.\012This is useful for finding out where inherited commands are actually\012defined, and for checking the results of @cmd or @delcmd.\012\012Example:\012\012   @which box.get'
p17043196
dp17032364
bs.