Esempio n. 1
0
        public void LoadFrom(Stream unpackedStream)
        {
            using (StructReader reader = new StructReader(unpackedStream, System.Text.Encoding.ASCII, true))
            {
                header = reader.ReadStruct <DLF_IO_HEADER>();

                scenes = new DLF_IO_SCENE[header.numScenes];
                for (int i = 0; i < header.numScenes; i++)
                {
                    scenes[i] = reader.ReadStruct <DLF_IO_SCENE>();
                }

                inters = new DLF_IO_INTER[header.numInters];
                for (int i = 0; i < header.numInters; i++)
                {
                    inters[i] = reader.ReadStruct <DLF_IO_INTER>();
                }

                if (header.lighting != 0)
                {
                    lightingHeader = reader.ReadStruct <DANAE_IO_LIGHTINGHEADER>();

                    lightColors = new uint[lightingHeader.numLights];
                    for (int i = 0; i < lightingHeader.numLights; i++)
                    {
                        lightColors[i] = reader.ReadUInt32(); //TODO is apparently BGRA if its in compact mode.
                    }
                }

                lights = new DANAE_IO_LIGHT[header.numLights];
                for (int i = 0; i < header.numLights; i++)
                {
                    lights[i] = reader.ReadStruct <DANAE_IO_LIGHT>();
                }

                fogs = new DLF_IO_FOG[header.numFogs];
                for (int i = 0; i < header.numFogs; i++)
                {
                    fogs[i] = reader.ReadStruct <DLF_IO_FOG>();
                }

                // Skip nodes, dont know why
                //save in var so we can write it back later
                nodesData = reader.ReadBytes(header.numNodes * (204 + header.numNodelinks * 64));

                paths = new DLF_IO_PATH[header.numPaths];
                for (int i = 0; i < header.numPaths; i++)
                {
                    var path = new DLF_IO_PATH();
                    path.ReadFrom(reader);
                    paths[i] = path;
                }
            }
        }
Esempio n. 2
0
        public void LoadFrom(Stream s)
        {
            var reader = new StructReader(s);

            header = reader.ReadStruct <LLF_IO_HEADER>();

            lights = new DANAE_IO_LIGHT[header.numLights];
            for (int i = 0; i < header.numLights; i++)
            {
                lights[i] = reader.ReadStruct <DANAE_IO_LIGHT>();
            }

            lightingHeader = reader.ReadStruct <DANAE_IO_LIGHTINGHEADER>();

            lightColors = new uint[lightingHeader.numLights];
            for (int i = 0; i < lightingHeader.numLights; i++)
            {
                lightColors[i] = reader.ReadUInt32(); //TODO is apparently BGRA if its in compact mode.
            }
        }