inherit "/d/Imperium/std/room";
#include "tigr.h"

#define ILE_BAND 25

object *bandy=allocate(ILE_BAND);

klonuj_bandy(int numer);

create_imperium_room()
{
   set_short("Pusty pokoj");
   set_long("@@dlugi");
   
   setuid();
   seteuid(getuid());
   
   set_alarm(2.0,0.0,&klonuj_bandy(0));
}

reset_imperium_room()
{
   int i;
   
   for (i=0;i<ILE_BAND;i++)
      {
         if (!bandy[i])
            {
               klonuj_bandy(i);
               return;
            }
      }
}

string
dlugi()
{
   if (!TP->query_wiz_level())
      return "Nie powinienes znajdowac sie tu. Przyzij kogos lub zglos blad.\n";
   return "Tu sa zebrane wszystkie obiekty administrujace bandami na Pustkowiach Chaosu.\n";
}

klonuj_bandy(int numer)
{
    if (numer>=ILE_BAND||numer<0) return;
    if (!bandy[numer])
            {
               bandy[numer]=clone_object(PATH + "/obj/banda");
               bandy[numer]->set_num_bandy(numer);
               bandy[numer]->move(TO,1);
               bandy[numer]->set_start_loc(PATH + "/rownina/r" + (random(525)+1));
               bandy[numer]->clonuj_orkow();
            }
    set_alarm(2.0,0.0,&klonuj_bandy(numer+1));
}

int
pokaz(string str)
{
   int i;
   
   if (!str||str!=""+(i=atoi(str)))
      return notify_fail("Pokaz <liczba>.\n");
   
   if (i<0||i>ILE_BAND-1) 
      return notify_fail("Liczba poza zakresem.\n");
   
   if (!bandy[i]) return notify_fail("Nie ma takiej bandy.\n");   
   
   TP->catch_msg(bandy[i]->long());
   return 1;
}

init()
{
   ::init();
   add_action(pokaz,"pokaz");
}

kasuj_bande(int i)
{
   if (i>-1&&i<ILE_BAND)
      {
         bandy[i]->remove_object();
         set_alarm(0.1,0.0,&kasuj_bande(i+1));
      }
}

remove_object()
{
   set_alarm(0.1,0.0,&kasuj_bande(0));
   set_alarm(0.1*itof(ILE_BAND)+2.0,0.0,"destruct");
}