private void OpenAllDocuments(CTDocument.DocumentType type, string args) { switch (type) { case CTDocument.DocumentType.Table: { SortedSet <string> names = new SortedSet <string>(); foreach (var file in System.IO.Directory.GetFiles("TableRaw")) { if (!names.Contains(file)) { names.Add(file); } } foreach (var file in System.IO.Directory.GetFiles("TableFriendly")) { if (!names.Contains(file)) { names.Add(file); } } foreach (var path in names) { string[] filenameDots = path.Split('\\')[1].Split('.'); string name = string.Join(".", filenameDots, 0, filenameDots.Length - 1); if (GetDocument(name) == null) { OpenDocument(CTDocument.DocumentType.Table, name, args); } } } break; case CTDocument.DocumentType.TLK: { SortedSet <string> names = new SortedSet <string>(); foreach (var file in System.IO.Directory.GetFiles("TLK")) { if (!names.Contains(file)) { names.Add(file); } } foreach (var path in names) { string[] filenameDots = path.Split('\\')[1].Split('.'); string name = string.Join(".", filenameDots, 0, filenameDots.Length - 1); if (GetDocument(name) == null) { OpenDocument(CTDocument.DocumentType.TLK, name, args); } } } break; } }
private void OpenDocument(CTDocument.DocumentType type, string name, string args = "") { if (name.ToLowerInvariant() == "all") { OpenAllDocuments(type, args); return; } switch (type) { case CTDocument.DocumentType.Table: { try { CTDebug.Info("Opening Table: {0}", name); _2da.TableDocument doc = new _2da.TableDocument(name); if (args == "raw") { doc.LoadCompiled(); } else if (args == "friendly") { doc.LoadFriendly(); } else { doc.LoadNewest(); } m_openDocuments.Add(name, doc); } catch (Exception e) { CTDebug.Error("{0}: {1}", e.GetType().Name, e.Message); } } break; case CTDocument.DocumentType.TLK: if (name.ToLowerInvariant() != "dialog") // Don't open dialog.tlk as a document. { CTDebug.Info("Opening TLK: {0}", name); Tlk.TlkDocument doc = new Tlk.TlkDocument(name); m_openDocuments.Add(name, doc); m_tlkStack.AddTlkFile(doc); doc.LoadCompiled(); } break; } }