UInt32[] wmoLodLength; //Number of elements used from MLMD per lod public MLFD(WOTLK.Chunks.MDDF mddf, WOTLK.Chunks.MODF modf) : base("MLFD", 48, false) { m2LodOffset = new UInt32[3]; m2LodLength = new UInt32[3]; wmoLodOffset = new UInt32[3]; wmoLodLength = new UInt32[3]; m2LodOffset[0] = 0; m2LodOffset[1] = 0; m2LodOffset[2] = 0; m2LodLength[0] = (UInt32)mddf.DoodadDefs.Count;// m2LodLength[1] = 0; m2LodLength[2] = 0; wmoLodOffset[0] = 0; wmoLodOffset[1] = 0; wmoLodOffset[2] = 0; wmoLodLength[0] = 0; wmoLodLength[1] = 0; wmoLodLength[2] = (UInt32)modf.MapObjDefs.Count;// }
public MLMX(WOTLK.Chunks.MODF wotlk) : base(wotlk, "MLMX", false) { int boundingSize = Program.config.BoundingSize; int boundingRadius = Program.config.BoundingRadius; if (Program.config.DynamicBoundingGeneration) { int count = wotlk.MapObjDefs.Count; if (wotlk.MapObjDefs.Count > 1000) { boundingSize = Convert.ToInt32(boundingSize - ((wotlk.MapObjDefs.Count - 1000) / 10)); boundingRadius = Convert.ToInt32(boundingRadius - ((wotlk.MapObjDefs.Count - 1000) / 10)); if (boundingSize < 10) { boundingSize = 10; Logger.log("Bounding size was too small. Set to 10", Logger.Type.WARNING); } if (boundingRadius < 10) { boundingRadius = 10; Logger.log("Bounding radius was too small. Set to 10", Logger.Type.WARNING); } } } /* * objDef.Position.X = bounding.Y * objDef.Position.Y = bounding.Z * objDef.Position.Z = bounding.X */ foreach (mapObjDef objDef in wotlk.MapObjDefs) { lod_extent extent = new lod_extent(); CAaBox bounding = new CAaBox(); Vector min = new Vector(); Vector max = new Vector(); min.X = ConvertClientCoordsToServerCoords(objDef.Position.Z) - boundingSize; min.Y = ConvertClientCoordsToServerCoords(objDef.Position.X) - boundingSize; min.Z = objDef.Position.Y - boundingSize; max.X = ConvertClientCoordsToServerCoords(objDef.Position.Z) + boundingSize; max.Y = ConvertClientCoordsToServerCoords(objDef.Position.X) + boundingSize; max.Z = objDef.Position.Y + boundingSize; bounding.Min = min; bounding.Max = max; extent.Bounding = bounding; extent.Radius = boundingRadius; objectExtents.Add(extent); } Header.ChangeSize(RecalculateSize()); }
public MLMD(WOTLK.Chunks.MODF wotlk) : base(wotlk, "MLMD", false) { foreach (mapObjDef mapObj in wotlk.MapObjDefs) { lod_object_def lodObj = new lod_object_def(); lodObj.NameID = mapObj.NameID; lodObj.UniqueID = mapObj.UniqueID; lodObj.Position = mapObj.Position; lodObj.Rotation = mapObj.Rotation; lodObj.Flags = mapObj.Flags; lodObj.DoodadSet = mapObj.DoodadSet; lodObj.NameSet = mapObj.NameSet; lodObj.Unk = 1024; lod_object_defs.Add(lodObj); } Header.ChangeSize(RecalculateSize()); }
public MODF(WOTLK.Chunks.MODF wotlk) : base(wotlk, false) { mapObjDefs = wotlk.MapObjDefs; }