GameState.h 968 bytes
#pragma once
#include "IState.h"
#include "../Drawable/Maze/Maze.h"
#include "../Drawable/Maze/MenuGame.h"
#include "../Context/Context.h"
#include "../Event/IGameEvent.h"
class GameState: public IState, public IWindowKeeper {
public:
    GameState(IStateManager& state_manager, const sf::VideoMode& video_mode, const std::string& window_title);
    void event_handling() override;
    void update() override;
    void render() override;
    bool do_step() override;
    void set_maze(Maze&& maze) {m_maze = std::move(maze); }
    void set_context(GameContext&& context);
    bool process_key_pressed(sf::Keyboard::Key code);
    const ScoreCount& get_score_count() const {return *m_score_count_one, *m_score_count_two; }
private:
    Maze m_maze;
    MenuGame m_menu;
    ContextManager m_context_manager;
    std::vector<std::unique_ptr<IGameEvent>> m_events;
    std::unique_ptr<ScoreCount> m_score_count_one;
    std::unique_ptr<ScoreCount> m_score_count_two;