Exemple #1
0
        private static List <FtexsFile> GetFtexsFiles(List <FtexFileMipMapInfo> mipMapInfos, List <byte[]> mipMapDatas)
        {
            Dictionary <byte, FtexsFile> ftexsFiles = new Dictionary <byte, FtexsFile>();

            foreach (var mipMapInfo in mipMapInfos)
            {
                if (ftexsFiles.ContainsKey(mipMapInfo.FtexsFileNumber) == false)
                {
                    FtexsFile ftexsFile = new FtexsFile
                    {
                        FileNumber = mipMapInfo.FtexsFileNumber
                    };
                    ftexsFiles.Add(mipMapInfo.FtexsFileNumber, ftexsFile);
                }
            }

            for (int i = 0; i < mipMapInfos.Count; i++)
            {
                FtexFileMipMapInfo    mipMapInfo      = mipMapInfos[i];
                FtexsFile             ftexsFile       = ftexsFiles[mipMapInfo.FtexsFileNumber];
                byte[]                mipMapData      = mipMapDatas[i];
                FtexsFileMipMap       ftexsFileMipMap = new FtexsFileMipMap();
                List <FtexsFileChunk> chunks          = GetFtexsChunks(mipMapData);
                ftexsFileMipMap.AddChunks(chunks);
                ftexsFile.AddMipMap(ftexsFileMipMap);
            }

            return(ftexsFiles.Values.ToList());
        }
Exemple #2
0
        private static List <FtexFileMipMapInfo> GetMipMapInfos(List <byte[]> levelData, int?ftexsFileCount)
        {
            List <FtexFileMipMapInfo> mipMapsInfos = new List <FtexFileMipMapInfo>();

            for (int i = 0; i < levelData.Count; i++)
            {
                FtexFileMipMapInfo mipMapInfo = new FtexFileMipMapInfo();
                int fileSize = levelData[i].Length;
                mipMapInfo.DecompressedFileSize = fileSize;
                mipMapInfo.Index = Convert.ToByte(i);
                mipMapsInfos.Add(mipMapInfo);
            }

            SetFtexsFileNumbers(mipMapsInfos, ftexsFileCount);
            return(mipMapsInfos);
        }