static void Main() { Console.WriteLine("Jekyll: Call of Duty XAsset Exporter"); Console.ForegroundColor = ConsoleColor.DarkGray; Console.WriteLine("https://github.com/EthanC/Jekyll\n"); Console.ResetColor(); JekyllStatus status = Instance.LoadGame(); if (status == JekyllStatus.Success) { foreach (GameXAsset xasset in Instance.XAssets) { xasset.XAssetPool.Export(xasset, Instance); } } else { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Failed to find a supported game"); Console.ResetColor(); } Console.WriteLine("\nPress any key to exit..."); Console.ReadKey(); }
public JekyllStatus LoadGame() { Process[] processes = Process.GetProcesses(); JekyllStatus status = JekyllStatus.FailedToFindGame; foreach (Process process in processes) { foreach (IGame game in Games) { for (int i = 0; i < game.ProcessNames.Length; i++) { if (process.ProcessName == game.ProcessNames[i]) { Game = (IGame)game.Clone(); Game.ProcessIndex = i; Reader = new ProcessReader(process); if (Game.InitializeGame(this)) { Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"Loaded Call of Duty: {Game.Name} ({Game.DBAssetPools})"); Console.ResetColor(); Game.XAssetPools = GetXAssetPools(Game); XAssets = new List <GameXAsset>(); foreach (IXAssetPool xassetPool in Game.XAssetPools) { XAssets.AddRange(xassetPool.Load(this)); } status = JekyllStatus.Success; } else { status = JekyllStatus.UnsupportedBinary; } break; } } } } return(status); }