/* Do not remove the headers from this file! see /USAGE for more info. */
/*
** go.c
** 072197 Completely rewritten by Rassilon in the great exit rewrite.
** 020999 Revised by Tigran in his exit modifications
*/
#include <verbs.h>
inherit VERB_OB;
void do_go_obj(object ob)
{
ob->do_verb_rule("go", "OBJ", ob);
}
void do_go_wrd_obj(string prep, object ob)
{
ob->do_verb_rule("go", "WRD OBJ", prep, ob);
}
void do_go_str(string str)
{
object env = environment(this_body());
if (this_body()->query_driving_vehicle())
env = environment(env);
env->do_go_str(str);
}
mixed can_go_wrd_obj(string prep, object ob)
{
return "You can't do that!\n";
}
mixed can_go_str(string str)
{
object env = environment(this_body());
mixed value;
if (this_body()->query_driving_vehicle())
env = environment(env);
value = env->can_go_str(str);
if (!stringp(value) && ( value == 1))
return default_checks();
if (!stringp(value) && is_normal_direction(str))
return "It doesn't appear you can go that way\n";
return value;
}
void create()
{
add_rules( ({ "STR" }), ({ "leave" }) );
add_rules( ({ "WRD OBJ" }) );
add_rules( ({ "OBJ" }) );
clear_flag(NEED_TO_SEE);
clear_flag(NEED_TO_BE_ALIVE);
}