/// <summary> /// Load a single bundle /// </summary> /// <param name="filename"></param> public void LoadBundle(string filename) { try { if (Speeches.ContainsKey(filename)) { return; } var speech = Coder.Decode(new W3Speech(filename), new System.IO.BinaryReader(new FileStream(filename, FileMode.Open))); foreach (var item in speech.item_infos) { if (!Items.ContainsKey(item.Name)) { Items.Add(item.Name, new List <IWitcherFile>()); } Items[item.Name].Add(item); } Speeches.Add(filename, speech); } catch (Exception e) { //TODO: Log } }
/// <summary> /// Load a single bundle /// </summary> /// <param name="filename"></param> private void LoadBundle(string filename) { try { if (Speeches.ContainsKey(filename)) { return; } var speech = Coder.Decode(new W3Speech(filename), new System.IO.BinaryReader(new FileStream(filename, FileMode.Open))); foreach (var item in speech.item_infos) { if (!Items.ContainsKey(item.Name)) { Items.Add(item.Name, new List <IWitcherFile>()); } Items[item.Name].Add(item); } Speeches.Add(filename, speech); } #pragma warning disable CS0169 // ~~~[[maybe_unused]] c++ compiler attribute #pragma warning disable CS0168 #pragma warning disable IDE0051 catch (Exception ex) #pragma warning restore CS0169 // ~~~[[maybe_unused]] c++ compiler attribute #pragma warning restore CS0168 #pragma warning restore IDE0051 { //TODO: Log } }
public PUnicodeSpeechRequest(string text, MessageType type, MessageFont font, Hue hue, string lang) : base(0xAD) { SpeechEntry[] entries = Speeches.GetKeywords(text); if (entries.Length > 0) { type |= MessageType.Encoded; } WriteByte((byte)type); WriteUShort(hue); WriteUShort((ushort)font); WriteASCII(lang, 4); if (entries.Length > 0) { byte[] t = new byte[(int)Math.Ceiling((entries.Length + 1) * 1.5f)]; // write 12 bits at a time. first write count: byte then half byte. t[0] = (byte)((entries.Length & 0x0FF0) >> 4); t[1] = (byte)((entries.Length & 0x000F) << 4); for (int i = 0; i < entries.Length; i++) { int index = (int)((i + 1) * 1.5f); if (i % 2 == 0) // write half byte and then byte { t[index + 0] |= (byte)((entries[i].KeywordID & 0x0F00) >> 8); t[index + 1] = (byte)(entries[i].KeywordID & 0x00FF); } else // write byte and then half byte { t[index] = (byte)((entries[i].KeywordID & 0x0FF0) >> 4); t[index + 1] = (byte)((entries[i].KeywordID & 0x000F) << 4); } } for (int i = 0; i < t.Length; i++) { WriteByte(t[i]); } WriteASCII(text); } else { WriteUnicode(text); } }
/// <summary> /// Load a single mod bundle /// </summary> /// <param name="filename"> /// file to process /// </param> public void LoadModBundle(string filename) { if (Speeches.ContainsKey(filename)) { return; } var speech = Coder.Decode(new W3Speech(filename), new System.IO.BinaryReader(new FileStream(filename, FileMode.Open))); foreach (var item in speech.item_infos) { if (!Items.ContainsKey(GetModFolder(filename) + "\\" + item.Name)) { Items.Add(GetModFolder(filename) + "\\" + item.Name, new List <IWitcherFile>()); } Items[GetModFolder(filename) + "\\" + item.Name].Add(item); } Speeches.Add(filename, speech); }
public static bool TryGetSpeeches(Speeches.eKey key, out Speeches val) { return(_instance._data_Speeches.TryGetValue(key, out val)); }