コード例 #1
0
ファイル: Chunk_MODF.cs プロジェクト: justMaku/W3DT
        public Chunk_MODF(ADTFile file) : base(file, "MODF", Magic)
        {
            int entryCount = (int)ChunkSize / 64;

            entries = new MODFEntry[entryCount];

            for (int i = 0; i < entryCount; i++)
            {
                MODFEntry entry = new MODFEntry();
                entry.entry    = file.readUInt32();
                entry.uniqueID = file.readUInt32();

                float x = Constants.WOW_ADT_MAP_MAX - file.readFloat();
                float z = file.readFloat() - Constants.WOW_ADT_MAP_MAX;

                entry.position   = new Position(z, file.readFloat(), x);
                entry.rotation   = Position.Read(file);
                entry.lowerBound = Position.Read(file);
                entry.upperBound = Position.Read(file);
                entry.flags      = file.readUInt16();
                entry.doodadSet  = file.readUInt16();
                entry.nameSet    = file.readUInt16();
                entry.unk        = file.readUInt16();
                entries[i]       = entry;
            }

            LogWrite("Loaded " + entryCount + " WMO spawns");
        }
コード例 #2
0
ファイル: Chunk_MODF.cs プロジェクト: Kruithne/W3DT
        public Chunk_MODF(ADTFile file)
            : base(file, "MODF", Magic)
        {
            int entryCount = (int)ChunkSize / 64;
            entries = new MODFEntry[entryCount];

            for (int i = 0; i < entryCount; i++)
            {
                MODFEntry entry = new MODFEntry();
                entry.entry = file.readUInt32();
                entry.uniqueID = file.readUInt32();

                float x = Constants.WOW_ADT_MAP_MAX - file.readFloat();
                float z = file.readFloat() - Constants.WOW_ADT_MAP_MAX;

                entry.position = new Position(z, file.readFloat(), x);
                entry.rotation = Position.Read(file);
                entry.lowerBound = Position.Read(file);
                entry.upperBound = Position.Read(file);
                entry.flags = file.readUInt16();
                entry.doodadSet = file.readUInt16();
                entry.nameSet = file.readUInt16();
                entry.unk = file.readUInt16();
                entries[i] = entry;
            }

            LogWrite("Loaded " + entryCount + " WMO spawns");
        }
コード例 #3
0
ファイル: Chunk_MCLY.cs プロジェクト: Kruithne/W3DT
        public Chunk_MCLY(ADTFile file)
            : base(file, "MCLY", Magic)
        {
            int nLayers = (int)ChunkSize / 16;
            layers = new MCLYLayer[nLayers];

            for (int i = 0; i < nLayers; i++)
                layers[i] = new MCLYLayer(file.readUInt32(), file.readUInt32(), file.readUInt32(), file.readUInt32());
        }
コード例 #4
0
        public Chunk_MCLY(ADTFile file) : base(file, "MCLY", Magic)
        {
            int nLayers = (int)ChunkSize / 16;

            layers = new MCLYLayer[nLayers];

            for (int i = 0; i < nLayers; i++)
            {
                layers[i] = new MCLYLayer(file.readUInt32(), file.readUInt32(), file.readUInt32(), file.readUInt32());
            }
        }
コード例 #5
0
ファイル: Chunk_MMID.cs プロジェクト: Kruithne/W3DT
        public Chunk_MMID(ADTFile file)
            : base(file, "MMID", Magic)
        {
            int offsetCount = (int)ChunkSize / 4;
            offsets = new UInt32[offsetCount];

            for (int i = 0; i < offsetCount; i++)
                offsets[i] = file.readUInt32();
        }
コード例 #6
0
ファイル: Chunk_MVER.cs プロジェクト: Kruithne/W3DT
        public Chunk_MVER(ADTFile file)
            : base(file, "MVER", Magic)
        {
            Version = file.readUInt32();

            // Ensure we have a v18 ADT chunk.
            if (Version != 18)
                throw new ADTException("Unsupported ADT version: " + Version);
        }
コード例 #7
0
ファイル: Chunk_MCRW.cs プロジェクト: Kruithne/W3DT
        public Chunk_MCRW(ADTFile file)
            : base(file, "MCRW", Magic)
        {
            int nEntry = (int)ChunkSize / 4;
            entries = new UInt32[nEntry];

            for (int i = 0; i < nEntry; i++)
                entries[i] = file.readUInt32();
        }
コード例 #8
0
ファイル: Chunk_MDDF.cs プロジェクト: Kruithne/W3DT
        public Chunk_MDDF(ADTFile file)
            : base(file, "MDDF", Magic)
        {
            int entryCount = (int)ChunkSize / 36;
            entries = new MDDFEntry[entryCount];

            for (int i = 0; i < entryCount; i++)
            {
                MDDFEntry entry = new MDDFEntry();
                entry.entry = file.readUInt32();
                entry.uniqueID = file.readUInt32();
                entry.position = Position.Read(file);
                entry.rotation = Rotation.Read(file);
                entry.scale = file.readUInt16();
                entry.flags = file.readUInt16();
            }

            LogWrite("Loaded " + entryCount + " doodad spawns");
        }
コード例 #9
0
        public Chunk_MVER(ADTFile file) : base(file, "MVER", Magic)
        {
            Version = file.readUInt32();

            // Ensure we have a v18 ADT chunk.
            if (Version != 18)
            {
                throw new ADTException("Unsupported ADT version: " + Version);
            }
        }
コード例 #10
0
        public Chunk_MDDF(ADTFile file) : base(file, "MDDF", Magic)
        {
            int entryCount = (int)ChunkSize / 36;

            entries = new MDDFEntry[entryCount];

            for (int i = 0; i < entryCount; i++)
            {
                MDDFEntry entry = new MDDFEntry();
                entry.entry    = file.readUInt32();
                entry.uniqueID = file.readUInt32();
                entry.position = Position.Read(file);
                entry.rotation = Rotation.Read(file);
                entry.scale    = file.readUInt16();
                entry.flags    = file.readUInt16();
            }

            LogWrite("Loaded " + entryCount + " doodad spawns");
        }
コード例 #11
0
        public Chunk_MCRW(ADTFile file) : base(file, "MCRW", Magic)
        {
            int nEntry = (int)ChunkSize / 4;

            entries = new UInt32[nEntry];

            for (int i = 0; i < nEntry; i++)
            {
                entries[i] = file.readUInt32();
            }
        }
コード例 #12
0
ファイル: Chunk_MMID.cs プロジェクト: justMaku/W3DT
        public Chunk_MMID(ADTFile file) : base(file, "MMID", Magic)
        {
            int offsetCount = (int)ChunkSize / 4;

            offsets = new UInt32[offsetCount];

            for (int i = 0; i < offsetCount; i++)
            {
                offsets[i] = file.readUInt32();
            }
        }