private object CreateVoiceActingScriptProcess(object parameter)
{
string outputFile = (string)parameter;
VoiceActorScriptGenerator generator = new VoiceActorScriptGenerator();
CompileMessages results = generator.CreateVoiceActingScript(_agsEditor.CurrentGame);
if (!results.HasErrors)
{
if (_agsEditor.AttemptToGetWriteAccess(outputFile))
{
using (StreamWriter sw = new StreamWriter(outputFile, false))
{
foreach (int charID in generator.LinesByCharacter.Keys)
{
WriteLinesForCharacter(charID, sw, generator.LinesByCharacter[charID]);
}
sw.WriteLine();
sw.WriteLine("*** All text lines, in order of appearance in the scripts ***");
sw.WriteLine();
foreach (GameTextLine line in generator.LinesInOrder)
{
Character character = _agsEditor.CurrentGame.FindCharacterByID(line.CharacterID);
string characterName = "NARRATOR";
if (character != null)
{
characterName = character.ScriptName;
}
WriteLineIfItHasVoiceFile(characterName, line.Text, sw);
}
}
}
}
return results;
}