<commit_before>#ifndef FUSTATE_H
#define FUSTATE_H
#include <SFML/Window/Event.hpp>
#include <SFML/System/Time.hpp>
#include <SFML/Graphics/RenderWindow.hpp>
#include <memory>

class FUState
{
public:
    struct FUContext {
        FUContext(std::shared_ptr<sf::RenderWindow> window)
            : renderWindow(window) {}
        std::shared_ptr<sf::RenderWindow> renderWindow;
    };

public:
    FUState(FUContext context);
    virtual ~FUState();
    virtual void handleEvent(sf::Event &event);
    virtual void update(sf::Time dt);
    virtual void draw();
    virtual void pause();
    virtual void resume();
    virtual void setOnTop(bool drawOver);
    virtual bool isOnTop();

protected:
    /**
     * @brief Handle what happens when the state is paused inside that state
     */
    bool mIsPaused;

private:
    /**
     * @brief Draw order is determined according to a state's order in std::map. Since we're using ints as key elements,
     * the bigger value will appear on top
     */
    bool mIsOnTop;
};

#endif // FUSTATE_H
<commit_msg>Remove the FUState.cpp file and add the definitions to the header file.<commit_after>#ifndef FUSTATE_H
#define FUSTATE_H
#include <SFML/Window/Event.hpp>
#include <SFML/System/Time.hpp>
#include <SFML/Graphics/RenderWindow.hpp>
#include <memory>

class FUState
{
public:
    FUState()
        : mIsPaused(false)
        , mIsOnTop(false) {}

    virtual ~FUState() {}
    virtual void handleEvent(sf::Event &event) = 0;
    virtual void update(sf::Time dt) = 0;
    virtual void draw() = 0;
    virtual void pause()
    {
        mIsPaused = true;
    }
    virtual void resume()
    {
        mIsPaused = false;
    }

    virtual void setOnTop(bool drawOver)
    {
        mIsOnTop = drawOver;
    }

    virtual bool isOnTop()
    {
        return mIsOnTop;
    }

protected:
    /**
     * @brief Handle what happens when the state is paused inside that state
     */
    bool mIsPaused;

private:
    /**
     * @brief Draw order is determined according to a state's order in std::map. Since we're using ints as key elements,
     * the bigger value will appear on top. If the mIsOnTop value is true, the related state is drawn over others whether it's set as
     * the current state or not.
     */
    bool mIsOnTop;
};

#endif // FUSTATE_H

{'fraction_non_alphanumeric': 0.10204081632653061, 'fraction_numerical': 0.0013026487190620929, 'mean_word_length': 2.8528428093645486, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2025798', 'n_tokens_mistral': 740, 'n_tokens_neox': 717, 'n_words': 231}