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()); }
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 } }
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 { } }