public MODD(BinaryReader br) { uint data = br.ReadUInt32(); NameIndex = data & 0xFFFFFFu; Flags = (MODD_Flags)(data >> 24); Position = br.ReadStruct <C3Vector>(); Orientation = br.ReadStruct <C4Quaternion>(); Scale = br.ReadSingle(); Color = br.ReadStruct <CImVector>(); }
public MOLT(BinaryReader br, uint version) { Type = br.ReadEnum <LightType>(); UseAtten = br.ReadByte(); Unknown_0x2 = br.ReadBytes(2); Color = br.ReadStruct <CImVector>(); Position = br.ReadStruct <C3Vector>(); Intensity = br.ReadSingle(); if (version != 14) { Unknown_0x18 = br.ReadArray(4, () => br.ReadSingle()); } AttenStart = br.ReadSingle(); AttenEnd = br.ReadSingle(); }
public MOHD(BinaryReader br, uint version) { NTextures = br.ReadUInt32(); NGroups = br.ReadUInt32(); NPortals = br.ReadUInt32(); NLights = br.ReadUInt32(); NDoodadNames = br.ReadUInt32(); NDoodadDefs = br.ReadUInt32(); NDoodadSets = br.ReadUInt32(); AmbColor = br.ReadStruct <CImVector>(); WmoID = br.ReadUInt32(); if (version == 14) { br.BaseStream.Position += 0x1C; } else { BoundingBox = br.ReadStruct <CAaBox>(); Flags = br.ReadEnum <MOHD_Flags>(); } }
public M2Particle(BinaryReader br, uint build) { ParticleId = br.ReadInt32(); Flags = (Particle_Flags)br.ReadUInt32(); Position = br.ReadStruct <C3Vector>(); BoneIndex = br.ReadUInt16(); TextureIndex = br.ReadUInt16(); GeometryMdl = br.ReadM2Array <byte>(build)?.AsString(); RecursionMdl = br.ReadM2Array <byte>(build)?.AsString(); BlendMode = br.ReadUInt16(); EmitterType = br.ReadEnum <EmitterType>(); ParticleType = br.ReadEnum <ParticleType>(); CellType = br.ReadEnum <CellType>(); PriorityPlane = br.ReadInt16(); Rows = br.ReadUInt16(); Cols = br.ReadUInt16(); SpeedTrack = new M2Track <float>(br, build); VariationTrack = new M2Track <float>(br, build); LatitudeTrack = new M2Track <float>(br, build); LongitudeTrack = new M2Track <float>(br, build); GravityTrack = new M2Track <float>(br, build); LifeTrack = new M2Track <float>(br, build); EmissionRateTrack = new M2Track <float>(br, build); WidthTrack = new M2Track <float>(br, build); LengthTrack = new M2Track <float>(br, build); ZSourceTrack = new M2Track <float>(br, build); MiddleTime = br.ReadSingle(); StartColor = br.ReadStruct <CImVector>(); MiddleColor = br.ReadStruct <CImVector>(); EndColor = br.ReadStruct <CImVector>(); StartScale = br.ReadSingle(); MiddleScale = br.ReadSingle(); EndScale = br.ReadSingle(); LifespanUVAnimStart = br.ReadUInt16(); LifespanUVAnimEnd = br.ReadUInt16(); LifespanUVAnimRepeat = br.ReadUInt16(); DecayUVAnimStart = br.ReadUInt16(); DecayUVAnimEnd = br.ReadUInt16(); DecayUVAnimRepeat = br.ReadUInt16(); TailUVAnimStart = br.ReadUInt16(); TailUVAnimEnd = br.ReadUInt16(); TailDecayUVAnimStart = br.ReadUInt16(); TailDecayUVAnimEnd = br.ReadUInt16(); // unverified TailLength = br.ReadSingle(); TwinkleFPS = br.ReadSingle(); TwinklePercent = br.ReadSingle(); TwinkleScaleMin = br.ReadSingle(); TwinkleScaleMax = br.ReadSingle(); IvelScale = br.ReadSingle(); Drag = br.ReadSingle(); Spin = br.ReadSingle(); TumblexMin = br.ReadSingle(); TumblexMax = br.ReadSingle(); TumbleyMin = br.ReadSingle(); TumbleyMax = br.ReadSingle(); TumblezMin = br.ReadSingle(); TumblezMax = br.ReadSingle(); WindVector = br.ReadStruct <C3Vector>(); WindTime = br.ReadSingle(); FollowSpeed1 = br.ReadSingle(); FollowScale1 = br.ReadSingle(); FollowSpeed2 = br.ReadSingle(); FollowScale2 = br.ReadSingle(); Splines = br.ReadM2Array <C3Vector>(build); EnabledIn = new M2Track <bool>(br, build); }