inherit "/d/Utopia/std/room";

#include "straznicy.h"

#define SAVEFILE (PATH + "admin")
#define SECURE "/secure/master"

string *czlonkowie=({});
string *sierzanci=({});
string komendant;

oczysc_czlonkow();

create_pal_room()
{
   set_short("Administracja Straznikow Solamnii");
   set_long("Administracja Straznikow Solamnii.\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_sierzant(string imie)
{
   return member_array(imie,sierzanci)>-1;
}

int query_s_lub_k(string imie)
{
   return (imie==komendant)||query_sierzant(imie);
}

int set_sierzant(string imie)
{
   if (!query_czlonek(imie)) return -1;
   if (query_sierzant(imie)) return 0;
   sierzanci+=({imie});
   sierzanci=sort_array(sierzanci);
   save_me();
   return 1;
}

int set_komendant(string imie)
{
   if (!query_czlonek(imie)) return -1;
   if (!query_sierzant(imie)) return 0;
   set_sierzant(komendant);
   komendant=imie;
   sierzanci-=({imie});
   save_me();
}

string query_komendant()
{
   return komendant;
}

int remove_sierzant(string imie)
{
   sierzanci-=({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_sierzant(imie);
   if (komendant==imie)
      if (sizeof(sierzanci))
         komendant=sierzanci[0];
      else komendant=0;
   czlonkowie-=({imie});
   save_me();
   return 1;
}

string *query_sierzanci()
{
   return sierzanci;
}

string *query_czlonkowie()
{
   return czlonkowie;
}

remove_object()
{
   save_me();
   ::remove_object();
}

string query_stanowisko(string imie)
{
   if (imie==komendant) return "Kapitan Straznikow Solamnii";
   if (query_sierzant(imie)) return "Sierzant Straznikow Solamnii";
   if (query_czlonek(imie)) return "Straznik Solamnii";
   return 0;
}