/* Do not remove the headers from this file! see /USAGE for more info. */

/*
** dig.c  by Rust.  Shows off the fact that we can be smart about finding
** out what people mean.
*/

#include <mudlib.h>

inherit VERB_OB;


mixed can_dig_str(string str)
{
    if (str == "hole" || str == "a hole")
	return "Try: dig in something with something.\n";
    return 0;
}

mixed can_dig()
{
    return "Try: dig in something with something.\n";
}

void do_dig_in_obj(object ob1)
{
  ob1->complete_dig();
} 

void do_dig_obj(object ob1)
{
  ob1->complete_dig();
}

void do_dig_with_obj(object ob1)
{
  ob1->do_digging();
}

void do_dig_in_obj_with_obj(object ob1, object ob2)
{
  ob2->do_digging(ob1);
}

void do_dig_with_obj_in_obj(object ob1, object ob2)
{
  do_dig_in_obj_with_obj(ob2,ob1);
}


void do_dig_obj_with_obj(object ob1, object ob2)
{
  do_dig_in_obj_with_obj(ob1, ob2);
}

void do_dig_out_obj_with_obj(object ob1, object ob2)
{
  do_dig_in_obj_with_obj(ob1, ob2);
}

void do_dig_out_obj(object ob1)
{
  do_dig_in_obj(ob1);
}

void do_dig_up_obj_with_obj(object ob1, object ob2)
{
  do_dig_in_obj_with_obj(ob1, ob2);
}

void do_dig_up_obj(object ob1)
{
  do_dig_in_obj(ob1);
}

void create()
{
    add_rules( ({ "", "STR", "in OBJ", "in OBJ with OBJ", "with OBJ" }) );
    add_rules( ({ "out OBJ", "OBJ with OBJ", "out OBJ with OBJ",
                  "up OBJ",  "up OBJ with OBJ", "with OBJ in OBJ" }) );
//    return ({ ({ "", "STR", "in OBJ", "in OBJ with OBJ", "with OBJ", "OBJ",
//		   "out OBJ", "OBJ with OBJ", "out OBJ with OBJ",
//		   "up OBJ", "up OBJ with OBJ", "with OBJ in OBJ", }) });
}

