/*
* Originally..
* 'the bit of the soul that all players should have ;)'
* By Pinkfish, presumably
*
* For some weird reason I am trying to make it a simul_efun..
* not sure how to use it yet but we'll see.
* changing all this_object() to this_player() altho I hate using it.
* Baldrick, june '97.
*/
#define SOUL_OBJECT "/obj/handlers/soul"
int test_soul_com(string str)
{
string str1, str2;
int i;
if (sscanf(str,"%s %s", str1, str2) != 2)
str1 = str;
if (this_player()->exec_alias(str1, str2))
{
/* expanding an alias into several commands is trivial */
this_player()->set_trivial_action();
return 2;
}
if (!this_player()->query_property("nosoul"))
{
if ( !load_object(SOUL_OBJECT) )
{
write("Soul errors! Notify an immortal.\n");
write("Use nosoul to turn the soul back on when it is fixed.\n");
this_player()->add_property("nosoul",1);
return 0;
}
i = SOUL_OBJECT->soul_command(str1,str2,this_player());
/* souls are trivial */
if ( i )
this_player()->set_trivial_action();
return i;
}
return 0;
} /* soul_com() */
/*
* This one can actually stay in the psoul.c
*
int soul_com_force(string str)
{
string str1,str2;
if ( this_object()->action_blocked() &&
!this_object()->query_lord() )
return 0;
if (file_name(previous_object()) != SOUL_OBJECT)
return 0;
command(str);
return 1;
} /* soul_com_force() */
/*
* This one can actually stay in the psoul.c
*
void do_soul(string str, mixed bing)
{
say(str, bing);
}*/ /* do_soul() */