private object CompileScripts(object parameter)
{
CompileScriptsParameters parameters = (CompileScriptsParameters)parameter;
CompileMessages errors = parameters.Errors;
CompileMessage errorToReturn = null;
RegenerateScriptHeader(null);
List<Script> headers = GetInternalScriptHeaders();
try
{
Script dialogScripts = CompileDialogs(errors, parameters.RebuildAll);
_game.ScriptsToCompile = new ScriptsAndHeaders();
foreach (Script script in GetInternalScriptModules())
{
CompileScript(script, headers, errors, false);
_game.ScriptsToCompile.Add(new ScriptAndHeader(null, script));
}
foreach (ScriptAndHeader scripts in _game.RootScriptFolder.AllItemsFlat)
{
headers.Add(scripts.Header);
CompileScript(scripts.Script, headers, errors, false);
_game.ScriptsToCompile.Add(scripts);
}
CompileScript(dialogScripts, headers, errors, false);
_game.ScriptsToCompile.Add(new ScriptAndHeader(null, dialogScripts));
}
catch (CompileMessage ex)
{
errorToReturn = ex;
}
if (ExtraCompilationStep != null)
{
ExtraCompilationStep(errors);
}
return errorToReturn;
}