Exemplo n.º 1
0
        public ChatFile(byte[] TO8CHTX)
        {
            Header = new ChatFileHeader();

            Header.Identify  = Util.SwapEndian(BitConverter.ToUInt64(TO8CHTX, 0x00));
            Header.Filesize  = Util.SwapEndian(BitConverter.ToUInt32(TO8CHTX, 0x08));
            Header.Lines     = Util.SwapEndian(BitConverter.ToUInt32(TO8CHTX, 0x0C));
            Header.Unknown   = Util.SwapEndian(BitConverter.ToUInt32(TO8CHTX, 0x10));
            Header.TextStart = Util.SwapEndian(BitConverter.ToUInt32(TO8CHTX, 0x14));
            Header.Empty     = Util.SwapEndian(BitConverter.ToUInt64(TO8CHTX, 0x18));

            Lines = new ChatFileLine[Header.Lines];

            for (int i = 0; i < Header.Lines; i++)
            {
                Lines[i]          = new ChatFileLine();
                Lines[i].Location = 0x20 + i * 0x10;
                Lines[i].Name     = Util.SwapEndian(BitConverter.ToUInt32(TO8CHTX, 0x20 + i * 0x10));
                Lines[i].JPN      = Util.SwapEndian(BitConverter.ToUInt32(TO8CHTX, 0x24 + i * 0x10));
                Lines[i].ENG      = Util.SwapEndian(BitConverter.ToUInt32(TO8CHTX, 0x28 + i * 0x10));
                Lines[i].Unknown  = Util.SwapEndian(BitConverter.ToUInt32(TO8CHTX, 0x2C + i * 0x10));

                Lines[i].SName = GetText(TO8CHTX, Lines[i].Name + Header.TextStart);
                Lines[i].SJPN  = GetText(TO8CHTX, Lines[i].JPN + Header.TextStart);
                Lines[i].SENG  = GetText(TO8CHTX, Lines[i].ENG + Header.TextStart).Replace('@', ' ');
            }
        }
Exemplo n.º 2
0
        public ChatFile(byte[] TO8CHTX)
        {
            this.Header           = default(ChatFileHeader);
            this.Header.Identify  = Util.SwapEndian(BitConverter.ToUInt64(TO8CHTX, 0));
            this.Header.Filesize  = Util.SwapEndian(BitConverter.ToUInt32(TO8CHTX, 8));
            this.Header.Lines     = Util.SwapEndian(BitConverter.ToUInt32(TO8CHTX, 12));
            this.Header.Unknown   = Util.SwapEndian(BitConverter.ToUInt32(TO8CHTX, 16));
            this.Header.TextStart = Util.SwapEndian(BitConverter.ToUInt32(TO8CHTX, 20));
            this.Header.Empty     = Util.SwapEndian(BitConverter.ToUInt64(TO8CHTX, 24));
            this.Lines            = new ChatFileLine[this.Header.Lines];
            int num = 0;

            while ((long)num < (long)((ulong)this.Header.Lines))
            {
                this.Lines[num]          = default(ChatFileLine);
                this.Lines[num].Location = 32 + num * 16;
                this.Lines[num].Name     = Util.SwapEndian(BitConverter.ToUInt32(TO8CHTX, 32 + num * 16));
                this.Lines[num].JPN      = Util.SwapEndian(BitConverter.ToUInt32(TO8CHTX, 36 + num * 16));
                this.Lines[num].ENG      = Util.SwapEndian(BitConverter.ToUInt32(TO8CHTX, 40 + num * 16));
                this.Lines[num].Unknown  = Util.SwapEndian(BitConverter.ToUInt32(TO8CHTX, 44 + num * 16));
                this.Lines[num].SName    = this.GetText(TO8CHTX, this.Lines[num].Name + this.Header.TextStart);
                this.Lines[num].SJPN     = this.GetText(TO8CHTX, this.Lines[num].JPN + this.Header.TextStart);
                this.Lines[num].SENG     = this.GetText(TO8CHTX, this.Lines[num].ENG + this.Header.TextStart).Replace('@', ' ');
                num++;
            }
        }