public void Dispose() { if (audio != null) { audio.Dispose(); audio = null; } if (renderer != null) { renderer.Dispose(); renderer = null; } if (resource != null) { resource.Dispose(); resource = null; } if (window != null) { window.Dispose(); window = null; } }
//private Demo demo; public DoomApplication() { try { var style = Styles.Close | Styles.Titlebar; window = new RenderWindow(new VideoMode(640, 400), "Managed Doom", style); window.Clear(new Color(128, 128, 128)); window.Display(); resource = new CommonResource("DOOM2.WAD"); renderer = new SfmlRenderer(window, resource, true); audio = new SfmlAudio(resource.Wad); menu = new DoomMenu(this); state = ApplicationState.Opening; opening = new OpeningSequence(); players = new Player[Player.MaxPlayerCount]; cmds = new TicCmd[Player.MaxPlayerCount]; for (var i = 0; i < Player.MaxPlayerCount; i++) { players[i] = new Player(i); cmds[i] = new TicCmd(); } players[0].InGame = true; options = new GameOptions(); options.Skill = GameSkill.Hard; options.GameMode = resource.Wad.GameMode; options.Episode = 1; options.Map = 1; //demo = new Demo("test.lmp"); //options = demo.Options; game = new DoomGame(players, resource, options); game.Audio = audio; events = new List <DoomEvent>(); window.Closed += (sender, e) => window.Close(); window.KeyPressed += KeyPressed; window.KeyReleased += KeyReleased; window.SetFramerateLimit(35); } catch (Exception e) { ExceptionDispatchInfo.Capture(e).Throw(); } }