inherit "/d/Imperium/std/room";

#include "mith.h"

#define SAVEFILE (NPATH + "admin")
#define SECURE "/secure/master"

string *czlonkowie=({});
string *sierzanci=({});
string komendant;

oczysc_czlonkow();

create_imperium_room()
{
   set_short("Administracja Strazy Krain");
   set_long("Administracja Strazy Krain.\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 "Komendant Strazy Krain";
   if (query_sierzant(imie)) return "Sierzant Strazy Krain";
   if (query_czlonek(imie)) return "Straznik Krain";
   return 0;
}