ICT290 / src / scene / mainMenu / developerScreen.h
developerScreen.h
Raw
#pragma once

#include <memory>
#include "../../engine/UI.h"
#include "../../engine/resources.h"
#include "../../engine/stateManager.h"
#include "../theArchanist/map/gameMap.h"

/**
 * Struct to represent the sounds used in the menu
 */
struct devSounds {
    Sound click{"buttonClick.ogg", false, 60};
    Sound storm{"storm.ogg", true, 30};
};

/**
 * @class devScreen
 * @brief Just a small state to show our team name before we get into the fun
 *
 * @author Chase Percy
 *
 */
class devScreen {
   public:
    static std::shared_ptr<State> init(Resources& engineResources);

    static void destroy();

    static void pause(bool option);

    static void handleEvents(SDL_Event& event);

    static void update(float deltaTime);

    static void draw();

    static void setCamera();

    static void createSnow();

    static void updateSnow(float deltaTime);

   private:
    static std::shared_ptr<State> m_thisState;  /// This state
    static float m_timer;       /// the timer until the transition to menu
    static devSounds m_sounds;  /// the sounds to be used in the dev screen
    static std::vector<glm::vec3> m_snowDirections;
};