public void Load(DoomGame game)
            {
                var options = game.World.Options;

                options.Skill   = (GameSkill)data[ptr++];
                options.Episode = data[ptr++];
                options.Map     = data[ptr++];
                for (var i = 0; i < Player.MaxPlayerCount; i++)
                {
                    options.Players[i].InGame = data[ptr++] != 0;
                }

                game.InitNew(options.Skill, options.Episode, options.Map);

                var a         = data[ptr++];
                var b         = data[ptr++];
                var c         = data[ptr++];
                var levelTime = (a << 16) + (b << 8) + c;

                UnArchivePlayers(game.World);
                UnArchiveWorld(game.World);
                UnArchiveThinkers(game.World);
                UnArchiveSpecials(game.World);

                if (data[ptr] != 0x1d)
                {
                    throw new Exception("Bad savegame!");
                }

                game.World.LevelTime = levelTime;

                options.Sound.SetListener(game.World.ConsolePlayer.Mobj);
            }
        public static void Load(DoomGame game, string path)
        {
            var options = game.Options;

            game.InitNew(options.Skill, options.Episode, options.Map);

            var lg = new LoadGame(File.ReadAllBytes(path));

            lg.Load(game);
        }