public static void Main(string[] args)
        {
            DBTypeMap.Instance.initializeFromFile("master_schema.xml");
            List <Thread> threads = new List <Thread>();

            foreach (Game game in Game.Games)
            {
                GameManager.LoadGameLocationFromFile(game);
                if (game.IsInstalled)
                {
                    SchemaOptimizer optimizer = new SchemaOptimizer()
                    {
                        PackDirectory  = game.DataDirectory,
                        SchemaFilename = game.MaxVersionFilename
                    };
                    //optimizer.FilterExistingPacks();
                    ThreadStart start  = new ThreadStart(optimizer.FilterExistingPacks);
                    Thread      worker = new Thread(start);
                    threads.Add(worker);
                    worker.Start();
                    // Console.WriteLine("{0} entries removed for {1}", optimizer.RemovedEntries, game.Id);
                }
            }
            threads.ForEach(t => t.Join());
        }
예제 #2
0
        public void CreateSchemaFile(Game game)
        {
            string filePath = Path.Combine(InstallationPath, game.MaxVersionFilename);

            if (game.IsInstalled && !File.Exists(filePath))
            {
                SchemaOptimizer optimizer = new SchemaOptimizer()
                {
                    PackDirectory  = Path.Combine(game.GameDirectory, "data"),
                    SchemaFilename = filePath
                };
                optimizer.FilterExistingPacks();

#if DEBUG
                createdGameSchemata = true;
#endif
            }
        }
예제 #3
0
 private void LoadGameMaxDbVersions()
 {
     try {
         Game game = CurrentGame;
         if (gameDbVersions.ContainsKey(game))
         {
             return;
         }
         string schemaFile = Path.Combine(InstallationPath, game.MaxVersionFilename);
         if (File.Exists(schemaFile))
         {
             SortedList <string, int> versions = SchemaOptimizer.ReadTypeVersions(schemaFile);
             if (versions != null)
             {
                 gameDbVersions.Add(game, versions);
             }
         }
         else
         {
             // rebuild from master schema
             CreateSchemaFile(game);
         }
     } catch { }
 }