galaxy 1.0.0
Real-Time C++23 Game Programming Framework. Built on data-driven design principles and agile software engineering.
Loading...
Searching...
No Matches
Settings.hpp
Go to the documentation of this file.
1
7
8#ifndef GALAXY_CORE_SETTINGS_HPP_
9#define GALAXY_CORE_SETTINGS_HPP_
10
11#include <filesystem>
12
13namespace galaxy
14{
18 struct settings
19 {
20 public:
24 static auto set_config_to_default() -> void;
25
29 static auto set_settings_from_config() -> void;
30
31 /*///
36 static auto set_delta_time(const double dt) noexcept -> void;
37
43 [[nodiscard]]
44 static auto dt() noexcept -> double;
45
49 [[nodiscard]]
50 static auto ups() noexcept -> double;
51
55 [[nodiscard]]
56 static auto window_width() noexcept -> int;
57
61 [[nodiscard]]
62 static auto window_height() noexcept -> int;
63
67 [[nodiscard]]
68 static auto view_width() noexcept -> int;
69
73 [[nodiscard]]
74 static auto view_height() noexcept -> int;
75
79 [[nodiscard]]
80 static auto window_title() noexcept -> const std::string&;
81
85 [[nodiscard]]
86 static auto window_icon() noexcept -> const std::string&;
87
91 [[nodiscard]]
92 static auto fullscreen() noexcept -> bool;
93
97 [[nodiscard]]
98 static auto key_repeat() noexcept -> bool;
99
103 [[nodiscard]]
104 static auto vsync() noexcept -> bool;
105
109 [[nodiscard]]
110 static auto msaa() noexcept -> bool;
111
115 [[nodiscard]]
116 static auto cursor_visible() noexcept -> bool;
117
121 [[nodiscard]]
122 static auto cursor_grabbed() noexcept -> bool;
123
127 [[nodiscard]]
128 static auto cursor_icon() noexcept -> const std::string&;
129
133 [[nodiscard]]
134 static auto cursor_icon_size() noexcept -> const sf::Vector2u&;
135
139 [[nodiscard]]
140 static auto cursor_hotspot() noexcept -> const sf::Vector2u&;*/
141
145 [[nodiscard]]
146 static auto root_dir() noexcept -> std::filesystem::path;
147
151 [[nodiscard]]
152 static auto assets_dir() noexcept -> std::filesystem::path;
153
157 [[nodiscard]]
158 static auto editor_dir() noexcept -> std::filesystem::path;
159
163 [[nodiscard]]
164 static auto asset_pack() noexcept -> const std::string&;
165
169 [[nodiscard]]
170 static auto use_loose_assets() noexcept -> bool;
171
175 [[nodiscard]]
176 static auto assets_dir_music() noexcept -> const std::string&;
177
181 [[nodiscard]]
182 static auto assets_dir_sfx() noexcept -> const std::string&;
183
187 [[nodiscard]]
188 static auto assets_dir_voice() noexcept -> const std::string&;
189
193 [[nodiscard]]
194 static auto assets_dir_font() noexcept -> const std::string&;
195
199 [[nodiscard]]
200 static auto assets_dir_script() noexcept -> const std::string&;
201
205 [[nodiscard]]
206 static auto assets_dir_shaders() noexcept -> const std::string&;
207
211 [[nodiscard]]
212 static auto assets_dir_animation() noexcept -> const std::string&;
213
217 [[nodiscard]]
218 static auto assets_dir_texture() noexcept -> const std::string&;
219
223 [[nodiscard]]
224 static auto assets_dir_prefabs() noexcept -> const std::string&;
225
229 [[nodiscard]]
230 static auto assets_dir_maps() noexcept -> const std::string&;
231
235 [[nodiscard]]
236 static auto assets_dir_video() noexcept -> const std::string&;
237
241 [[nodiscard]]
242 static auto assets_dir_ui() noexcept -> const std::string&;
243
244 private:
245 /*inline static double s_delta_time;
246
247 inline static double s_ups;
248
249 inline static int s_window_width;
250 inline static int s_window_height;
251 inline static int s_view_width;
252 inline static int s_view_height;
253 inline static std::string s_title;
254 inline static std::string s_icon;
255 inline static bool s_fullscreen;
256 inline static bool s_key_repeat;
257 inline static bool s_vsync;
258 inline static bool s_msaa;
259
260 inline static bool s_cursor_visible;
261 inline static bool s_cursor_grabbed;
262 inline static std::string s_cursor_icon;
263 inline static sf::Vector2u s_cursor_icon_size;
264 inline static sf::Vector2u s_cursor_hotspot;*/
265
266 inline static std::filesystem::path s_assets_dir;
267 inline static std::filesystem::path s_editor_dir;
268 inline static std::string s_asset_pack;
269 inline static bool s_use_loose_assets;
270 inline static std::string s_assets_music;
271 inline static std::string s_assets_sfx;
272 inline static std::string s_assets_voice;
273 inline static std::string s_assets_font;
274 inline static std::string s_assets_script;
275 inline static std::string s_assets_shaders;
276 inline static std::string s_assets_animation;
277 inline static std::string s_assets_texture;
278 inline static std::string s_assets_prefabs;
279 inline static std::string s_assets_maps;
280 inline static std::string s_assets_video;
281 inline static std::string s_assets_ui;
282 };
283} // namespace galaxy
284
285/*
286// config.restore<int>("flag_bitset_count", 8, "misc");
287
288 // config.restore<float>("world_to_box2d", 0.01f, "physics");
289 // config.restore<float>("box2d_to_world", 100.0f, "physics");
290 // config.restore<int>("flag_bitset_count", 8, "misc");
291
292 // config.restore<float>("world_to_box2d", 0.01f, "physics");
293 // config.restore<float>("box2d_to_world", 100.0f, "physics");
294
295 // config.restore<int>("ansiotrophic_filtering", 16, "window");
296 // config.restore<bool>("highdpi", false, "window");
297 // s_flag_bitset_count = config.get<int>("flag_bitset_count", "misc");
298
299 // s_world_to_box2d = config.get<float>("world_to_box2d", "physics");
300 // s_box2d_to_world = config.get<float>("box2d_to_world", "physics");
301 // s_ansio_filtering = config.get<int>("ansiotrophic_filtering", "window");
302 // s_highdpi = config.get<bool>("highdpi", "window");
306 //[[nodiscard]]
307 // static auto flag_bitset_count() noexcept -> int;
308
312 //[[nodiscard]]
313 // static auto world_to_box2d() noexcept -> float;
314
318 //[[nodiscard]]
319 // static auto box2d_to_world() noexcept -> float;
320
324 //[[nodiscard]]
325 // static auto ansio_level() noexcept -> int;
326
330 //[[nodiscard]]
331 // static auto highdpi() noexcept -> bool;
332
333// inline static int s_flag_bitset_count;
334
335 // inline static float s_world_to_box2d;
336 // inline static float s_box2d_to_world;
337 // inline static int s_ansio_filtering;
338 // inline static bool s_highdpi;
339
340config.restore<float>("ui_font_size", 14.0f);
341config.restore<std::string>("default_lang", "en_au");
342
343config.restore<float>("sfx_volume", 1.0f, "audio");
344config.restore<float>("music_volume", 1.0f, "audio");
345config.restore<float>("dialogue_volume", 1.0f, "audio");
346config.restore<int>("listener_count", 1, "audio");
347
348config.restore<bool>("trilinear_filtering", false, "graphics");
349config.restore<int>("ansiotrophic_filtering", 2, "graphics");
350config.restore<bool>("smaa", false, "graphics.effects");
351config.restore<bool>("sharpen", false, "graphics.effects");
352config.restore<bool>("gamma_correction", false, "graphics.effects");
353config.restore<bool>("chromatic_abberation", false, "graphics.effects");
354config.restore<bool>("gaussian_blur", false, "graphics.effects");
355config.restore<bool>("film_grain", false, "graphics.effects");
356
357config.restore<int>("camera_foward", input::key_to_int(input::Keys::KEY_W), "input");
358config.restore<int>("camera_backward", input::key_to_int(input::Keys::KEY_S), "input");
359config.restore<int>("camera_left", input::key_to_int(input::Keys::KEY_A), "input");
360config.restore<int>("camera_right", input::key_to_int(input::Keys::KEY_D), "input");
361config.restore<int>("camera_rotate_left", input::key_to_int(input::Keys::KEY_Q), "input");
362config.restore<int>("camera_rotate_right", input::key_to_int(input::Keys::KEY_E), "input");
363
367// #define GALAXY_ENTITY_SIZE std::uint64_t
368*/
369
370#endif
Timer.hpp galaxy.
Definition Timer.cpp:18
Helper class to encapsulate our global settings we want to quickly access across app.
Definition Settings.hpp:19
static std::filesystem::path s_assets_dir
Definition Settings.hpp:266
static auto assets_dir_video() noexcept -> const std::string &
Video asset location.
Definition Settings.cpp:275
static auto assets_dir_voice() noexcept -> const std::string &
Voice asset location.
Definition Settings.cpp:235
static bool s_use_loose_assets
Definition Settings.hpp:269
static auto set_settings_from_config() -> void
Set all our settings using the provided config file.
Definition Settings.cpp:67
static auto assets_dir_script() noexcept -> const std::string &
Scripts asset location.
Definition Settings.cpp:245
static std::string s_assets_animation
Definition Settings.hpp:276
static std::string s_assets_voice
Definition Settings.hpp:272
static std::filesystem::path s_editor_dir
Definition Settings.hpp:267
static auto asset_pack() noexcept -> const std::string &
Name of packed assets file.
Definition Settings.cpp:215
static auto root_dir() noexcept -> std::filesystem::path
Current root directory of application, unless it has been changed.
Definition Settings.cpp:200
static auto assets_dir_prefabs() noexcept -> const std::string &
Prefab asset location.
Definition Settings.cpp:265
static auto assets_dir_shaders() noexcept -> const std::string &
Shaders asset location.
Definition Settings.cpp:250
static auto assets_dir_animation() noexcept -> const std::string &
Animation data location.
Definition Settings.cpp:255
static std::string s_assets_prefabs
Definition Settings.hpp:278
static std::string s_assets_texture
Definition Settings.hpp:277
static auto editor_dir() noexcept -> std::filesystem::path
Directory for editor specific stuff.
Definition Settings.cpp:210
static std::string s_assets_music
Definition Settings.hpp:270
static std::string s_assets_sfx
Definition Settings.hpp:271
static auto assets_dir_font() noexcept -> const std::string &
Font asset location.
Definition Settings.cpp:240
static auto assets_dir_maps() noexcept -> const std::string &
Maps asset location.
Definition Settings.cpp:270
static std::string s_assets_video
Definition Settings.hpp:280
static std::string s_assets_ui
Definition Settings.hpp:281
static auto assets_dir() noexcept -> std::filesystem::path
Main data directory.
Definition Settings.cpp:205
static std::string s_asset_pack
Definition Settings.hpp:268
static auto assets_dir_texture() noexcept -> const std::string &
Textures asset location.
Definition Settings.cpp:260
static auto use_loose_assets() noexcept -> bool
Should asset data be read from pack or assets dir.
Definition Settings.cpp:220
static auto assets_dir_music() noexcept -> const std::string &
Music asset location.
Definition Settings.cpp:225
static auto set_config_to_default() -> void
Restore all config settings to default.
Definition Settings.cpp:22
static auto assets_dir_sfx() noexcept -> const std::string &
SFX asset location.
Definition Settings.cpp:230
static std::string s_assets_maps
Definition Settings.hpp:279
static std::string s_assets_shaders
Definition Settings.hpp:275
static auto assets_dir_ui() noexcept -> const std::string &
UI asset location.
Definition Settings.cpp:280
static std::string s_assets_font
Definition Settings.hpp:273
static std::string s_assets_script
Definition Settings.hpp:274