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

	DeleteAttribute(&Dialog,"Links");

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

	int iResult;


	switch(Dialog.CurrentNode)
	{
		case "First time":
			if(CheckForQuestFree(npchar) == 1)
			{
				iResult = GenerateEscortQuest(npchar, 0, "", 0, rand(3), 0, 0);
				trace("iResult = " + iResult);
				if (iResult == 0)
				{
					dialog.text = "Szukam kogoś, kto da eskortę mojemu statkowi do portu" + XI_ConvertString("colony"+Quests[sti(npchar.currentquest)].l.target_colony) + ", na wyspie " + XI_ConvertString(colonies[FindColony(Quests[sti(npchar.currentquest)].l.target_colony)].island) +  "\nzapłacę " + FindRussianMoneyString(Quests[sti(npchar.CurrentQuest)].l.money)  + " piastrów za tę przysługę. Co ty na to?";
					link.l1 = "To dobra oferta. Biorę tę pracę.";
					link.l1.go = "escort_quest_accept";
					link.l2 = "Nie sądzę, żebym był zainteresowany.";
					link.l2.go = "exit";
				}
				if(iResult == -1)
				{
					dialog.text = "Wybacz. Nie mam chęci na rozmowy.";
					link.l1 = "W porządku.";
					link.l1.go = "exit";
					EraseQuestFreeState(npchar);
				}
				if(iResult == -2)
				{
					dialog.text = "Hej, kapitanie. Twoja reputacja cuchnie gorzej niż moje buciory, dlatego nie mam zamiaru robić z tobą żadnych interesów.";
					link.l1 = "Każ się wypchać.";
					link.l1.go = "exit";
				}
				if(iResult == -3)
				{
					dialog.text = "Widzę, kapitanie, że masz już skompletowaną eskadrę. Szkoda, bo miałbym dla ciebie ofertę.";
					link.l1 = "Wróćmy do tej sprawy później.";
					link.l1.go = "exit";
				}
			}
			else
			{
				dialog.text = "Wybacz. Nie mam chęci na rozmowy.";
				link.l1 = "W porządku.";
				link.l1.go = "exit";
			}

			NextDiag.TempNode = "First time";
		break;

		case "escort_quest_accept":
			dialog.text = "Zatem jesteśmy umówieni, kapitanie? Ale mam mały waruneczek - musimy dostarczyć ten ładunek do " + FindRussianDaysString(Quests[sti(npchar.CurrentQuest)].l.time) + ".";
			link.l1 = "Tak, rozumiem, że nie możemy się spóźnić.";
			link.l1.go = "exit";
			AcceptEscortQuest(npchar);
		break;

		case "SelectOffer":
			dialog.text = SelectEscortShipDialog(npchar);
			link.l1 = "Umowa stoi.";
			link.l1.go = "accept_offer_exit";
			link.l2 = "Nie jestem zainteresowany.";
			link.l2.go = "decline_offer_exit";
		break;

		case "accept_offer_exit":
			AcceptEscortQuest(npchar);
			NextDiag.CurrentNode = NextDiag.TempNode;
			DialogExit();
		break;

		case "decline_offer_exit":
			DeleteEscortQuest(npchar);
			NextDiag.CurrentNode = NextDiag.TempNode;
			DialogExit();
		break;

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