Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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);
        }