function getNextPageText(textNodeName)
{
	local initialText=core_GetNodeText(textNodeName);
	local regx = regexp(@"{setNextPage:(.*)}");
	local isNextPage = regx.capture(initialText);
	if(isNextPage){
		initialText=initialText.slice(isNextPage[1].begin,isNextPage[1].end);
		initialText=core_ReadTextFile(initialText);
		core_SetNodeText(textNodeName,initialText);
		return true;
	}
	return false;
}

function showFireTutorialReal()
{
	local Path = game_GetCurrentLevelPath();
	showTutorial(core_GetTranslation("GAME.FIRETUTORIAL",Path));
	core_FadeSprite("level_text_button");// Скрываем кнопку так как тьют закрывается по хотспоту
}

function showFireTutorial(params)
{
	core_SetTimeout(1000,"showFireTutorialReal();");
}

function showTooltip(tooltipText)
// Called from engine
{
	if(game_IsLevelInPlay()==0)
	{
		return;
	}
	core_OpenDialog("level_tooltip");
	core_SetNodeText("level_tooltip_body",tooltipText);
};

function showTutorial(tooltipText)
// Called from engine
{
	if(game_IsLevelInPlay()==0)
	{
		return;
	}
	if(core_checkTextUsingProfile(tooltipText,1))
	{// тьют уже демонстрировался
		return;
	}
	core_OpenDialog("level_tooltip");
	core_SetNodeText("level_tooltip_body",tooltipText);
};

// действие по кнопке закрытия тултипа
// смотрит есть ли следующая страница и если нет - закрывает тултип (убиением соотв. диалога)
function actionCloseTooltip(dialogName)
{
	if(!getNextPageText("level_tooltip_body")){
		core_CloseDialog(dialogName);
	}
}

// Показывает диалоги общения перед миссией
function showMissionBriefing(levelName,initialText)
{
	// Фон, текст с подписью
	core_OpenDialog("level_text");
	core_SetNodeText("level_text_body",initialText);
	core_SetNodeAction("level_text_button","actionCloseBriefing(\""+levelName+"\");");
}

// Закрывает реплики героев перед миссией и если реплики закончились - переходит в уровень
function actionCloseBriefing(dialogName)
{
	if(!getNextPageText("level_text_body")){
		TransitionOpenDialog(dialogName,"fadeToLevel");
	}
}

function actionListAuthorsPage(fieldName)
{
	getNextPageText(fieldName);
}

function showLevelName(levelName)
{
	core_CreateSprite("\\effects\\level_name.spr",{x=0,y=0,z=0,w=1,h=1},"physlayer");
	core_SetNodeText("level_name_label",levelName);
}