Example #1
0
        /// <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}");
        }
Example #2
0
        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));
        }
Example #3
0
        /// <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);
        }