r-type  0.0.0
R-Type main
Loading...
Searching...
No Matches
Settings.hpp
Go to the documentation of this file.
1///
2/// @file Settings.hpp
3/// @brief This file contains the settings scene
4/// @namespace cli
5///
6
7#pragma once
8
9#include <unordered_map>
10
12
13namespace cli
14{
15 struct AppConfig;
16
17 ///
18 /// @class Settings
19 /// @brief Settings scene
20 /// @namespace cli
21 ///
22 class Settings final : public eng::AScene
23 {
24 public:
25 Settings(eng::id assignedId, const std::shared_ptr<eng::IRenderer> &renderer, utl::cli::AppConfig &config);
26 ~Settings() override = default;
27
28 Settings(const Settings &other) = delete;
29 Settings &operator=(const Settings &other) = delete;
30 Settings(Settings &&other) = delete;
31 Settings &operator=(Settings &&other) = delete;
32
33 void update(float dt, const eng::WindowSize &size) override;
34 void event(const eng::Event &event) override;
36 void loadFromConfig();
37 bool &playMusic() { return m_playMusic; }
38
39 std::function<void()> onLeave;
40
41 private:
42 static void applyVideoQuality();
43 static void applySkinChange();
44
45 std::unordered_map<eng::Key, bool> m_keysPressed;
46 const std::shared_ptr<eng::IRenderer> &m_renderer;
48 size_t m_selectedIndex = 0;
49 const std::vector<std::string> m_settingsOptions = {"Audio Volume", "FPS", "Controls", "Skin",
50 "Back to Menu"};
51 float m_audioVolume = 50.0F;
54 int m_skinIndex = 0;
60 float m_animationTime = 0.0f;
61 float m_titlePulseTime = 0.0f;
62 bool m_playMusic = false;
63 }; // class Settings
64} // namespace cli
Settings scene.
Definition Settings.hpp:23
ecs::Entity m_skinSpriteEntity
Definition Settings.hpp:58
float m_titlePulseTime
Definition Settings.hpp:61
ecs::Entity m_volumeValueEntity
Definition Settings.hpp:55
float m_animationTime
Definition Settings.hpp:60
const std::vector< std::string > m_settingsOptions
Definition Settings.hpp:49
static void applyVideoQuality()
Definition settings.cpp:303
const std::shared_ptr< eng::IRenderer > & m_renderer
Definition Settings.hpp:46
utl::cli::AppConfig & m_appConfig
Definition Settings.hpp:47
ecs::Entity m_controlValueEntity
Definition Settings.hpp:57
void update(float dt, const eng::WindowSize &size) override
Definition settings.cpp:135
Settings & operator=(const Settings &other)=delete
static void applySkinChange()
Definition settings.cpp:305
std::unordered_map< eng::Key, bool > m_keysPressed
Definition Settings.hpp:45
~Settings() override=default
float m_audioVolume
Definition Settings.hpp:51
void updateSettingsDisplay()
Definition settings.cpp:179
Settings(const Settings &other)=delete
bool & playMusic()
Definition Settings.hpp:37
Settings(Settings &&other)=delete
size_t m_selectedIndex
Definition Settings.hpp:48
int m_controlScheme
Definition Settings.hpp:53
void loadFromConfig()
Definition settings.cpp:292
Settings & operator=(Settings &&other)=delete
void event(const eng::Event &event) override
Definition settings.cpp:208
ecs::Entity m_qualityValueEntity
Definition Settings.hpp:56
ecs::Entity m_titleEntity
Definition Settings.hpp:59
std::function< void()> onLeave
Definition Settings.hpp:39
Settings(eng::id assignedId, const std::shared_ptr< eng::IRenderer > &renderer, utl::cli::AppConfig &config)
Definition settings.cpp:9
Abstract class for scene.
Definition IScene.hpp:52
This file contains the IScene class.
std::uint32_t Entity
Definition Entity.hpp:13
unsigned int id
Definition IScene.hpp:20