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>();
        }
Exemple #2
0
        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);
 }