예제 #1
0
        public WorldFile(byte[] Data)
        {
            int ByteCount = 0;

            LODID        = BitConverter.ToInt32(Data, ByteCount += 4);
            IDX          = BitConverter.ToInt32(Data, ByteCount += 4);
            IDY          = BitConverter.ToInt32(Data, ByteCount += 4);
            SX           = BitConverter.ToInt32(Data, ByteCount += 4);
            SY           = BitConverter.ToInt32(Data, ByteCount += 4);
            TerrainScale = BitConverter.ToSingle(Data, ByteCount += 4);

            int DataLength0 = BitConverter.ToInt32(Data, ByteCount += 4);
            int DataLength1 = BitConverter.ToInt32(Data, ByteCount += 4);
            int DataLength2 = BitConverter.ToInt32(Data, ByteCount += 4);
            int DataLength3 = BitConverter.ToInt32(Data, ByteCount += 4);
            int DataLength4 = BitConverter.ToInt32(Data, ByteCount += 4);
            int DataLength5 = BitConverter.ToInt32(Data, ByteCount += 4);
            int DataLength6 = BitConverter.ToInt32(Data, ByteCount += 4);
            int DataLength7 = BitConverter.ToInt32(Data, ByteCount += 4);

            MaterialMap          = CompressionUtil.UnPackToByteArray(SX + 1, SY + 1, Data, ByteCount += 4, DataLength1);
            SecondaryMaterialMap = CompressionUtil.UnPackToByteArray(SX + 1, SY + 1, Data, ByteCount += 4, DataLength0);
            DecalMaterialMap     = CompressionUtil.UnPackToByteArray(SX + 1, SY + 1, Data, ByteCount += 4, DataLength0);

            BlendAlphaMap = CompressionUtil.UnPackToByteArray(SX + 1, SY + 1, Data, ByteCount += 4, DataLength0);
            DecalAlphaMap = CompressionUtil.UnPackToByteArray(SX + 1, SY + 1, Data, ByteCount += 4, DataLength0);
        }