/*
 *    Plik includowany przez fryzjera i fryzurke, zawierajacy opisy i liste fryzur.
 *
 *  UWAGA : Skopanie owocuje skopaniem wszysciutkich fryzur graczy na calym mudzie ( po ponownym zalogowaniu ) :-)
 *
 *     by Tanis - maj 1998
 */

/* 
 * UWAGA : Element 0 kazdej z ponizszych tablic powinien byc w miare neutralny,
 *         bo jest on wyswietlany w razie jakiejs awarii ( fryzury maja parametry
 *         ustawione na 0)
 */
 
/*
 * Stan na dzien 8.6.98 :
 *
 * 36 kolorow
 *  8 dlugosci
 * 50 typow
 *
 * 52 zastrzezone polaczenia dlugosc wlosow <-> typ wlosow
 * 
 * Kombinacje dlugosc*typ - zastrzezone pary = 400 - 52 = 348
 *
 * Kombinacji ogolem = 12528
 *
 */

string *wszystkie_kolory_wlosow=({"bezbarwne",
		"kruczoczarne",
		"czarne",
		"ciemnobrazowe",
		"brazowe",
		"jasnobrazowe",
		"zlocistobrazowe",
		"kasztanowe",
		"orzechowe",
		"ciemnoszare",
		"szare",
		"jasnoszare",
		"ciemnoniebieskie",
		"niebieskie",
		"jasnoniebieskie",
                "blekitne",
		"ciemnozielone",
		"zielone",
		"jasnozielone",
		"wisniowe",
		"ciemnoczerwone",
		"purpurowe",
		"czerwone",
		"ognistoczerwone",
		"jasnoczerwone",
		"karmazynowe",
		"rude",
		"ognistorude",
		"pomaranczowe",
		"blond",
		"srebrzyste",
		"srebrne",
		"zlociste",
		"zlote",
		"ogniste",
		"biale",
		"snieznobiale"});

string *wszystkie_dlugosci_wlosow=({"sredniej dlugosci",
                "bardzo krotkie",
		"krotkie",
		"sredniej dlugosci",
		"dlugie",
		"bardzo dlugie",
		"siegajace szyi",
		"siegajace ramion",
		"siegajace pasa"});

mixed *wszystkie_typy_wlosow=({ ({"0", "nieuczesane wlosy"}),
               ({"1", "wlosy na jeza"}),
               ({"2", "luzno rozpuszczone wlosy"}),
               ({"3", "wlosy elegancko uczesane"}),
               ({"4", "wlosy upiete w ciasny kok"}),
               ({"5", "wlosy upiete w kok z pasmami wokol twarzy"}),
               ({"6", "wlosy upiete w wysoki kok"}),
               ({"7", "wlosy upiete w luzny kok"}),
               ({"8", "wlosy zaplecione w warkocze"}),
               ({"9", "wlosy zaplecione w warkocz"}),
               ({"10", "wlosy w ksztalcie korony z warkoczy"}),
               ({"11", "wlosy upiete w konski ogon"}),
               ({"12", "wlosy upiete w kitke"}),
               ({"13", "wlosy upiete w dwie kitki"}),
               ({"14", "wlosy luzno zwiazane z tylu"}),
               ({"15", "wlosy zaczesane do tylu"}),
               ({"16", "wlosy zaczesane na boki"}),
               ({"17", "wlosy zaczesane na lewa strone"}),
               ({"18", "wlosy zaczesane na prawa strone"}),
               ({"19", "wlosy zaczesane naokolo glowy"}),
               ({"20", "wlosy z grzywka opadajaca na oczy"}),
               ({"21", "gladkie wlosy z loczkami"}),
               ({"22", "calkowicie proste wlosy"}),
               ({"23", "lekko falujace wlosy"}),
               ({"24", "wlosy skrecone w ciasne loki"}),
               ({"25", "wlosy spiete spinka"}),
               ({"26", "wlosy spiete klamerkami"}),
               ({"27", "odgarniete na bok wlosy"}),
               ({"28", "wlosy ulozone w fale"}),
               ({"29", "falujace wlosy zczesane do tylu"}),
               ({"30", "proste, wywiniete na zewnatrz wlosy"}),
               
               ({"31", "czesciowo wyrwane wlosy"}),
               ({"32", "pokryte zastarzala krwia przeciwnikow wlosy"}),
               ({"33", "lsniaco czyste wlosy"}),
               ({"34", "brudne, zaniedbane wlosy"}),
               ({"35", "wlosy przeplecione kwieciem i ziolami"}),
               ({"36", "wlosy postawione na sztorc wokol glowy"}),
               ({"37", "wlosy postawione na sztorc na czubku glowy"}),
               ({"38", "wlosy w strakach po jednej stronie twarzy"}),
               ({"39", "wlosy z wplecionymi piorami ptakow"}),
               ({"40", "wlosy niechlujnie przyciete"}),
               ({"41", "blyszczace wlosy"}),
               ({"42", "aksamitnie matowe wlosy"}),
               ({"43", "miekkie i puszyste wlosy"}),
               ({"44", "mocno przerzedzone wlosy"}),
               ({"45", "lekko przerzedzone wlosy"}),
               ({"46", "przyproszone siwizna wlosy"}),
               ({"47", "gladko przylizane wlosy"}),
               ({"48", "wlosy zwiazane pod szyja"}),
               ({"49", "wlosy ogolone tuz przy samej skorze"}),
               ({"50", "wlosy zwiazane na czole"}) });
               

