/* Autor        : ?
 * Last update  : 18.12.97 by Hastur
 *                Przepisalem od nowa funkcje wiaz() - teraz dziala
		  poprawnie.

 * Description  : 
		  Actiony: przywiaz sznurek do haczyka
		  dowiaz
 */


inherit "/std/object";

#include "elear.h"
#include <stdproperties.h>
#include <pl.h>
#include <macros.h>
#include <cmdparse.h>

#define ELEAR_KAN_I_WEDKA  "_elear_kan_i_wedka"

void create_object()
{
  ustaw_nazwe (({"sznurek","sznurka","sznurkowi","sznurek","sznurkiem","sznurku"}),
		({"sznurki","sznurkow","sznurkom","sznurki","sznurkami","sznurkach"}),
		PL_MESKI_NOS_NZYW);
  dodaj_przym ("dlugi","dludzy");
  dodaj_przym ("brudny","brudni");

  set_long ("Masz przed soba produkt przemyslu chalupniczo - tekstylnego, unikalny wynik"
  +" splecenia kilkudziesieciu wlokien lnu i konopii, skreconych pod duzym naciskiem."
  +" Krotko mowiac, widzisz najzwyklejszy w swiecie sznurek. A do tego jeszcze TEN sznurek"
  +" jest brudny i smierdzi jak wszyscy diabli.\n");
}


int
wiaz(string str)
{
    object ob;
    object *o_sznurek, *o_hak;                // tablice do parse_command 

    notify_fail(capitalize(query_verb()) + " co do czego?\n");

    if (!str || !parse_command(str,environment(this_player()), "%i:"
      + PL_BIE + " 'do' %i:" + PL_DOP, o_sznurek, o_hak))
        return 0;	/* Polecenie mialo niewlasciwa skladnie. */

    o_sznurek = NORMAL_ACCESS(o_sznurek, 0, 0);
    o_hak     = NORMAL_ACCESS(o_hak, 0, 0);

    if (!sizeof(o_sznurek) || !sizeof(o_hak))
	return 0;	/* Gracz nie widzi ktoregos z obiektow. */

    if (member_array(this_object(), o_sznurek) == -1)
    	return 0;	/* Gracz nie chce uzyc naszego sznurka. */

    if (sizeof(o_sznurek) != 1 || sizeof(o_sznurek) != 1)
    {
        notify_fail("Nie mozesz przywiazywac do siebie kilku rzeczy naraz.\n");
        return 0;
    }

    if (!(o_hak[0]->query_hook()))
    {
        notify_fail("Nie mozesz przywiazac sznurka do "
                  + o_hak[0]->query_nazwa(PL_DOP) + ".\n");
        return 0;	/* Przy okazji... byc moze dalo by to sie rozwiazac
                           jakos sensowniej ? To troche malo ogolne... */
    }

    if (environment() != this_player() ||
        environment(o_hak[0]) != this_player())
    {
        notify_fail("Jesli chcesz przywiazac do czegos sznurek, musisz "
                  + "trzymac oba te przedmioty.\n");
        return 0;
    }

    write("Przywiazujesz sznurek do " + o_hak[0]->short(PL_DOP)
        + ". Dysponujesz teraz przepiekna, prowizoryczna wedka.\n");
    say(QCIMIE(this_player(),PL_MIA) + " przywiazuje sznurek do haczyka, "
      + "konstruujac tym sposobem przepiekna, prowizoryczna wedke.\n");

    seteuid(getuid());

    this_player()->add_prop(ELEAR_KAN_I_WEDKA,1);

    o_hak[0]->remove_object();

    ob = clone_object(NPATH + "obj/wedka.c");
    ob->move(this_player(), 1);

    remove_object();	/* Po tym nie powinno byc zadnego waznego kodu. */

    return 1;
}

void init()
{
    ::init();
    add_action (wiaz,"przywiaz");
    add_action (wiaz,"dowiaz");
}