示例#1
0
        private void LoadLevelFromBig(int absId, int levelId = 0, int mode = 0, int files = 2)
        {
            if (big == null)
            {
                if (File.Exists("bigfile.big"))
                {
                    big = new BigFileReader(File.OpenRead("bigfile.big"));
                }
                else
                {
                    return;
                }
            }

            if (levelId == -1 && files == 3)
            {
                string[] levels = new string[5];

                for (int i = 0; i < 5; i++)
                {
                    big.FileCursor = 200 + i * 3;

                    Directory.CreateDirectory(Path.Combine(Meta.BasePath, Directory.GetParent(big.GetFilename()).FullName));
                    File.WriteAllBytes(Path.Combine(Meta.BasePath, big.GetFilename()), big.ReadFile());

                    big.NextFile();

                    levels[i] = Path.Combine(Meta.BasePath, big.GetFilename());
                    File.WriteAllBytes(levels[i], big.ReadFile());
                }

                LoadStuff(levels);
            }
            else
            {
                big.FileCursor = (files == 3 ? 200 + levelId * 3 : levelId * 8) + mode * files;

                Directory.CreateDirectory(Path.Combine(Meta.BasePath, Directory.GetParent(big.GetFilename()).FullName));

                File.WriteAllBytes(Path.Combine(Meta.BasePath, big.GetFilename()), big.ReadFile());

                big.NextFile();
                File.WriteAllBytes(Path.Combine(Meta.BasePath, big.GetFilename()), big.ReadFile());

                LoadStuff(new string[] { Path.Combine(Meta.BasePath, big.GetFilename()) });
            }

            if (howl == null)
            {
                if (File.Exists("kart.hwl"))
                {
                    howl = Howl.FromFile("kart.hwl");
                }
                else
                {
                    return;
                }
            }

            //howl.ExportAllSamples();
        }