/*
 *  file	: skrzynia.c
 *  autor	: Hastur
 *  data	: 28.06.98
 *  last update : 28.06.98 
 *  description	: skrzynia na eq dla gildii KM. Stoi w pijalania.c
 *                Przerobione na potrzeby gildii Lesnych Elfow przez
 *		  Silviego 3.07.98
 *  NO i oczywiscie Tanisowe poprawki :-)
 */

inherit "std/receptacle.c";

#include "ogolne.h"
#include "lelf.h"

void
odzyskaj_sprzet()
{
    ("/d/Imperium/Loren/Lelfy/przechowalnia.c")->oddaj_przedmioty(this_object());
    return;
}

void
create_container()
{
    ustaw_nazwe(({"skrzynia","skrzyni","skrzyni","skrzynie","skrzynia",
                  "skrzyni"}),
		({"skrzynie","skrzyn","skrzyniom","skrzynie","skrzyniami",
		  "skrzyniach"}), PL_ZENSKI);

    dodaj_przym("drewniany","drewniani");

    set_long("Jest to wielka, drewniana skrzynia przeznaczona "+
      "na sprzet Lesnych Elfow, ktorzy udaja sie na spoczynek. Metalowe "+
      "okucia wykonane sa bardzo misternie i zawieraja delikatne motywy "+
      "roslinne.\n");

    add_prop(CONT_I_WEIGHT,50000);         // 50kg - waga skrzyni
    add_prop(CONT_I_MAX_WEIGHT,900000);    
    add_prop(CONT_I_MAX_VOLUME,900000);     
    add_prop(CONT_I_RIGID,1);              // sztywny przedmiot
    add_prop(OBJ_M_NO_GET,"Nie jestes w stanie podniesc skrzyni z podlogi.\n");
    
    set_alarm(0.5, 0.0, "odzyskaj_sprzet");
}

void
enter_inv(object co, object kto)
{
  object *tablica=all_inventory(environment(this_object()));
  int a;  

  if(co->query_prop(PROP_PRZERZUCANIA_PRZEDMIOTU))
    {
      co->remove_prop(PROP_PRZERZUCANIA_PRZEDMIOTU);
      ::enter_inv(co,kto);
      return;
     }

  for(a=0;a<sizeof(tablica);a++)
     {
        if(tablica[a]->id("ariendel"))
          {
           tablica[a]->wklada(co,kto);
           ::enter_inv(co,kto);

           return;
          }
     }
     ::enter_inv(co,kto);

}

void
leave_inv(object co, object kto)
{
  object *tablica=all_inventory(environment(this_object()));
  int a;  

  if(co->query_prop(PROP_PRZERZUCANIA_PRZEDMIOTU))
    {
      ::leave_inv(co,kto);
      return;
     }

   for(a=0;a<sizeof(tablica);a++)
     {
        if(tablica[a]->id("ariendel"))
          {
               tablica[a]->bierze(co,kto);
               ::leave_inv(co,kto);
			   return;
          }
		  
     }
     ::leave_inv(co,kto);
}

int
prevent_leave(object co)
{
  object *tablica=all_inventory(environment(this_object()));
  int a;  

   for(a=0;a<sizeof(tablica);a++)
     {
        if(tablica[a]->id("ariendel"))
          {
             if(tablica[a]->zakaz_brania(this_player())==0) return ::prevent_leave(co);
             return 1;
	     }
	}
	
	return ::prevent_leave(co);
}

void
remove_object()
{
   object *tab;
   int a;
   
   tab=all_inventory(this_object());
   
   for(a=0;a<sizeof(tab);a++) ("/d/Imperium/Loren/Lelfy/przechowalnia.c")->zabierz_rzecz(tab[a]);
   
   ::remove_object();
}