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

	DeleteAttribute(&Dialog,"Links");

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

	if(CheckAttribute(npchar, "quest.questflag"))
	{
		if(sti(npchar.quest.questflag) != 1)
		{
			npchar.quest.questflag = CheckSlaveQuest(npchar);
			npchar.quest.questflag.model = SetModelFlag(npchar);
		}
	}

	switch(Dialog.CurrentNode)
	{
		case "First time":
			if(CheckAttribute(npchar, "quest.questflag"))
			{
				dialog.text = "Cieszę się, że cię widzę, kapitanie. Dostarczyłeś już " + FindRussianSlavesString(sti(Quests[sti(npchar.currentquest)].l.slaves), "Acc") + ", tak jak się umawialiśmy?";
				if(sti(npchar.quest.questflag) == 1)
				{
					dialog.text = SelectHuntForSlavesDialog(npchar);
					link.l1 = "To robota, jakiej mi potrzeba. Biorę ją.";
					link.l1.go = "work_accepted";
					link.l2 = "To nie dla mnie. Poszukaj kogoś innego.";
					link.l2.go = "work_declined";
				}
				if(sti(npchar.quest.questflag) == 2)
				{
					link.l1 = "Tak. Kontynuujemy rozładunek.";
					link.l1.go = "work_completed";
				}
				if(sti(npchar.quest.questflag) == 3)
				{
					link.l1 = "Jeszcze nie, ale pracuję nad tym.";
					link.l1.go = "exit";
				}
				if(sti(npchar.quest.questflag) == -1)
				{
					dialog.text = "Nie mam ci nic do powiedzenia.";
					link.l1 = "Więc wynoś się!";
					link.l1.go = "exit";
				}
			}
			else
			{
				dialog.text = "Nie mam ci nic do powiedzenia.";
				link.l1 = "Więc wynoś się!";
				link.l1.go = "exit";
			}

			NextDiag.TempNode = "First time";
		break;

		case "work_completed":
			dialog.text = "Robienie z tobą interesów to prawdziwa przyjemność! Oto pieniądze i moja wdzięczność.";
			link.l1 = "Cieszy mnie to, zwłaszcza że popierasz swoje uznanie brzęczącą monetą.";
			link.l1.go = "work_completed_exit";
		break;

		case "work_accepted":
			dialog.text = "Zatem czekam na ciebie, kapitanie. Na ciebie i na towary, co do których się umówiliśmy.";
			link.l1 = "Postaram się wykonać zadanie jak najszybciej.";
			link.l1.go = "exit";
			AcceptSlavesQuest(npchar);
		break;

		case "work_declined":
			dialog.text = "Hej, to była tylko propozycja. Żegnaj, kapitanie.";
			link.l1 = "Powodzenia.";
			link.l1.go = "work_declined_exit";
		break;

		case "work_completed_exit":
			NextDiag.CurrentNode = NextDiag.TempNode;
			DialogExit();
			CompleteSlavesQuest(npchar);
		break;

		case "work_declined_exit":
			NextDiag.CurrentNode = NextDiag.TempNode;
			DialogExit();
			DeleteSlavesQuest(npchar);
		break;

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