public void Dispose() { AreaHeader = null; MTEXChunk = null; DoodadRefs = null; SMMapObjDefs = null; TilesInformation = null; foreach (var tile in Tiles) { tile.Dispose(); } Tiles = null; DataChunkHeader = null; }
public static MTEXChunk BuildFromChunk(byte[] chunk) { MTEXChunk mtex = new MTEXChunk(); using (MemoryStream ms = new MemoryStream(chunk)) using (BinaryReader reader = new BinaryReader(ms)) { while (reader.BaseStream.Position != chunk.Length) { mtex.Filenames.Add(reader.ReadCString()); } if (Globals.Verbose) { Console.WriteLine($"Loaded {mtex.Filenames.Count} MTEXChunks"); } } return(mtex); }
private bool BuildMTEX(BinaryReader reader) { try { var dataHeader = new DataChunkHeader(reader); if (dataHeader.Token != Tokens.MTEX) { throw new Exception($"Invalid token, got [{dataHeader.Token}] expected {"[MTEX]"}"); } var dataChunk = reader.ReadBytes(dataHeader.Size); MTEXChunk = MTEXChunk.BuildFromChunk(dataChunk); return(true); } catch (Exception ex) { Console.WriteLine(ex.Message); } return(false); }
private bool BuildMTEX(BinaryReader reader) { try { DataChunkHeader.Fill(reader); if (DataChunkHeader.Token != Tokens.MTEX) { throw new Exception($"Invalid token, got [{DataChunkHeader.Token}] expected {"[MTEX]"}"); } var dataChunk = reader.ReadBytes(DataChunkHeader.Size); MTEXChunk = MTEXChunk.BuildFromChunk(dataChunk); return(true); } catch (Exception ex) { Logger.Error(ex.Message); } return(false); }