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('@', ' '); } }
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++; } }