/// <summary> /// Parse directory/file nodes. /// </summary> /// <param name="fs">Filestream of U8 file.</param> public void ParseNodes(FileStream fs) { u8Node node = new u8Node(); uint maxNodeId; // read first node node.NodeType = ParseFile.ReadByte(fs, this.RootNodeOffset); node.NameOffset = ParseFile.ReadUint24BE(fs, this.RootNodeOffset + 1); node.DataOffset = ParseFile.ReadUintBE(fs, this.RootNodeOffset + 4); node.DataSize = ParseFile.ReadUintBE(fs, this.RootNodeOffset + 8); this.NodeArray.Add(node); maxNodeId = node.DataSize; // parse each node for (int i = 1; i < maxNodeId; i++) { node = new u8Node(); node.NodeType = ParseFile.ReadByte(fs, this.RootNodeOffset + (i * 0xC)); node.NameOffset = ParseFile.ReadUint24BE(fs, this.RootNodeOffset + (i * 0xC) + 1); node.DataOffset = ParseFile.ReadUintBE(fs, this.RootNodeOffset + (i * 0xC) + 4); node.DataSize = ParseFile.ReadUintBE(fs, this.RootNodeOffset + (i * 0xC) + 8); this.NodeArray.Add(node); } }