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