StevEngine
StevEngine is a customizable C++ game engine.
Loading...
Searching...
No Matches
Settings.hpp
1#pragma once
2#ifdef StevEngine_PLAYER_DATA
3#include "utilities/KeyValueStore.hpp"
4#include "main/Log.hpp"
5
6#include <string>
7
8namespace StevEngine::Data {
15 class Settings {
16 public:
21 void Init(std::string title);
22
29 template<typename T> T Read(std::string name) const {
30 //Check if key exists
31 if(!settings.Contains(name)) {
32 Log::Error(std::format("Setting with key '{}' not found!", name), true);
33 return (T)NULL;
34 }
35 //Get data
36 return settings.Read<T>(name);
37 }
38
44 bool HasValue(std::string name) const;
45
52 template<typename T> void Save(std::string name, T data) {
53 settings.Write(name, data);
54 }
55
60 void Delete(std::string name);
61
66 std::string GetConfigPath() const { return configPath; }
67
71 void SaveToFile() const;
72
73 private:
74 std::string configPath;
76 };
77
79 extern Settings settings;
80}
81#endif
Manages game settings and configuration.
Definition Settings.hpp:15
void Delete(std::string name)
Delete saved setting.
Definition Settings.cpp:29
void Save(std::string name, T data)
Save setting value.
Definition Settings.hpp:52
T Read(std::string name) const
Read setting value of specified type.
Definition Settings.hpp:29
std::string GetConfigPath() const
Get path to config directory.
Definition Settings.hpp:66
void Init(std::string title)
Initialize settings manager.
Definition Settings.cpp:19
void SaveToFile() const
Write all settings to disk.
Definition Settings.cpp:32
bool HasValue(std::string name) const
Check if setting exists.
Definition Settings.cpp:26
Definition KeyValueStore.hpp:5