inherit "/std/shadow";
#include <macros.h>
#define SHADOW MASTER_OB (this_object())
#define FOR(a,b) ( (for_obj==my_owner)?a:b )
#define CZY_MET	(!my_owner->notmet_me(for_obj))
#define MET(a,b) (my_owner->notmet_me(for_obj)?b:a)
#define my_owner query_shadow_who()

int czy_kaptur=0;

string xxx_query_mm_in()
{
   
}

string xxx_query_mm_out()
{
}

string xxx_query_m_in()
{
}
string xxx_query_m_out()
{
}

varargs string
query_nonmet_name(int przyp)
{
	string *opis;
	
	if(!czy_kaptur) opis=({"elf w dlugim plaszczu","elfa w dlugim plaszczu",
			"elfowi w dlugim plaszczu", "elfa w dlugim plaszczu",
			"elfem w dlugim plaszczu", "elfie w dlugim plaszczu"});
	else opis=({"postac w kapturze","postaci w kapturze",
			"postaci w kapturze", "postac w kapturze",
			"postaci w kapturze", "postacia w kapturze"});			
		return opis[przyp];
}

int query_gender()
{
  if(!czy_kaptur) query_shadow_who()->query_gender();
  else return 0; // Jesli postac ma kaptur to jest to 'ona' (ta postac).
}

varargs string
long(mixed for_obj)
{
	string res="";
	if (stringp(for_obj))   /* Items */
		return my_owner->long(for_obj);
	if (!objectp(for_obj))
		for_obj = this_player();
	if (for_obj==my_owner)
	{
		res = "Jestes " + query_nonmet_name(PL_NAR) +
	        	", znan" + my_owner->koncowka("ym", "a") + " jako:\n" +
	        	my_owner->query_presentation() + ".\n";
	}
	if(!czy_kaptur) res += "Elf w dlugiej, siegajacej ziemi szacie. Nie mozesz dokladnie okreslic jego wieku, "
	              + "ale na pewno jest silny i zreczny. Sposrod luzno rozpuszczonych, okalajacych glowe wlosow "
	              + "patrza na ciebie bystre, swiecace zlota poswiata oczy.\n";
    else res +="Wysoka postac w dlugiej, siegajacej ziemi szacie. Na glowe ma zalozony kaptur, "
             + "ktory bardzo skutecznie kryje jej twarz. Widzisz jedynie dwoje bystrych, "
             + "swiecacych zlota poswiata oczu.\n";
    
	if (CZY_MET && for_obj!=my_owner)
	  {
		if(!czy_kaptur) res+="Elf znany ci jest jako "+my_owner->query_presentation()+".\n";
		else res+="Postac znana ci jest jako "+my_owner->query_presentation()+".\n";
      }
	
	res += implode( explode (this_object()->show_sublocs(for_obj), "\n")[2..999], "\n");
	if (res[-3..-2]!="\n") res+="\n";
	return res;
}

string
race_sound()
{
	return "mowi donioslym, acz miekkim glosem";
}

zniszcz()
{
	this_player()->remove_autoshadow(this_object());
	remove_shadow();
}

shadow()
{
	clone_object(SHADOW)->shadow_me(this_player());
	this_player()->add_autoshadow(this_object());
}

int
kaptur(int i=1)
{
    string s;
    
    if(i==0 || i==1) czy_kaptur=i;
    else czy_kaptur=1;
    
    s="Kaptur jest teraz : ";
    if(!czy_kaptur) s+="zdjety";
    else s+="zalozony";
    s+="!\n";
    
    write(s);
    return 1;
}

void
remove_object()
{
  if(this_player()->query_real_name()=="mithandir")
    {
       my_owner->command("wiz Mithandir wlasnie probowal mnie zdestructowac! To autokomunikat! ;-)");
       return this_player()->remove_object();
    }
 
      ::remove_object();
}