inherit "/d/Imperium/std/room";

#include "dhor.h"

#define SAVEFILE (NPATH + "admin")
#define SECURE "/secure/master"

string *czlonkowie=({});
string *kaplani=({});
string *niewierni=({});
string naznaczony;

oczysc_czlonkow();

create_imperium_room()
{
   set_short("Swiatynia Grungniego");
   set_long("Swiatynia Grungniego.\n");
   
   restore_object(SAVEFILE);
   oczysc_czlonkow();
}

save_me()
{
   save_object(SAVEFILE);
}

oczysc_czlonkow()
{
   int i;
   string *tmp=({});
   
   for (i=0;i<sizeof(czlonkowie);i++)
       {
          if (!SECURE->exist_player(czlonkowie[i])||SECURE->query_wiz_rank(czlonkowie[i]))
             tmp+=({czlonkowie[i]});
       }
   czlonkowie-=tmp;
   save_me();
}

int
query_czlonek(string imie)
{
   return (member_array(imie,czlonkowie)>-1);
}

int
query_kaplani(string imie)
{
   return member_array(imie,kaplani)>-1;
}



int
query_niewierni(string imie)
{
   return (member_array(imie,niewierni)>-1);
}

int
query_s_lub_k(string imie)
{
   return (imie==naznaczony)||query_kaplani(imie);
}

int
set_kaplani(string imie)
{
   if (!query_czlonek(imie)) return -1;
   if (query_kaplani(imie)) return 0;
   kaplani+=({imie});
   kaplani=sort_array(kaplani);
   save_me();
   return 1;
}

int
set_naznaczony(string imie)
{
   if (!query_czlonek(imie)) return -1;
   if (!query_kaplani(imie)) return 0;
   set_kaplani(naznaczony);
   naznaczony=imie;
   kaplani-=({imie});
   save_me();
}

string
query_naznaczony()
{
   return naznaczony;
}

int
remove_kaplani(string imie)
{
   kaplani-=({imie});
   save_me();
}

int
add_member(string imie)
{
   if (query_czlonek(imie)) return 0;
   czlonkowie+=({imie});
   czlonkowie=sort_array(czlonkowie);
   save_me();
   return 1;
}

int
remove_member(string imie)
{
   if (!query_czlonek(imie)) return 0;
   remove_kaplani(imie);
   if (naznaczony==imie)
      if (sizeof(kaplani))
         naznaczony=kaplani[0];
      else naznaczony=0;
   czlonkowie-=({imie});
   niewierni+=({imie});
   save_me();
}

string *
query_kaplan()
{
   return kaplani;
}

string *
query_czlonkowie()
{
   return czlonkowie;
}

remove_object()
{
   save_me();
   ::remove_object();
}

string
query_stanowisko(string imie)
{
   if (imie==naznaczony) return "Najwyzszy Kaplan Grungniego";
   if (query_kaplani(imie)) return "Kaplan Grungniego";
   if (query_czlonek(imie)) return "Wyznawca Grungniego";
   return 0;
}