private static void LoadQuadTree(ExtractedADT adt) { foreach (var chunk in adt.Chunks) { adt.QuadTree.Insert(chunk); chunk.Bounds = adt.QuadTree.Nodes[chunk.NodeId].Bounds; } }
private static void ReadADTChunks(BinaryReader br, ExtractedADT adt) { var chunks = new ExtractedADTChunk[TerrainConstants.ChunksPerTileSide, TerrainConstants.ChunksPerTileSide]; for (var x = 0; x < TerrainConstants.ChunksPerTileSide; x++) { for (var y = 0; y < TerrainConstants.ChunksPerTileSide; y++) { chunks[y, x] = ReadADTChunk(br); } } adt.Chunks = chunks; }
private static void ReadMapM2Defs(BinaryReader br, ExtractedADT adt) { var count = br.ReadInt32(); var m2DefList = new List <ExtractedMapM2Definition>(count); for (var i = 0; i < count; i++) { var def = new ExtractedMapM2Definition { UniqueId = br.ReadUInt32(), FilePath = br.ReadString(), Extents = br.ReadBoundingBox(), Position = br.ReadVector3(), WorldToModel = br.ReadMatrix(), ModelToWorld = br.ReadMatrix() }; m2DefList.Add(def); } adt.M2Defs = m2DefList; }
public static ExtractedADT Process(string filePath, MapId mapId, int tileX, int tileY) { if (!File.Exists(filePath)) { throw new FileNotFoundException("ADT file does not exist: {0}", filePath); } var adt = new ExtractedADT(mapId, tileX, tileY); using (var file = File.OpenRead(filePath)) using (var br = new BinaryReader(file)) { var fileType = br.ReadString(); if (fileType != FileTypeId) { br.Close(); throw new InvalidDataException(string.Format("ADT file not in valid format: {0}", filePath)); } adt.IsWMOOnly = br.ReadBoolean(); ReadWMODefs(br, adt); if (adt.IsWMOOnly) { br.Close(); return(adt); } ReadMapM2Defs(br, adt); ReadQuadTree(br, adt); adt.TerrainVertices = br.ReadVector3List(); ReadADTChunks(br, adt); br.Close(); } LoadQuadTree(adt); return(adt); }
public static ExtractedADT Process(string filePath, MapId mapId, int tileX, int tileY) { if (!File.Exists(filePath)) { throw new FileNotFoundException("ADT file does not exist: {0}", filePath); } var adt = new ExtractedADT(mapId, tileX, tileY); using(var file = File.OpenRead(filePath)) using(var br = new BinaryReader(file)) { var fileType = br.ReadString(); if (fileType != FileTypeId) { br.Close(); throw new InvalidDataException(string.Format("ADT file not in valid format: {0}", filePath)); } adt.IsWMOOnly = br.ReadBoolean(); ReadWMODefs(br, adt); if (adt.IsWMOOnly) { br.Close(); return adt; } ReadMapM2Defs(br, adt); ReadQuadTree(br, adt); adt.TerrainVertices = br.ReadVector3List(); ReadADTChunks(br, adt); br.Close(); } LoadQuadTree(adt); return adt; }
private static void ReadWMODefs(BinaryReader br, ExtractedADT adt) { var count = br.ReadInt32(); var wmoDefList = new List <ExtractedWMODefinition>(count); for (var i = 0; i < count; i++) { var def = new ExtractedWMODefinition { UniqueId = br.ReadUInt32(), FilePath = br.ReadString(), Extents = br.ReadBoundingBox(), Position = br.ReadVector3(), DoodadSetId = br.ReadUInt16(), WorldToWMO = br.ReadMatrix(), WMOToWorld = br.ReadMatrix() }; wmoDefList.Add(def); } adt.WMODefs = wmoDefList; }
private static void ReadQuadTree(BinaryReader br, ExtractedADT adt) { adt.QuadTree = QuadTree <ExtractedADTChunk> .LoadFromFile(br); }
private static void ReadWMODefs(BinaryReader br, ExtractedADT adt) { var count = br.ReadInt32(); var wmoDefList = new List<ExtractedWMODefinition>(count); for (var i = 0; i < count; i++) { var def = new ExtractedWMODefinition { UniqueId = br.ReadUInt32(), FilePath = br.ReadString(), Extents = br.ReadBoundingBox(), Position = br.ReadVector3(), DoodadSetId = br.ReadUInt16(), WorldToWMO = br.ReadMatrix(), WMOToWorld = br.ReadMatrix() }; wmoDefList.Add(def); } adt.WMODefs = wmoDefList; }
private static void ReadQuadTree(BinaryReader br, ExtractedADT adt) { adt.QuadTree = QuadTree<ExtractedADTChunk>.LoadFromFile(br); }
private static void ReadMapM2Defs(BinaryReader br, ExtractedADT adt) { var count = br.ReadInt32(); var m2DefList = new List<ExtractedMapM2Definition>(count); for (var i = 0; i < count; i++) { var def = new ExtractedMapM2Definition { UniqueId = br.ReadUInt32(), FilePath = br.ReadString(), Extents = br.ReadBoundingBox(), Position = br.ReadVector3(), WorldToModel = br.ReadMatrix(), ModelToWorld = br.ReadMatrix() }; m2DefList.Add(def); } adt.M2Defs = m2DefList; }