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

	DeleteAttribute(&Dialog,"Links");

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

	switch(Dialog.CurrentNode)
	{
		case "First time":
			dialog.text = "Nie martw się, będę na pokładzie na czas.";
			link.l1 = "W porządku.";
			link.l1.go = "exit";

			NextDiag.TempNode = "First time";
		break;

		case "Second time":
			dialog.text = "Bez obawy, kapitanie, będę na pokładzie o czasie.";
			link.l1 = "Miło mi to słyszeć.";
			link.l1.go = "exit";

			NextDiag.TempNode = "Second time";
		break;

		case "Successful_Travel":
			dialog.text = "Dziękuję za spokojną podróż.";
			link.l1 = "Nie ma za co. Jeśli będziesz kiedyś w potrzebie, daj mi znać.";
			link.l1.go = "succesful_travel_exit";
			NextDiag.TempNode = "First time";
		break;

		case "Failed_Travel":
			dialog.text = "Spóźniliśmy się o " + FindRussianDaysString(sti(Quests[sti(npchar.CurrentQuest)].l.contribution)) + " ! Z tego to powodu zmuszony jestem naliczyć ci karę!";
			link.l1 = "Jak sobie życzysz, to nie jest wielka suma.";
			link.l1.go = "succesful_travel_exit";
			NextDiag.TempNode = "First time";
		break;

		case "Passenger_hear":
			dialog.text = "Wybacz to najście, ale słyszałem, że szukasz uczciwej pracy, a ja chyba mam coś, co może cię zainteresować.";
			link.l1 = "Masz rację, szukam uczciwej pracy.";
			link.l1.go = "Passenger_hear_2";
			link.l2 = "Mylisz się. Nie szukam zajęcia.";
			link.l2.go = "Passenger_hear_denied";
		break;

		case "Passenger_hear_2":
			dialog.text = "Wspaniale! Widzisz, muszę się dostać do portu " + XI_ConvertString("Colony"+Quests[sti(npchar.CurrentQuest)].l.target_colony) + " w kolonii " + XI_ConvertString(colonies[FindColony(Quests[sti(npchar.CurrentQuest)].l.target_colony)].island) + ", w " +FindRussianDaysString(Quests[sti(npchar.CurrentQuest)].l.time) +". Zapłacę ci " + FindRussianMoneyString(Quests[sti(npchar.CurrentQuest)].l.money) + ". Co ty na to?";
			link.l1 = "A ja na to: zgoda.";
			link.l1.go = "Passenger_hear_accept";
			link.l2 = "Nie, to mnie nie interesuje.";
			link.l2.go = "Passenger_hear_denied";
		break;

		case "Passenger_hear_accept":
			dialog.text = "Cieszę się, że doszliśmy do porozumienia, kapitanie.";
			link.l1 = "Tak, tak. Mam tutaj jeszcze coś do zrobienia, dlatego radzę ci, udaj się na pokład mojego statku. Ja dołączę do ciebie później.";
			link.l1.go = "pass_accept_exit";
		break;

		case "Passenger_hear_denied":
			dialog.text = "O wybaczenie proszę. Żegnaj.";
			link.l1 = "Nie ma sprawy, każdemu może się zdarzyć.";
			link.l1.go = "pass_decline_exit";
		break;

		case "Passenger_delayed":
			dialog.text = "Och, jesteś wreszcie. Czekam tu na ciebie od pewnego czasu.";
			link.l1 = "Zatem wchodź na pokład statku, wyruszamy, jak tylko załatwię moje sprawy.";
			link.l1.go = "pass_accept_exit";
		break;

		case "Convoy_delayed":
			NextDiag.TempNode = "Convoy_delayed";
			dialog.text = "Czekam na ciebie od tylu dni. Już się zaczynałem martwić! Kiedy odpływamy?";
			if(CheckForConvoyFreeStack() == 1)
			{
				link.l1 = "Kiedy zechcesz. Wchodź na pokład. Podniesiemy żagle, jak tylko załatwię moje sprawy.";
				link.l1.go = "convoy_accept_exit";
			}
			else
			{
				link.l2 = "Nie mam w tej chwili miejsca na żadnym ze statków mojej eskadry, ale jak tylko coś wymyślę, dam ci znać.";
				link.l2.go = "convoy_delay_exit";
			}
		break;

		case "Convoy_completed":
			dialog.text = "Dziękuję za spokojną podróż.";
			link.l1 = "Nie ma za co.";
			link.l1.go = "convoy_successful_exit";
		break;

		case "convoy_accept_exit":
			NextDiag.TempNode = "Second time";
			NextDiag.CurrentNode = NextDiag.TempNode;
			DialogExit();
			AcceptEscortQuest(npchar);
		break;

		case "convoy_delay_exit":
			NextDiag.CurrentNode = NextDiag.TempNode;
			DialogExit();
			DelayEscortQuest(npchar);
		break;

		case "pass_accept_exit":
			NextDiag.CurrentNode = NextDiag.TempNode;
			DialogExit();
			AcceptDeliveryPassengerQuest(npchar);
		break;

		case "pass_decline_exit":
			NextDiag.CurrentNode = NextDiag.TempNode;
			DialogExit();
			DeletePassengerQuest(npchar);
		break;

		case "succesful_travel_exit":
			NextDiag.CurrentNode = NextDiag.TempNode;
			DialogExit();
			CompletePassengerQuest(npchar);
		break;

		case "convoy_successful_exit":
			NextDiag.CurrentNode = NextDiag.TempNode;
			DialogExit();
			HalfCompleteEscortTradeShipQuest(npchar);
		break;

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

