/*
* NAME: moo.c
* DESCRIPTION: functions for facilitating MOO emulation
*/
# include <moo/data.h>
# include <moo/verbinfo.h>
static
void save_db(string file)
{
object saver;
lock(saver = load_object(DBSAVER),
saver->main(file),
destruct_object(saver));
}
static
MOOVAL raise(int error, mixed *info)
{
if (info[I_FLAGS] & IF_DEBUG)
error("E!" + GLOBAL->error_desc(error));
else
return ERR(error);
}
static
int wizardp(int programmer)
{
object ob;
return (ob = MOOOBJ(programmer)) ? ob->is_wizard() : 0;
}
static
int programmerp(int programmer)
{
object ob;
return (ob = MOOOBJ(programmer)) ? ob->is_programmer() : 0;
}
static
void input_to(string func)
{
object user;
if (! (user = this_user()))
error("Invalid input_to() from call_out()");
if (func && ! function_object(func, this_object()))
error("Invalid function for input_to()");
if (! user->input_to(this_object(), func))
error("Already expecting input");
}