string *wszystkie_opisy_typow=({"wlosy sa nieuczesane",
                "wlosy sa ostrzyzone na jeza",
                "wlosy sa luzno rozpuszczone",
                "wlosy sa elegancko uczesane",
                "wlosy upiete sa w ciasno zwiniety kok z tylu glowy",
                "wlosy sa upiete w kok z pojedynczymi pasmami wiszacymi wokol twarzy",
                "wlosy sa upiete w wysoki, tapirowany kok na czubku glowy",
                "wlosy zaczesane sa w luzny kok, przykryty ozdobna siateczka",
                "wlosy zaplecione sa w dwa warkocze",
                "wlosy zaplecione sa w gruby warkocz z tylu glowy",
                "wlosy upiete sa na czubku glowy na ksztalt korony z warkoczy",
                "wlosy zebrane sa w konski ogon z tylu glowy",
                "wlosy zebrane sa w kitke na czubku glowy",
                "wlosy zebrane sa w dwie kitki przy uszach",
                "wlosy sa luzno zwiazane z tylu glowy, z pojedynczymi pasmami wymykajacymi sie tu i owdzie", 
                "wlosy sa gladko zaczesane do tylu",
                "wlosy sa zaczesane na boki z przedzialkiem posrodku glowy",
                "wlosy sa zaczesane na lewa strone",
                "wlosy zaczesane sa na prawa strone",
                "wlosy sa zaczesane naokolo glowy, z grzywka przycieta rowno nad brwiami",
                "wlosy sa delikatnie wycieniowane z gesta grzywka opadajaca na oczy",
                "wlosy sa gladkie, z loczkami skreconymi tuz przy szyi",
                "wlosy sa calkowicie proste",
                "wlosy sa lekko falujace",
                "wlosy skrecone sa w geste, ciasne loki",
                "wlosy sa czesciowo zebrane zapinka na czubku glowy, a czesciowo "
                  + "opadajace luzno naokolo glowy",
                "wlosy sa spiete po bokach glowy przy pomocy dwoch klamer",
                "wlosy przyciete sa tuz przy uszach i odgarniete na bok",
                "wlosy ulozone sa w luzne fale i podtrzymane zapinka z jednej strony glowy",
                "falujace wlosy sa zaczesane do tylu i podtrzymane delikatnym diademem",
                "wlosy sa proste, wywiniete na zewnatrz przy szyi i karku",
                
                "wlosy sa czesciowo wyrwane",
                "wlosy sa pokryte zastarzala krwia przeciwnikow",
                "wlosy sa lsniaco czyste i zadbane",
                "wlosy sa wyjatkowo brudne i zaniedbane",
                "wlosy sa przeplecione kwieciem i ziolami",
                "wlosy sa postawione na sztorc wokol glowy",
                "wlosy sa postawione na sztorc na czubku glowy",
                "wlosy sa wygolone po jednej stronie glowy, zwisajace zas w "
                  + "strakach po drugiej",
                "wlosy sa przeplecione piorami dzikiego ptactwa",
                "wlosy sa krzywo, niechlujnie przyciete",
                "wlosy posmarowane sa jakims tluszczem i lsnia, odbijajac nawet najslabsze swiatlo",
                "wlosy sa aksamitnie matowe",
                "wlosy sa miekkie i puszyste",
                "wlosy sa mocno przerzedzone",
                "wlosy sa lekko przerzedzone",
                "wlosy sa przyproszone siwizna",
                "wlosy sa gladko przylizane do skory glowy",
                "wlosy sa zwiazane pod szyja",
                "wlosy sa ogolone tuz przy samej skorze",
                "wlosy sa zwiazane na czole" });
                
