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

	DeleteAttribute(&Dialog,"Links");

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

	string sAgreeLink, sDeclineLink;
	switch(Dialog.CurrentNode)
	{
		case "First time":
			dialog.text = "Przedstaw się. Lubię wiedzieć, z kim mam przyjemność.";
			link.l1 = "Nazywam się " + GetCharacterFullName(pchar.id) + ".";
			link.l1.go = "Second Time";
			NextDiag.TempNode = "Second Time";
		break;

		case "Second Time":
			dialog.text = SelectHovernorGreetingsDialog(npchar);
			link.l2 = "Składam tylko wyrazy szacunku i już mnie nie ma.";
			link.l2.go = "exit";
			///////////////////////////////////////////////////////
			/// ĎĐÎÂĹĐĘŔ ĎÎŃŇÓĎËĹÍČß ÍŔ ŃËÓĆÁÓ (ÍČÇŘČÉ ĎĐČÎĐČŇĹŇ)
			///////////////////////////////////////////////////////
			if(!CheckForNationService(sti(npchar.nation)))
			{
				link.l1 = "Chcę panu służyć.";
				link.l1.go = "service";
			}
			///////////////////////////////////////////////////////
			/// ĎĐÎÂĹĐĘŔ ÝĎČÄĹĚČČ ÍŔ ĘÎËÎÍČČ (ÂŰŃŘČÉ ĎĐČÎĐČŇĹŇ)
			///////////////////////////////////////////////////////
			if(CheckForDisease(npchar) == true && !CheckForNationService(sti(npchar.nation)))
			{
				dialog.text = "Wybacz, ale epidemia gorączki bagiennej pustoszy kolonię. Nie mam czasu na pogaduszki.";
				/*if(GetCargoGoods(pchar, GOOD_MEDICINE) > 1)
				{
					link.l1 = "Mam na statku medykamenty, może okażą się pomocne?";
					link.l1.go = "disease_cure";
				}
				else
				{*/
					link.l1 = "Gorączka bagienna? A niech to diabli...";
					link.l1.go = "exit";
				//}
			}
			///////////////////////////////////////////////////////
			/// ĎĐÎÂĹĐĘŔ ÍŔ ÂŰĎÎËÍĹÍÍŰĹ ĘÂĹŃŇŰ
			///////////////////////////////////////////////////////
			if(CheckAttribute(npchar, "quest.questflag"))
			{
				if(sti(npchar.quest.questflag) == 1)//âç˙ňü ęâĺńň
				{
					link.l2 = "Ma pan jakieś zadania dla mnie?";
					link.l2.go = "taking_quest_line";
				}
				if(sti(npchar.quest.questflag) == 2)//ńäŕňü ęâĺńň
				{
					link.l2 = "Misja wypełniona...";
					link.l2.go = "check_quests_lines";
				}
				if(sti(npchar.quest.questflag) == 3)//âńďîěíčňü ęâĺńň
				{
					link.l2 = "Chcę porozmawiać o misji, którą mi pan zlecił.";
					link.l2.go = "reminder_quests_lines";
				}
			}
			NextDiag.TempNode = "Second Time";
		break;

		///////////////////////////////////////////////////////
		/// ÂÇßŇČĹ ĘÂĹŃŇŔ
		///////////////////////////////////////////////////////
		case "taking_quest_line":
			dialog.text = SelectHovernorQuestText(npchar, &sAgreeLink, &sDeclineLink);
			link.l1 = "Interesująca oferta. Przyjmuję ją.";
			link.l1.go = sAgreeLink;
			link.l2 = "Obawiam się, że muszę panu odmówić.";
			link.l2.go = sDeclineLink;
		break;

		///////////////////////////////////////////////////////
		/// ĘÂĹŃŇ ÍŔ ÇŔŐÂŔŇ ÔÎĐŇŔ
		///////////////////////////////////////////////////////
		case "capture_fort_accept":
			dialog.text = "Zatem powodzenia, kapitanie.";
			link.l1 = "Dziękuję.";
			link.l1.go = "exit";
			AcceptCaptureFortQuest(npchar);
		break;

		case "capture_fort_decline":
			dialog.text = "Niestety, muszę cię zmartwić - w chwili obecnej nie mam żadnych zleceń.";
			link.l1 = "W takim razie przyjdę kiedy indziej...";
			link.l1.go = "exit";
		break;

		///////////////////////////////////////////////////////
		/// ĘÂĹŃŇ ÍŔ ÄÎŃŇŔÂĘÓ ĎĐĹÄĚĹŇŔ
		///////////////////////////////////////////////////////
		case "delivery_item_accept":
			dialog.text = "Zatem powodzenia, kapitanie.";
			link.l1 = "Dziekuję.";
			link.l1.go = "exit";
			AcceptDeliveryItemQuest(npchar);
		break;

		case "delivery_item_decline":
			dialog.text = "Niestety, muszę cię zmartwić - w chwili obecnej nie mam żadnych zleceń.";
			link.l1 = "W takim razie przyjdę kiedy indziej...";
			link.l1.go = "exit";
		break;

		///////////////////////////////////////////////////////
		/// ĘÂĹŃŇ ÍŔ ŃÎĎĐÎÂÎĆÄĹÍČĹ ŃÓÄÍŔ
		///////////////////////////////////////////////////////
		case "escort_ship_accept":
			dialog.text = "Zatem powodzenia, kapitanie.";
			link.l1 = "Dziekuję.";
			link.l1.go = "exit";
			AcceptEscortQuest(npchar);
		break;

		case "escort_ship_decline":
			dialog.text = "Niestety, muszę cię zmartwić - w chwili obecnej nie mam żadnych zleceń.";
			link.l1 = "W takim razie przyjdę kiedy indziej...";
			link.l1.go = "exit";
		break;

		///////////////////////////////////////////////////////
		/// ĘÂĹŃŇ ÍŔ ĎÎŇÎĎËĹÍČĹ/ÇŔŐÂŔŇ ŃÓÄÍŔ
		///////////////////////////////////////////////////////
		case "sink_ship_accept":
			dialog.text = "Zatem powodzenia, kapitanie.";
			link.l1 = "Dziękuję, gubernatorze.";
			link.l1.go = "exit";
			AcceptSinkShipQuest(npchar);
		break;

		case "sink_ship_decline":
			dialog.text = "Niestety, muszę cię zmartwić - w chwili obecnej nie mam żadnych zleceń.";
			link.l1 = "W takim razie przyjdę kiedy indziej...";
			link.l1.go = "exit";
		break;

		///////////////////////////////////////////////////////
		/// ĎŔŃŃŔĆČĐŃĘČÉ ĘÂĹŃŇ
		///////////////////////////////////////////////////////
		case "delivery_passenger_accept":
			dialog.text = "Zatem powodzenia, kapitanie.";
			link.l1 = "Ślicznie dziękuję.";
			link.l1.go = "exit";
			AcceptDeliveryPassengerQuest(npchar);
		break;

		case "delivery_passenger_decline":
			dialog.text = "Niestety, muszę cię zmartwić - w chwili obecnej nie mam żadnych zleceń.";
			link.l1 = "W takim razie przyjdę kiedy indziej...";
			link.l1.go = "exit";
			DeletePassengerQuest(npchar);
		break;

		///////////////////////////////////////////////////////
		/// ŇÎĐĂÎÂŰÉ ĘÂĹŃŇ
		///////////////////////////////////////////////////////
		case "delivery_trade_accept":
			dialog.text = "Zatem powodzenia, kapitanie.";
			link.l1 = "Dziekuję.";
			link.l1.go = "exit";
			AcceptDeliveryTradeQuest(npchar);
		break;

		case "delivery_trade_decline":
			dialog.text = "Niestety, muszę cię zmartwić - w chwili obecnej nie mam żadnych zleceń.";
			link.l1 = "W takim razie przyjdę kiedy indziej...";
			link.l1.go = "exit";
		break;

		///////////////////////////////////////////////////////
		/// ĎĐÎÂĹĐĘŔ ÂŰĎÎËÍĹÍČß ĘÂĹŃŇÎÂ
		///////////////////////////////////////////////////////
		case "check_quests_lines":
			if(CheckAttribute(npchar, "quest.punishment"))
			{
				if(sti(npchar.quest.punishment) > 0)
				{
					dialog.text = "Cóż, pomimo iż jest spóźnienie o " + FindRussianDaysString(sti(npchar.quest.punishment)) + ", jestem zadowolony z rezultatów tej misji. Obawiam się jednak, że muszę naliczyć ci karę za to spóźnienie.";
					link.l1 = "Zawsze do usług.";
					link.l1.go = "quest_done_prepare_exit";
				}
				else
				{
					dialog.text = "Cieszy mnie, że powierzone ci zadanie jest wykonane, i to na czas. Pozwól, że wyrażę moją wdzięczność za to.";
					link.l1 = "Dziękuję za docenienie moich wysiłków.";
					link.l1.go = "quest_done_prepare_exit";
				}
			}
			else
			{
				dialog.text = "Cieszy mnie, że powierzone ci zadanie zostało wykonane, i to na czas. Pozwól, że wyrażę moją wdzięczność za to.";
				link.l1 = "Dziękuję za docenienie moich wysiłków.";
				link.l1.go = "quest_done_prepare_exit";
			}
		break;

		case "reminder_quests_lines":
			dialog.text = SelectHovernorQuestReminderText(npchar);
			link.l1 = "Nadal nad tym pracuję.";
			link.l1.go = "exit";
		break;

		///////////////////////////////////////////////////////
		/// ĎÎŃŇÓĎËĹÍČĹ ÍŔ ŃËÓĆÁÓ
		///////////////////////////////////////////////////////
		case "service":
			if (CheckAttribute(pchar, GetNationNameByType(sti(npchar.nation)) + "_line_counter"))
			{
				dialog.text = "Jeśli pamięć mnie nie zawodzi, dałem ci nie tak dawno list polecający mojego rządu.\nNiestety, został on cofnięty, w momencie gdy zacząłeś pracować na dwie strony, kapitanie.";
				link.l1 = "Hmm... to źle, muszę zatem odejść.";
				link.l1.go = "exit";
			}
			else
			{
				dialog.text = "Wspaniale! Potrzebujemy ludzi takich jak ty.";
				link.l1 = "Co mam podpisać, aby formalnościom stało się zadość?";
				link.l1.go = "service_2";
			}
		break;

		case "service_2":
			dialog.text = "Zastanów się zanim podpiszesz. Jeśli zdecydujesz się na zmianę stron po podpisaniu listu polecającego, stracisz sympatię moją i mojego kraju, a to może się odbić na twoim zdrowiu.";
			link.l1 = "Przemyślałem to już. Podpisuję.";
			link.l1.go = "service_3";
			link.l2 = "Och. Słusznie prawisz, potrzebuję trochę czasu do namysłu, zanim to podpiszę.";
			link.l2.go = "exit";
		break;

		case "service_3":
			dialog.text = "Podoba mi się twoje podejście! Teraz musisz już tylko potwierdzić swoją lojalność czynami. Przyjdź do mnie, kiedy już uznasz, że ten list, to coś wiecej niż tylko ozdoba kajuty, a znajdę robotę dla ciebie.";
			link.l1 = "Oczywiście.";
			link.l1.go = "service_exit";
		break;

		case "service_exit":
			NextDiag.CurrentNode = NextDiag.TempNode;
			DialogExit();
			PlayerChangeNation(npchar);
		break;

		case "quest_done_prepare_exit":
			CharacterDoneQuest(npchar);
			if(CheckForNextRank(npchar) > 0)
			{
				dialog.text = "Kapitanie, pozwól sobie pogratulować nowej rangi!";
				link.l1 = "Dziękuję za zaufanie, jakim mnie obdarzyłeś.";
				link.l1.go = "quest_done_exit";
				PlayerNextRank(npchar);
			}
			else
			{
				NextDiag.CurrentNode = NextDiag.TempNode;
				DialogExit();
			}
		break;

		case "quest_done_exit":
			NextDiag.CurrentNode = NextDiag.TempNode;
			DialogExit();
			//CharacterDoneQuest(npchar);
		break;

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

