public Chunk_MODF(ADTFile file) : base(file, "MODF", Magic) { int entryCount = (int)ChunkSize / 64; entries = new MODFEntry[entryCount]; for (int i = 0; i < entryCount; i++) { MODFEntry entry = new MODFEntry(); entry.entry = file.readUInt32(); entry.uniqueID = file.readUInt32(); float x = Constants.WOW_ADT_MAP_MAX - file.readFloat(); float z = file.readFloat() - Constants.WOW_ADT_MAP_MAX; entry.position = new Position(z, file.readFloat(), x); entry.rotation = Position.Read(file); entry.lowerBound = Position.Read(file); entry.upperBound = Position.Read(file); entry.flags = file.readUInt16(); entry.doodadSet = file.readUInt16(); entry.nameSet = file.readUInt16(); entry.unk = file.readUInt16(); entries[i] = entry; } LogWrite("Loaded " + entryCount + " WMO spawns"); }
public override void Read() { var br = Chunk.GetReader(); Entries = new MODFEntry[Chunk.Size / 64]; for (int i = 0; i < Entries.Length; i++) { Entries[i] = MODFEntry.Read(br); } }
/// <inheritdoc/> public void LoadBinaryData(byte[] inData) { using (var ms = new MemoryStream(inData)) using (var br = new BinaryReader(ms)) { var objCount = br.BaseStream.Length / MODFEntry.GetSize(); for (var i = 0; i < objCount; ++i) { MODFEntrys.Add(new MODFEntry(br.ReadBytes(MODFEntry.GetSize()))); } } }