コード例 #1
0
    // Fog information.
    public static void ReadMFOG(Stream WMOrootstream, int MFOGsize)
    {
        int numberOfFogs = MFOGsize / 48;
        List <FogInstance> FogInstances = new List <FogInstance>();

        for (int i = 0; i < numberOfFogs; ++i)
        {
            FogInstance fogInstance = new FogInstance();

            FogFlags fogFlags     = new FogFlags();
            byte[]   arrayOfBytes = new byte[1];
            WMOrootstream.Read(arrayOfBytes, 0, 1);
            BitArray flags = new BitArray(arrayOfBytes);
            fogFlags.flag_infinite_radius = flags[0];
            fogFlags.flag_0x10            = flags[4];
            fogInstance.flags             = fogFlags;

            fogInstance.position       = new Vector3(ReadFloat(WMOrootstream), ReadFloat(WMOrootstream), ReadFloat(WMOrootstream));
            fogInstance.smaller_radius = ReadFloat(WMOrootstream); // start
            fogInstance.larger_radius  = ReadFloat(WMOrootstream); // end
            fogInstance.landFog        = ReadFogDefinition(WMOrootstream);
            fogInstance.underwaterFog  = ReadFogDefinition(WMOrootstream);

            FogInstances.Add(fogInstance);
        }
    }
コード例 #2
0
        public FogInstance(byte[] inData)
        {
            using (MemoryStream ms = new MemoryStream(inData))
            {
                using (BinaryReader br = new BinaryReader(ms))
                {
                    this.Flags = (FogFlags) br.ReadUInt32();
                    this.Position = br.ReadVector3f();

                    this.GlobalStartRadius = br.ReadSingle();
                    this.GlobalEndRadius = br.ReadSingle();

                    this.LandFog = new FogDefinition(br.ReadBytes(FogDefinition.GetSize()));
                    this.UnderwaterFog = new FogDefinition(br.ReadBytes(FogDefinition.GetSize()));
                }
            }
        }
コード例 #3
0
        public FogInstance(byte[] inData)
        {
            using (MemoryStream ms = new MemoryStream(inData))
            {
                using (BinaryReader br = new BinaryReader(ms))
                {
                    this.Flags    = (FogFlags)br.ReadUInt32();
                    this.Position = br.ReadVector3();

                    this.GlobalStartRadius = br.ReadSingle();
                    this.GlobalEndRadius   = br.ReadSingle();

                    this.LandFog       = new FogDefinition(br.ReadBytes(FogDefinition.GetSize()));
                    this.UnderwaterFog = new FogDefinition(br.ReadBytes(FogDefinition.GetSize()));
                }
            }
        }