/*
 * Ponizej jest tablica, w ktorej numer "podtablicy"
 * odpowiada numerowi typu wlosow. Zawartosc takiej podtablicy
 * to numery dlugosci wlosow, z ktorymi dany typ koliduje.
 */ 
 
mixed *sprzeczne_pary=({ ({}), // typ nr 0
                ({ 4,5,6,7,8 }),
                ({ }),
                ({ }),
                ({ 6,7,8 }),
                ({ }),
                ({ 6,7,8 }),
                ({ 6,7,8 }),
                ({ }),
                ({ }),
                ({ 6,7,8 }),
                ({ }),
                ({ }),
                ({ }),
                ({ }), 
                ({ }),
                ({ }),
                ({ }),
                ({ }),
                ({ }),
                ({ 5,7,8 }),
                ({ 5,7,8 }),
                ({ }),
                ({ }),
                ({ }),
                ({ }), 
                ({ }),
                ({ 5,6,7,8 }),
                ({ }),
                ({ }),
                ({ 4,5,8 }),
                
                ({ }),
                ({ }),
                ({ }),
                ({ }),
                ({ 1 }),
                ({ 1 }),
                ({ 1 }),
                ({ 1 }), 
                ({ 1 }),
                ({ }),
                ({ }),
                ({ }),
                ({ }),
                ({ }),
                ({ }),
                ({ }),
                ({ 4,5,6,7,8 }),
                ({ 6,7,8 }),
                ({ 3,4,5,6,7,8 }),
                ({ 6,7,8 }) });

/*
 * Dlugosci i typy, ktore beda zasloniete przez helm.
 * Jesli bedzie typ LUB dlugosc z ponizszej tablicy, to fryzura jest zaslonieta.
 */

int *typy_zaslaniane=({0,1,3,4,5,6,7,10,16,19,20,25,26,27,28,29,31,36,37,39,47,49,50});
int *dlugosci_zaslaniane=({0,1,2,6});

/*
 * Typy i dlugosci fryzur, ktore nie nadaja sie do poszczegolnych emotow.
 *
 *  Kolejnosc emotow :
 *    frpopraw, frprzeczesz, frczochraj, frumyj, frodgarnij, frpotrzasnij,
 *    frpociagnij, frucho, frtwarz, frrwij.
 */

mixed *typy_bledne=({ ({0}),
                      ({0,4,6,7,10}), 
                      ({0,4,6,7,10}),
                      ({0}),
                      ({0,1,4,6,7,8,9,10,11,12,13,14,25,26,48,49,50}),
                      ({0,1,4,6,7,10,25,26,48,49,50}),
                      ({0,1,49}),
                      ({0,1,4,6,7,8,9,10,11,12,13,14,25,26,48,49,50}),
                      ({0,1,4,6,7,8,9,10,11,12,13,14,25,26,48,49,50}),
                      ({0,1,49}) });
                      
mixed *dlugosci_bledne=({ ({0}), 
                      ({0}),
                      ({0}),
                      ({0}),
                      ({0,1,2}),
                      ({0,1,2}),
                      ({0,1}),
                      ({0,1,2}),
                      ({0}),
                      ({0,1}) });
                      
