#pragma no_clone
#include "morley.h"

inherit "/std/object.c";

mapping zabojcy = ([ ]);
string *zatwierdzeni = ({ });
string szef = "";

void
create_object()
{
    setuid();
    seteuid(getuid());
	
    if (file_size(SAVE + ".o") >= 0)
	restore_object(SAVE);
}

int
zabojca(object ob)
{
    return zabojcy[ob->query_real_name()];
}

void
usun(string str)
{
    zabojcy = m_delete(zabojcy, str);
    
    if (szef == str)
	szef = "";

    zatwierdzeni -= ({ str });

    save_object(SAVE);
}

int
zatwierdzony(mixed ob)
{
    if (objectp(ob))
    {
	if (member_array(ob->query_real_name(), zatwierdzeni) == -1)
	    return 0;

	return 1;
    }
    else
    {
	if (member_array(ob, zatwierdzeni) == -1)
	    return 0;
	
	return 1;
    }
}

void
set_szef(object ob)
{
    szef = ob->query_real_name();

    deep_inventory(ob)->update_actions();
    save_object(SAVE);
}

void
zatwierdz(object ob)
{
    zatwierdzeni += ({ob->query_real_name()});
    
    save_object(SAVE);
    deep_inventory(ob)->update_actions();
}

string
query_szef()
{
    return szef;
}

void
ustaw_zabojce(object ob, int i)
{
    zabojcy[ob->query_real_name()] = i;
    
    save_object(SAVE);
}

string*
query_zatwierdzeni()
{
    return zatwierdzeni - ({szef});
}
