Пример #1
0
 public DoodadDefinition(BinaryReader reader)
 {
     MMIDEntry = reader.ReadUInt32();
     UniqueId  = reader.ReadUInt32();
     Position  = reader.ReadVector3Float();
     Rotation  = reader.ReadVector3Float();
     Scale     = reader.ReadUInt16();
     Flags     = (MDDFFlags)reader.ReadUInt16();
 }
Пример #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MDDFEntry"/> class.
        /// </summary>
        /// <param name="data">ExtendedData.</param>
        public MDDFEntry(byte[] data)
        {
            using (var ms = new MemoryStream(data))
            {
                using (var br = new BinaryReader(ms))
                {
                    NameId   = br.ReadUInt32();
                    UniqueID = br.ReadUInt32();
                    Position = br.ReadVector3();
                    Rotation = br.ReadRotator();

                    ScalingFactor = br.ReadUInt16();
                    Flags         = (MDDFFlags)br.ReadUInt16();
                }
            }
        }
Пример #3
0
    public MDDFFlags ReadMDDFFlags(Stream stream)
    {
        byte[] arrayOfBytes = new byte[2];
        stream.Read(arrayOfBytes, 0, 2);
        BitArray  flags     = new BitArray(arrayOfBytes);
        MDDFFlags MDDFflags = new MDDFFlags();

        MDDFflags.mddf_biodome   = flags[0];            // this sets internal flags to | 0x800 (WDOODADDEF.var0xC).
        MDDFflags.mddf_shrubbery = flags[1];            // the actual meaning of these is unknown to me. maybe biodome is for really big M2s.
                                                        // 6.0.1.18179 seems not to check for this flag
        MDDFflags.mddf_unk_4                = flags[2]; // Legion+ᵘ
        MDDFflags.mddf_unk_8                = flags[3]; // Legion+ᵘ
        MDDFflags.Flag_liquidKnown          = flags[5]; // Legion+ᵘ // SMDoodadDef::Flag_liquidKnown
        MDDFflags.mddf_entry_is_filedata_id = flags[6]; // Legion+ᵘ nameId is a file data id to directly load
        MDDFflags.mddf_unk_100              = flags[8]; // Legion+ᵘ
        return(MDDFflags);
    }