private static void SetSubtitles(aqq model, Dictionary <string, string> dictionary) { var processed = new Dictionary <string, bool>(); var queue = new Queue <dd2>(); dd2 startElement = model.b(); queue.Enqueue(startElement); while (queue.Count > 0) { dd2 current = queue.Dequeue(); if (processed.ContainsKey(current.Name)) { continue; } switch (current) { case yz question: { Dictionary <string, string> dict = question.d(); if (dictionary.ContainsKey(question.Name)) { string str = dictionary[question.Name]; dict["English"] = str; } foreach (dpy answer in question.PossibleAnswers) { queue.Enqueue(answer); } break; } case c74 storyElement: { Dictionary <string, string> dict = storyElement.d(); if (dictionary.ContainsKey(storyElement.Name)) { string str = dictionary[storyElement.Name]; dict["English"] = str; } break; } } foreach (dd2 step in current.PossibleNextSteps) { queue.Enqueue(step); } processed.Add(current.Name, true); } }
private static void Write(string gameFile, string textsFile, string outputFile) { Initialize(); switch (Path.GetExtension(gameFile)) { case ".udlg": { Dictionary <string, string> texts = ReadTexts(textsFile); aqq model = Dialogs.SetSubtitles(gameFile, texts); FileManager.Save(model, outputFile, false); break; } case ".k": { Dictionary <string, string> texts = ReadTexts(textsFile); aj8 model = Knowledge.SetSubtitles(gameFile, texts); FileManager.Save(model, outputFile, true); break; } case ".item": { Dictionary <string, string> texts = ReadTexts(textsFile); bqj model = Items.SetSubtitles(gameFile, texts); FileManager.Save(model, outputFile, true); break; } case ".uz": { Dictionary <string, string> texts = ReadTexts(textsFile); cfs model = Zone.SetSubtitles(gameFile, texts); FileManager.Save(model, outputFile, true); break; } case ".uzl": { Dictionary <string, string> texts = ReadTexts(textsFile); cy3 model = ZoneLayer.SetSubtitles(gameFile, texts); FileManager.Save(model, outputFile, true); break; } } }
private static Dictionary <string, string> GetSubtitles(aqq model) { var result = new Dictionary <string, string>(); if (model == null) { return(result); } var processed = new Dictionary <string, bool>(); var queue = new Queue <dd2>(); dd2 startElement = model.b(); queue.Enqueue(startElement); while (queue.Count > 0) { dd2 current = queue.Dequeue(); if (processed.ContainsKey(current.Name)) { continue; } switch (current) { case yz question: { Dictionary <string, string> dict = question.d(); // LocalizedTexts if (dict.Count > 0 && !result.ContainsKey(question.Name)) { string str = dict["English"]; result.Add(question.Name, str); } foreach (dpy answer in question.PossibleAnswers) { queue.Enqueue(answer); } break; } case c74 storyElement: { Dictionary <string, string> dict = storyElement.d(); if (dict.Count > 0 && !result.ContainsKey(storyElement.Name)) { string str = dict["English"]; result.Add(storyElement.Name, str); } break; } } foreach (dd2 step in current.PossibleNextSteps) { queue.Enqueue(step); } processed.Add(current.Name, true); } return(result); }