string
opis_fryzury(int dlugosc, int kolor, int typ)
{
  return(wszystkie_dlugosci_wlosow[dlugosc]+", "+wszystkie_kolory_wlosow[kolor]+" "+wszystkie_opisy_typow[typ]);
}

int
znajdz_dlugosc(string jaka_dlugosc)
{
  int a;
  for(a=1;a<sizeof(wszystkie_dlugosci_wlosow);a++) // Celowo nie zprawdzamy 0 elementu tablicy, gdzy jest to tylko element "alarmowy"
     {
       if(jaka_dlugosc==wszystkie_dlugosci_wlosow[a])
         {
           return a;
         }
     }
  return 0;
}

int
znajdz_kolor(string jaki_kolor)
{
  int a;
  for(a=1;a<sizeof(wszystkie_kolory_wlosow);a++) // Celowo nie zprawdzamy 0 elementu tablicy, gdzy jest to tylko element "alarmowy"
     {
       if(jaki_kolor==wszystkie_kolory_wlosow[a])
         {
           return a;
         }
     }
  return 0;
}

int
znajdz_typ(string jaki_typ)
{
  int a;
  for(a=1;a<sizeof(wszystkie_typy_wlosow);a++) // Celowo nie zprawdzamy 0 elementu tablicy, gdzy jest to tylko element "alarmowy"
     {
       if(jaki_typ==wszystkie_typy_wlosow[a][0] || jaki_typ==wszystkie_typy_wlosow[a][1])
         {
           return a;
         }
     }
  return 0;
}

string
zwroc_dlugosc(int numer)
{
  return wszystkie_dlugosci_wlosow[numer];
}

string
zwroc_kolor(int numer)
{
  return wszystkie_kolory_wlosow[numer];
}

string
*zwroc_typ(int numer)
{
  return wszystkie_typy_wlosow[numer];
}

int
zwroc_ilosc_dlugosci()
{
  return sizeof(wszystkie_dlugosci_wlosow);
}

int
zwroc_ilosc_kolorow()
{
  return sizeof(wszystkie_kolory_wlosow);
}

int
zwroc_ilosc_typow()
{
  return sizeof(wszystkie_typy_wlosow);
}

/*
 * Funkcja sprawdza poprawnosc fryzury. Sprzeczne pary typ - dlugosc sa w tablicy 
 *           mixed *sprzeczne_pary
 * Nie powinno przeciez byc fryzurek typu : "Siegajace do pasa, brazowe wlosy ostrzyzone na jeza."
 *
 */

int
sprawdz_poprawnosc(int jaka_dlug, int jaki_typ) 
{
  int a;

  for(a=0;a<sizeof(sprzeczne_pary[jaki_typ]);a++)
     {
        if(sprzeczne_pary[jaki_typ][a]==jaka_dlug) return 0;
     }
  return 1;
}

string
zwroc_dlugosci_wlosow()
{
  string napis="";
  int a;

  napis="\n   Dlugosci wlosow : \n";

  for(a=1;a<sizeof(wszystkie_dlugosci_wlosow);a++)
     {
	if(a!=1)
          {
            napis=napis+", ";
            napis=napis+wszystkie_dlugosci_wlosow[a];
          }
        else napis=napis+capitalize(wszystkie_dlugosci_wlosow[a]);
     }

   napis=napis+".\n";

  return napis;
}

string
zwroc_kolory_wlosow()
{
  string napis="";
  int a;

  napis="\n   Kolory wlosow : \n";

  for(a=1;a<sizeof(wszystkie_kolory_wlosow);a++)
     {
	if(a!=1)
          {
            napis=napis+", ";
            napis=napis+wszystkie_kolory_wlosow[a];
          }
        else napis=napis+capitalize(wszystkie_kolory_wlosow[a]);
     }

   napis=napis+".\n";

  return napis;
}

string
zwroc_typy_wlosow()
{
  string napis="";
  int a;

  napis="\n   Typy fryzur : \n\n";

  for(a=1;a<sizeof(wszystkie_typy_wlosow);a++)
     {
        napis = napis + wszystkie_typy_wlosow[a][0] +". "+ capitalize(wszystkie_typy_wlosow[a][1])+"\n";
     }

  return napis;
}