#include "path.h"
inherit "/std/room";
void setup() {
set_short( "'add_item' room telling about the arguments of the function" );
set_light( 100 );
add_property( "determinate", "the " );
set_long( "This is a room telling about the arguments passed to the "
"do_<verb>() function. Go east for examples of using the "
"arguments, west for something else:).\n"
"Here goes:\n"
" int do_<verb>( string command, object *indir, string dir_match,\n"
" string indir_match, mixed *args, string pattern );\n"
"$I$12=command is a string, it is the name of the verb "
"used.$I$0=\n"
"$I$12=indir is an array of objects. If any indirect "
"objects are requested for, then they will be in this array."
"$I$0=\n"
"$I$12=dir_match is a string, it is the name of the direct "
"object.$I$0=\n"
"$I$12=indir_match is a string, it is the name of the indirect "
"object.$I$0=\n"
"$I$12=args is a mixed array of strings and numbers. For "
"each <> thingie you have in the pattern, it has a member. So "
"if you have <direct:object>, it has the name of the direct "
"object, if you have <number> then it will have a number also, "
"if <indirect:object>, the indirect object's name, and so on. "
"They are in the same order as in the pattern.$I$0=\n"
"$I$12=pattern is a string containing the pattern. It is "
"useful to know which pattern has been caught since multiple "
"patterns are allowed per function.$I$0=\n\n"
"All do_<verb> functions in the learning domain will write their "
"arguments, to help you figure out how to use them.\n"
"A pool you can jump into is here.\n" );
add_item( "large pool", ({
"long", "It looks like you can jump into it.",
"jump", ({ this_object(), "do_jump", "[into|in] <direct:object>" })
}) );
add_exit( "east", PATH +"args_integer", "path" );
add_exit( "west", PATH +"verb_patterns", "path" );
add_exit( "start", MAIN, "path" );
add_exit( "exit", LEARNING +"search", "path" );
} /* setup() */
int do_jump( string command, object *indir, string dir_match,
string indir_match, mixed *args, string pattern ) {
tell_object( this_player(),
sprintf( "$I$2=do_jump called:\ncommand=%O\nindir=%O\n"
"dir_match=%O\nindir_match=%O\nargs=%O\n"
"pattern=%O$I$0=\n",
command, indir, dir_match,
indir_match, args, pattern ) );
this_player()->add_succeeded_mess( previous_object(),
"$N $V into a pool!\n", ({ }) );
return 1;
} /* do_jump() */