/// <summary> /// Gets the offset to the message relative to the start of the file /// </summary> public string GetMessageOffset(ushort id, Rom.Language language) { id = (Dialogs[language].ContainsKey(id)) ? id : (ushort)1; TextboxMessage mesg = Dialogs[language][id]; return($"{mesg.StartOffset:X6}:{mesg.EndOffset:X6}"); }
private string GetMessage(TextboxMessage textboxMessage, Rom.Language language) { Dialog dialog; byte[] data; using (BinaryReader message_data_static = new BinaryReader(rom.Files.GetMessageFile(language))) { message_data_static.BaseStream.Position = textboxMessage.StartOffset; data = message_data_static.ReadBytes((int)textboxMessage.Length); } if (language == Rom.Language.Japanese) { dialog = JpnEscapeCustomCodes(data); } else { dialog = NesEscapeCustomCodes(data); } var settings = new DialogWriterSettings(language, DialogWriterSettings.OutputType.Textbox); return(dialog.Print(settings)); }
/// <summary> /// Returns the raw data for a single message as a list of integers /// </summary> /// <param name="id">message id</param> /// <param name="language">language</param> /// <returns>the message data as a list of integers</returns> public List <int> GetMessageData(ushort id, Rom.Language language) { TextboxMessage mesg = Dialogs[language][id]; List <int> result = new List <int>(); using (BinaryReader message_data_static = new BinaryReader(rom.Files.GetMessageFile(language))) { message_data_static.BaseStream.Position = mesg.StartOffset; for (int i = 0; i < (mesg.EndOffset - mesg.StartOffset) / 4; i++) { result.Add(message_data_static.ReadBigInt32()); } } return(result); }