int iStep = -1;

void ProcessDialogEvent()
{
	ref NPChar;
	aref Link, NextDiag;

	DeleteAttribute(&Dialog,"Links");

	makeref(NPChar,CharacterRef);
	makearef(Link, Dialog.Links);
	makearef(NextDiag, NPChar.Dialog);

	int iQuestResult;

	switch(Dialog.CurrentNode)
	{
		case "First time":
			if(sStory == "cangetmap2" && sti(pchar.money) >= 1000)
			{
			//1
				dialog.text = "O, kapitan Shark! Właśnie chciałem pana widzieć. Nie będzie miał pan nic przeciw, jeśli o coś zapytam?";
				link.l1 = "Strzelaj.";
				link.l1.go = "2";
			}
			else
			{
				if (npchar.quest.meeting == "0")
				{
					dialog.text = "Witam w mojej tawernie. Czym mogę służyć?";
					npchar.quest.meeting = "1";
				}
				else
				{
					dialog.text = "Czym mogę służyć?";
				}
				link.l1 = "Jakie usługi oferujesz?";
				link.l1.go = "interface_exit";
				link.l2 = "Szukam pracy. Możesz mi w tym pomóc?";
				link.l2.go = "work";
				link.l3 = "Potrzebuję pokoju.";
				link.l3.go = "room";
				link.l4 = "Niczym. Już wychodzę.";
				link.l4.go = "exit";
			}

			NextDiag.TempNode = "First time";
		break;

		case "work":
			dialog.text = "Pracy, powiadasz... Porozmawiaj z miejscowym kupcem, on zazwyczaj wynajmuje kapitanów do przewozu towarów.\nMożesz też pogadać z handlarzami obok tawerny - oni też szukają czasem eskorty.\nA jeśli bierzesz pasażerów, popytaj na ulicach - może ktoś chce zabrać się do innej kolonii.\nNo i mamy też gubernatora. Idź do niego na służbę, a dostaniesz tyle roboty, że padniesz.";
			link.l1 = "Dzięki, byłeś mi wielce pomocny. Bywaj.";
			link.l1.go = "exit";
			link.l2 = "Dziekuję za pomoc. Porozmawiajmy o czymś innym.";
			link.l2.go = "First time";
		break;

		case "interface_exit":
			DialogExit();
			NextDiag.CurrentNode =  NextDiag.TempNode;
			LaunchHireCrew();
		break;

		case "Exit":
			NextDiag.CurrentNode = NextDiag.TempNode;
			DialogExit();
		break;

		case "room":
			dialog.text = "Jak długo zamierzasz tu zostać?";
			if(CheckForNight() == true)
			{
				link.l1 = "Do rana.";
				link.l1.go = "room_day";
			}
			else
			{
				link.l1 = "Do zapadnięcia zmierzchu.";
				link.l1.go = "room_night";
			}
		break;

		case "room_day":
			dialog.text = "To będzie kosztowało 5 piastrów.";
			if (makeint(pchar.money) >= 5)
			{
				link.l1 = "Zgoda. Oto pieniądze.";
				link.l1.go = "room_day_wait";
			}
			link.l2 = "Za takie pieniądze prześpię się tutaj, w sali.";
			link.l2.go = "hall_day_wait";
			link.l3 = "Nie teraz. Porozmawiajmy o czymś innym.";
			link.l3.go = "first time";
		break;

		case "room_night":
			dialog.text = "To będzie kosztowało 5 piastrów";
			if (makeint(pchar.money) >= 5)
			{
				link.l1 = "Zgoda. Oto pieniądze.";
				link.l1.go = "room_night_wait";
			}
			link.l2 = "Za takie pieniądze prześpię się tutaj, w sali";
			link.l2.go = "hall_night_wait";
			link.l3 = "Nie teraz. Porozmawiajmy o czymś innym.";
			link.l3.go = "first time";
		break;

		case "room_night_wait":
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
			AddMoneyToCharacter(pchar, -5);
			AddDialogExitQuest("sleep_in_tavern");
			TavernWaitDate2("wait_night");
		break;

		case "hall_night_wait":
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
			TavernWaitDate("wait_night");
		break;

		case "room_day_wait":
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
			AddMoneyToCharacter(pchar, -5);
			AddDialogExitQuest("sleep_in_tavern");
			TavernWaitDate2("wait_day");
		break;

		case "hall_day_wait":
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
			TavernWaitDate("wait_day");
		break;

		case "2":
			dialog.text = "Co byś powiedział, gdyby ktoś zaproponował ci zakup marnego świstka papieru za gigantyczne pieniądze? Dodajmy, iż powiedziałby ci, że ten świstek to, w rzeczy samej, mapa prowadząca do skarbu.";
			link.l1 = "To by zależało od tego, jak gigantyczna byłaby ta cena. Gdyby była zbyt wielka, poczułbym sie obrażony i zapewne użyłbym równie gigantycznej przemocy, aby zmazać tę plamę na honorze...";
			link.l1.go = "3";
		break;

		case "3":
			dialog.text = "...Rozumiem. Hmm... zatem gdyby ktoś wymienił, powiedzmy, sumę 900 piastrów, byłaby to dość bezpieczna oferta?";
			link.l1 = "W żadnym razie. Skręciłbym draniowi kark już w chwili, w której usłyszałbym tak odrażającą ofertę. 900 piastrów to o wiele za dużo, jak na moją wytrzymałość.";
			link.l1.go = "4";
		break;

		case "4":
			dialog.text = "A gdyby ten ktoś powiedział, że na mapie jest wypisane twoje imię? Czy to by zwiększyło zainteresowanie?";
			link.l1 = "Mówiąc to przyciągnąłby moją uwagę, ale też naraziłby się na o wiele większy gniew. W razie niespełnienia obietnic mogłbym zrobić cos niewyobrażalnie okrutnego osobie, która to powiedziała.";
			link.l1.go = "5";
		break;

		case "5":
			dialog.text = "Heh... umiesz się targować, kapitanie. 600 piastrów, i to jest moja ostateczna oferta. Coś na tym muszę zarobić!";
			link.l1 = "Czuję się zaszczycony mogąc spotkać człowieka dostrzegającego światełko rozsądku w morzu mrocznej chciwości. Umowa stoi.";
			link.l1.go = "6";
			link.l2 = "To nadal zbyt wiele. Przy okazji, skarb, do którego mapa prowadzi, mógł już zostać znaleziony, albo w ogóle go tam nie było.";
			link.l2.go = "7";
		break;

		case "6":
			dialog.text = "Interesy z tobą to czysta przyjemność, kapitanie. Zaręczam ci, że nie zawiedziesz się na tym zakupie.";
			link.l1 = "Twoja pazerność musi mieć jakieś granice. Lepiej, żeby ta mapa była cokolwiek warta.";
			link.l1.go = "SL exit map";
		break;

		case "7":
			dialog.text = "Daj spokój, kapitanie. Ale pamiętaj, że to krótkotrwała oferta - wielu ludzi byłoby zainteresowanych tą mapą. Zaoferowałem ci ją za tak niską cenę, ponieważ jest na niej twoje imię. Ale jeśli jej nie chcesz...";
			link.l1 = "A niech cię diabli! Kupię ją.";
			link.l1.go = "6";
			//link.l2 = "Nie jestem nią zainteresowany. Bywaj.";
			//link.l2.go = "SL exit no map";
		break;

		case "SL exit map":
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
			//give map, continue SL
			AddDialogExitQuest("get map 2");
		break;

		case "SL exit no map":
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
			//wrap up SL
			AddDialogExitQuest("refused map");
		break;
	}
}
