#pragma once

#include "AppMenu.h"

#include <stack>
#include <memory>
#include <SFML/Graphics.hpp>


class GamePlayingAppMenu : public AppMenu {
    private:
        Game game;
        int startTimer;
        bool paused;
        bool pausePressed;
        bool retryPressed;
        sf::FloatRect boardPosition;
        float cellSizeZoom;
        sf::FloatRect holdBoxPosition;
        float holdCellSizeZoom;
        sf::FloatRect nextQueuePosition[5];
        float nextCellSizeZoom;

    public:
        GamePlayingAppMenu(std::shared_ptr<MenuStack> menuStack, std::shared_ptr<Settings> settings, std::shared_ptr<sf::RenderWindow> renderWindow);

        void computeFrame() override;

        void drawFrame() const override;

        sf::Vector2f getBoardBlockPosition(int x, int y) const;
};
