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.cpp
Go to the documentation of this file.
1
7
8#include "Settings.hpp"
9
10namespace galaxy
11{
13 {
14 config.restore<double>("ups", 60.0f, "physics");
15
16 config.restore<int>("width", 1920, "window");
17 config.restore<int>("height", 1080, "window");
18 config.restore<std::string>("title", "galaxy", "window");
19 config.restore<std::string>("icon", "", "window");
20 config.restore<bool>("fullscreen", false, "window");
21 config.restore<bool>("key_repeat", true, "window");
22 config.restore<bool>("vsync", false, "window");
23 config.restore<bool>("msaa", false, "window");
24
25 config.restore<bool>("visible", true, "cursor");
26 config.restore<bool>("grab", false, "cursor");
27 config.restore<std::string>("icon", "", "cursor");
28 config.restore<int>("x", 0, "cursor.icon_size");
29 config.restore<int>("y", 0, "cursor.icon_size");
30 config.restore<int>("x", 0, "cursor.hotspot");
31 config.restore<int>("y", 0, "cursor.hotspot");
32
33 config.restore<std::string>("assets_dir", "assets/", "fs");
34 config.restore<std::string>("editor_dir", "editor/", "fs");
35 config.restore<std::string>("asset_pack", "assets.galaxy", "fs");
36 config.restore<bool>("use_loose_assets", true, "fs");
37 config.restore<std::string>("assets_music", "music/", "fs");
38 config.restore<std::string>("assets_sfx", "sfx/", "fs");
39 config.restore<std::string>("assets_voice", "voice/", "fs");
40 config.restore<std::string>("assets_font", "fonts/", "fs");
41 config.restore<std::string>("assets_script", "scripts/", "fs");
42 config.restore<std::string>("assets_shaders", "shaders/", "fs");
43 config.restore<std::string>("assets_animation", "animations/", "fs");
44 config.restore<std::string>("assets_texture", "textures/", "fs");
45 config.restore<std::string>("assets_prefabs", "prefabs/", "fs");
46 config.restore<std::string>("assets_maps", "maps/", "fs");
47 config.restore<std::string>("assets_video", "video/", "fs");
48 config.restore<std::string>("assets_ui", "ui/", "fs");
49
50 config.save();
51 }
52
54 {
55 s_ups = config.get<double>("ups", "physics");
56
57 s_window_width = config.get<int>("width", "window");
58 s_window_height = config.get<int>("height", "window");
59 s_title = config.get<std::string>("title", "window");
60 s_icon = config.get<std::string>("icon", "window");
61 s_fullscreen = config.get<bool>("fullscreen", "window");
62 s_key_repeat = config.get<bool>("key_repeat", "window");
63 s_vsync = config.get<bool>("vsync", "window");
64 s_msaa = config.get<bool>("msaa", "window");
65
66 s_cursor_visible = config.get<bool>("visible", "cursor");
67 s_cursor_grabbed = config.get<bool>("grab", "cursor");
68 s_cursor_icon = config.get<std::string>("icon", "cursor");
69 s_cursor_icon_size.x = config.get<int>("x", "cursor.icon_size");
70 s_cursor_icon_size.y = config.get<int>("y", "cursor.icon_size");
71 s_cursor_hotspot.x = config.get<int>("x", "cursor.hotspot");
72 s_cursor_hotspot.y = config.get<int>("y", "cursor.hotspot");
73
74 s_assets_dir = config.get<std::string>("assets_dir", "fs");
75 s_editor_dir = config.get<std::string>("editor_dir", "fs");
76 s_asset_pack = config.get<std::string>("asset_pack", "fs");
77 s_use_loose_assets = config.get<bool>("use_loose_assets", "fs");
78 s_assets_music = config.get<std::string>("assets_music", "fs");
79 s_assets_sfx = config.get<std::string>("assets_sfx", "fs");
80 s_assets_voice = config.get<std::string>("assets_voice", "fs");
81 s_assets_font = config.get<std::string>("assets_font", "fs");
82 s_assets_script = config.get<std::string>("assets_script", "fs");
83 s_assets_shaders = config.get<std::string>("assets_shaders", "fs");
84 s_assets_animation = config.get<std::string>("assets_animation", "fs");
85 s_assets_texture = config.get<std::string>("assets_texture", "fs");
86 s_assets_prefabs = config.get<std::string>("assets_prefabs", "fs");
87 s_assets_maps = config.get<std::string>("assets_maps", "fs");
88 s_assets_video = config.get<std::string>("assets_video", "fs");
89 s_assets_ui = config.get<std::string>("assets_ui", "fs");
90 }
91
92 auto settings::set_delta_time(const double dt) noexcept -> void
93 {
94 s_delta_time = dt;
95 }
96
97 auto settings::dt() noexcept -> double
98 {
99 return s_delta_time;
100 }
101
102 auto settings::ups() noexcept -> double
103 {
104 return s_ups;
105 }
106
107 auto settings::window_width() noexcept -> int
108 {
109 return s_window_width;
110 }
111
112 auto settings::window_height() noexcept -> int
113 {
114 return s_window_height;
115 }
116
117 auto settings::window_title() noexcept -> const std::string&
118 {
119 return s_title;
120 }
121
122 auto settings::window_icon() noexcept -> const std::string&
123 {
124 return s_icon;
125 }
126
127 auto settings::fullscreen() noexcept -> bool
128 {
129 return s_fullscreen;
130 }
131
132 auto settings::key_repeat() noexcept -> bool
133 {
134 return s_key_repeat;
135 }
136
137 auto settings::vsync() noexcept -> bool
138 {
139 return s_vsync;
140 }
141
142 auto settings::msaa() noexcept -> bool
143 {
144 return s_msaa;
145 }
146
147 auto settings::cursor_visible() noexcept -> bool
148 {
149 return s_cursor_visible;
150 }
151
152 auto settings::cursor_grabbed() noexcept -> bool
153 {
154 return s_cursor_grabbed;
155 }
156
157 auto settings::cursor_icon() noexcept -> const std::string&
158 {
159 return s_cursor_icon;
160 }
161
162 auto settings::cursor_icon_size() noexcept -> const sf::Vector2u&
163 {
164 return s_cursor_icon_size;
165 }
166
167 auto settings::cursor_hotspot() noexcept -> const sf::Vector2u&
168 {
169 return s_cursor_hotspot;
170 }
171
172 auto settings::root_dir() noexcept -> std::filesystem::path
173 {
174 return std::filesystem::current_path();
175 }
176
177 auto settings::assets_dir() noexcept -> std::filesystem::path
178 {
179 return s_assets_dir;
180 }
181
182 auto settings::editor_dir() noexcept -> std::filesystem::path
183 {
184 return s_editor_dir;
185 }
186
187 auto settings::asset_pack() noexcept -> const std::string&
188 {
189 return s_asset_pack;
190 }
191
192 auto settings::use_loose_assets() noexcept -> bool
193 {
194 return s_use_loose_assets;
195 }
196
197 auto settings::assets_dir_music() noexcept -> const std::string&
198 {
199 return s_assets_music;
200 }
201
202 auto settings::assets_dir_sfx() noexcept -> const std::string&
203 {
204 return s_assets_sfx;
205 }
206
207 auto settings::assets_dir_voice() noexcept -> const std::string&
208 {
209 return s_assets_voice;
210 }
211
212 auto settings::assets_dir_font() noexcept -> const std::string&
213 {
214 return s_assets_font;
215 }
216
217 auto settings::assets_dir_script() noexcept -> const std::string&
218 {
219 return s_assets_script;
220 }
221
222 auto settings::assets_dir_shaders() noexcept -> const std::string&
223 {
224 return s_assets_shaders;
225 }
226
227 auto settings::assets_dir_animation() noexcept -> const std::string&
228 {
229 return s_assets_animation;
230 }
231
232 auto settings::assets_dir_texture() noexcept -> const std::string&
233 {
234 return s_assets_texture;
235 }
236
237 auto settings::assets_dir_prefabs() noexcept -> const std::string&
238 {
239 return s_assets_prefabs;
240 }
241
242 auto settings::assets_dir_maps() noexcept -> const std::string&
243 {
244 return s_assets_maps;
245 }
246
247 auto settings::assets_dir_video() noexcept -> const std::string&
248 {
249 return s_assets_video;
250 }
251
252 auto settings::assets_dir_ui() noexcept -> const std::string&
253 {
254 return s_assets_ui;
255 }
256} // namespace galaxy
Allows you to read, write and manipulate JSON config files.
Definition Config.hpp:25
Timer.hpp galaxy.
Definition Async.hpp:17
Application.hpp galaxy.
STL namespace.
static auto cursor_icon() noexcept -> const std::string &
Cursor texture file in vfs.
Definition Settings.cpp:157
static std::string s_title
Definition Settings.hpp:245
static std::filesystem::path s_assets_dir
Definition Settings.hpp:258
static auto assets_dir_video() noexcept -> const std::string &
Video asset location.
Definition Settings.cpp:247
static std::string s_cursor_icon
Definition Settings.hpp:254
static auto assets_dir_voice() noexcept -> const std::string &
Voice asset location.
Definition Settings.cpp:207
static std::string s_icon
Definition Settings.hpp:246
static bool s_fullscreen
Definition Settings.hpp:247
static bool s_use_loose_assets
Definition Settings.hpp:261
static auto dt() noexcept -> double
Get galaxy delta time.
Definition Settings.cpp:97
static sf::Vector2u s_cursor_hotspot
Definition Settings.hpp:256
static auto window_icon() noexcept -> const std::string &
Window icon file in vfs.
Definition Settings.cpp:122
static auto assets_dir_script() noexcept -> const std::string &
Scripts asset location.
Definition Settings.cpp:217
static auto msaa() noexcept -> bool
Enable MSAA.
Definition Settings.cpp:142
static auto vsync() noexcept -> bool
Vsync control.
Definition Settings.cpp:137
static auto window_width() noexcept -> int
Window creation width.
Definition Settings.cpp:107
static std::string s_assets_animation
Definition Settings.hpp:268
static std::string s_assets_voice
Definition Settings.hpp:264
static std::filesystem::path s_editor_dir
Definition Settings.hpp:259
static auto asset_pack() noexcept -> const std::string &
Name of packed assets file.
Definition Settings.cpp:187
static double s_delta_time
Definition Settings.hpp:239
static auto window_height() noexcept -> int
Window creation height.
Definition Settings.cpp:112
static auto root_dir() noexcept -> std::filesystem::path
Current root directory of application, unless it has been changed.
Definition Settings.cpp:172
static int s_window_width
Definition Settings.hpp:243
static double s_ups
Definition Settings.hpp:241
static auto cursor_hotspot() noexcept -> const sf::Vector2u &
Cursor selector point (hotspot).
Definition Settings.cpp:167
static auto assets_dir_prefabs() noexcept -> const std::string &
Prefab asset location.
Definition Settings.cpp:237
static int s_window_height
Definition Settings.hpp:244
static auto assets_dir_shaders() noexcept -> const std::string &
Shaders asset location.
Definition Settings.cpp:222
static auto cursor_visible() noexcept -> bool
Show/hide mouse cursor.
Definition Settings.cpp:147
static auto assets_dir_animation() noexcept -> const std::string &
Animation data location.
Definition Settings.cpp:227
static std::string s_assets_prefabs
Definition Settings.hpp:270
static auto set_config_to_default(core::Config &config) -> void
Restore all config settings to default.
Definition Settings.cpp:12
static std::string s_assets_texture
Definition Settings.hpp:269
static auto editor_dir() noexcept -> std::filesystem::path
Directory for editor specific stuff.
Definition Settings.cpp:182
static auto set_delta_time(const double dt) noexcept -> void
Set galaxy delta time.
Definition Settings.cpp:92
static auto window_title() noexcept -> const std::string &
Window title.
Definition Settings.cpp:117
static bool s_cursor_grabbed
Definition Settings.hpp:253
static std::string s_assets_music
Definition Settings.hpp:262
static std::string s_assets_sfx
Definition Settings.hpp:263
static auto assets_dir_font() noexcept -> const std::string &
Font asset location.
Definition Settings.cpp:212
static auto cursor_grabbed() noexcept -> bool
Grab/release mouse cursor.
Definition Settings.cpp:152
static auto assets_dir_maps() noexcept -> const std::string &
Maps asset location.
Definition Settings.cpp:242
static std::string s_assets_video
Definition Settings.hpp:272
static std::string s_assets_ui
Definition Settings.hpp:273
static auto ups() noexcept -> double
Game updates per second, independant of FPS, see "fixed timestep gameloop".
Definition Settings.cpp:102
static auto assets_dir() noexcept -> std::filesystem::path
Main data directory.
Definition Settings.cpp:177
static std::string s_asset_pack
Definition Settings.hpp:260
static auto key_repeat() noexcept -> bool
Enable if a keypress will dispatch a single or repeating events.
Definition Settings.cpp:132
static auto assets_dir_texture() noexcept -> const std::string &
Textures asset location.
Definition Settings.cpp:232
static bool s_cursor_visible
Definition Settings.hpp:252
static auto use_loose_assets() noexcept -> bool
Should asset data be read from pack or assets dir.
Definition Settings.cpp:192
static auto assets_dir_music() noexcept -> const std::string &
Music asset location.
Definition Settings.cpp:197
static bool s_key_repeat
Definition Settings.hpp:248
static bool s_msaa
Definition Settings.hpp:250
static bool s_vsync
Definition Settings.hpp:249
static auto cursor_icon_size() noexcept -> const sf::Vector2u &
Cursor icon texture size.
Definition Settings.cpp:162
static auto assets_dir_sfx() noexcept -> const std::string &
SFX asset location.
Definition Settings.cpp:202
static auto set_settings_from_config(core::Config &config) -> void
Set all our settings using the provided config file.
Definition Settings.cpp:53
static sf::Vector2u s_cursor_icon_size
Definition Settings.hpp:255
static std::string s_assets_maps
Definition Settings.hpp:271
static std::string s_assets_shaders
Definition Settings.hpp:267
static auto assets_dir_ui() noexcept -> const std::string &
UI asset location.
Definition Settings.cpp:252
static auto fullscreen() noexcept -> bool
Window maximized state.
Definition Settings.cpp:127
static std::string s_assets_font
Definition Settings.hpp:265
static std::string s_assets_script
Definition Settings.hpp:266