// Эти методы обеспечивают различные виды художественного открытия диалога (левела) // - перетекание через затемнение экрана
function runTransitionInThread_Fade2Level(dialogToOpen)
{
	game_createFader_WhiteCurtain("betlevFader",1500);
	Wait(2000);
	core_OpenDialog(dialogToOpen);
	::suspend;
	core_FadeSprite("betlevFader",-1.0,0.0,1500,1);
	return;
}

function runTransitionInThread_Fade(dialogToOpen)
{
	game_createFader_BlackCurtain("betlevFader",500);
	Wait(1000);
	core_OpenDialog(dialogToOpen);
	::suspend;
	core_FadeSprite("betlevFader",-1.0,0.0,1500,1);
	return;
}

function TransitionLoop()
{
	if(transitionSequenceThread.getstatus()=="suspended"){
		transitionSequenceThread.wakeup();
		return;
	}
	core_CancelInterval(transitionInterval);
	delete transitionSequenceThread;
	delete transitionInterval;
}

function TransitionOpenDialog(dialogToOpen,transitionName)
{
	if(transitionName.len()==0){
		core_OpenDialog(dialogToOpen);
		return;
	}
	if("transitionInterval" in this)
	{
		//core_Alert("!!! Error !!!");
		return;//Больше одного нельзя!
	}
	// Создаем отдельный поток на аниматоре, который запустит переход, дождется транзишна и закончит переход
	if(transitionName=="fade"){
		transitionSequenceThread <- ::newthread(runTransitionInThread_Fade);
	}
	if(transitionName=="fadeToLevel"){
		transitionSequenceThread <- ::newthread(runTransitionInThread_Fade2Level);
	}
	transitionSequenceThread.call(dialogToOpen);
	transitionInterval <- core_SetInterval(200,"TransitionLoop();");
}