protected GameState(Game game, GameStateManager manager)
     : base(game)
 {
     StateManager = manager;
     Components = new List<GameComponent>();
     Tag = this;
 }
        public Game1()
        {
            Graphics = new GraphicsDeviceManager(this)
                {
                    PreferredBackBufferWidth = ScreenWidth,
                    PreferredBackBufferHeight = ScreenHeight
                };
            ScreenRectangle = new Rectangle(
                0,
                0,
                ScreenWidth,
                ScreenHeight);

            Content.RootDirectory = "Content";

            _allGameStates = new List<GameState>();

            Components.Add(new InputManager(this, ScreenRectangle));
            StateManager = new GameStateManager(this);
            Components.Add(StateManager);

            TitleScreen = new TitleScreen(this, StateManager);
            StartMenuScreen = new StartMenuScreen(this, StateManager);
            GameOptionsScreen = new GameOptionsScreen(this, StateManager);
            NewGameScreen = new NewGameScreen(this, StateManager);
            GamePlayScreen = new GamePlayScreen(this, StateManager);

            //just to loop all of the states
            _allGameStates.Add(TitleScreen);
            _allGameStates.Add(StartMenuScreen);
            _allGameStates.Add(GameOptionsScreen);
            _allGameStates.Add(NewGameScreen);
            _allGameStates.Add(GamePlayScreen);

            StateManager.ChangeState(TitleScreen);

            Window.Title = "Osama Abulail";
            Components.Add(new FrameRateCounter(this));
        }
 public Dialog(Game game, GameStateManager manager)
     : base(game, manager)
 {
 }
 public GameOptionsScreen(Game game, GameStateManager manager)
     : base(game, manager)
 {
 }
 public BaseGameState(Game game, GameStateManager manager)
     : base(game, manager)
 {
     GameRef = (Game1)game;
 }
 public StartMenuScreen(Game game, GameStateManager manager)
     : base(game, manager)
 {
 }
 public GamePlayScreen(Game game, GameStateManager manager)
     : base(game, manager)
 {
 }
 public NewGameScreen(Game game, GameStateManager manager)
     : base(game, manager)
 {
 }