Elaztek Developer Hub
Blamite Game Engine - blam!  00346.12.11.21.0529.blamite
The core library for the Blamite Game Engine.
config.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <map>
4 #include <string>
5 #include <Windows.h>
6 
7 #include <Strings/components/settings/config/config.h>
8 
11 
12 #define CONFIG_VER "1"
13 #define CONFIG_COMMENT_DELIMETER "#"
14 #define CONFIG_DEFAULT_NAME "engine.cfg"
15 #define CONFIG_COLOR_NAME "console_colors.cfg"
16 
17 
22 #define ENGINE_CFG Blam::Config::GetConfig()
23 
29 #define ENGINE_CFG_SECTION(section_name) Blam::Settings::Config::GetEngineConfiguration()->GetConfigurationSection(section_name)
30 
36 #define ENGINE_DATA_PATH(path) Blam::Settings::Paths::GetEngineDataPath(path)
37 
43 #define USER_DATA_PATH(path) Blam::Settings::Paths::GetUserDataPath(path)
44 
45 #ifndef BLAM
46 #define BLAM
47 #endif
48 
60 {
61  DataRoot,
62  Content,
63  Gallery,
64  Maps,
65  Fonts,
66  Tags,
67  Resources,
69 };
70 
85 {
86  DataRoot,
87  Tags,
88  Maps,
89  Mods,
90  Plugins,
91  Screenshots,
92  Reports,
93  LogArchives,
94  Cache
95 };
96 
97 namespace Blam
98 {
102  namespace Settings::Config
103  {
104  BLAM BlamResult LoadEngineConfiguration();
105  BLAM BlamResult LoadConfiguration(std::string filename);
106  BLAM BlamResult LoadConfiguration(std::string filename, std::string defaults_filename);
107 
108  BLAM BlamConfigurationFile* GetEngineConfiguration();
109  BLAM BlamConfigurationFile* GetConfiguration(std::string filename);
110 
112  BLAM bool IsConfigurationAvailable(std::string filename);
113 
115  BLAM void ExpandFilePlaceholders(BlamConfigurationFile* file);
116 
117  BLAM std::map<std::string, BlamConfigurationFile*>* GetConfigurationFiles();
118  }
119 
123  namespace Settings::Paths
124  {
134 
143  BLAM std::string GetDefaultUserDataPath(BlamUserDataFolder folder);
144 
152  BLAM std::string GetEngineDataPath(BlamEngineDataFolder folder);
153 
161  BLAM std::string GetUserDataPath(BlamUserDataFolder folder);
162 
172 
182  }
183 
189  namespace Config
190  {
194  struct ConfigFile
195  {
196  std::string filename;
197 
201  ConfigFile(std::string _filename);
202 
206  std::string GetString(std::string option);
207 
211  bool GetBoolean(std::string option);
212 
216  int GetInt(std::string option);
217 
221  float GetFloat(std::string option);
222  };
223 
228 
232  BLAM ConfigFile* GetConfig(std::string filename);
233  }
234 }
Blam
Namespace surrounding all major engine components.
Definition: blam_api.h:21
BlamUserDataFolder::Screenshots
@ Screenshots
Directory used to store engine screenshots. Defaults to {DataRoot}/screenshots/.
Blam::Settings::Config::GetEngineConfiguration
BLAM BlamConfigurationFile * GetEngineConfiguration()
Definition: config.cpp:58
BlamUserDataFolder::Mods
@ Mods
Directory storing user-created mod packages. Defaults to {DataRoot}/mods/.
Blam::Settings::Paths::GetUserDataFolderFromString
BLAM BlamUserDataFolder GetUserDataFolderFromString(std::string folder)
Attempts to convert a string to the equivalent user data folder.
Definition: paths.cpp:285
BlamUserDataFolder::Reports
@ Reports
Directory used to store the latest report (log) files. Defaults to {DataRoot}/reports/.
Blam::Settings::Paths::GetDefaultEngineDataPath
BLAM std::string GetDefaultEngineDataPath(BlamEngineDataFolder folder)
Retrieves a default value of a given engine data directory.
Definition: paths.cpp:94
BlamEngineDataFolder::DataRoot
@ DataRoot
The root of all game engine data. Defaults to ./
Blam::Config::ConfigFile::filename
std::string filename
Definition: config.h:196
BlamEngineDataFolder::Tags
@ Tags
Directory used for reading engine tags. Defaults to ./tags/
Blam::Settings::Config::IsConfigurationAvailable
BLAM bool IsConfigurationAvailable(std::string filename)
Definition: config.cpp:94
BlamUserDataFolder::Plugins
@ Plugins
Directory used to store plugin files for use with the Editing Kit. Defaults to {DataRoot}/plugins/.
Blam::Config::GetConfig
BLAM ConfigFile * GetConfig()
Definition: compat.cpp:5
Blam::Settings::Paths::GetEngineDataPath
BLAM std::string GetEngineDataPath(BlamEngineDataFolder folder)
Retrieves the configured value of a given engine directory.
Definition: paths.cpp:151
BlamEngineDataFolder::Fonts
@ Fonts
Directory used for game engine fonts. Defaults to ./maps/fonts/
BlamUserDataFolder::LogArchives
@ LogArchives
Directory used to store previous log archives. Defaults to {DataRoot}/logs/.
Blam::Settings::Config::GetConfiguration
BLAM BlamConfigurationFile * GetConfiguration(std::string filename)
Definition: config.cpp:70
Blam::Config::ConfigFile::GetInt
int GetInt(std::string option)
Definition: compat.cpp:98
BlamEngineDataFolder
BlamEngineDataFolder
Enumerator listing all possible engine data folders.
Definition: config.h:59
BlamUserDataFolder::Cache
@ Cache
Directory used to store any cached data used by the engine (not to be confused with ....
Blam::Config::ConfigFile::ConfigFile
ConfigFile(std::string _filename)
Definition: compat.cpp:33
Blam::Settings::Config::LoadConfiguration
BLAM BlamResult LoadConfiguration(std::string filename)
Definition: config.cpp:16
BLAM
#define BLAM
Definition: config.h:46
Blam::Settings::Paths::GetDefaultUserDataPath
BLAM std::string GetDefaultUserDataPath(BlamUserDataFolder folder)
Retrieves a default value of a given user data directory.
Definition: paths.cpp:25
errors.h
Blam::Settings::Config::ExpandFilePlaceholders
BLAM void ExpandFilePlaceholders(BlamConfigurationFile *file)
Definition: placeholder_expand.cpp:143
BlamUserDataFolder
BlamUserDataFolder
Enumerator listing all possible user data folders.
Definition: config.h:84
globals.h
Blam::Settings::Config::ExpandAllPlaceholders
BLAM void ExpandAllPlaceholders()
Definition: config.cpp:106
Blam::Settings::Config::GetConfigurationFiles
BLAM std::map< std::string, BlamConfigurationFile * > * GetConfigurationFiles()
Definition: config.cpp:116
BlamEngineDataFolder::Resources
@ Resources
Directory containing other resources and data, usually string tables and globals. Defaults to ....
BlamEngineDataFolder::Maps
@ Maps
Directory used for storing built-in cache files. Defaults to ./maps/
Blam::Config::ConfigFile::GetBoolean
bool GetBoolean(std::string option)
Definition: compat.cpp:38
BlamEngineDataFolder::DefaultConfigs
@ DefaultConfigs
Directory containing default configuration files. Defaults to ./content/blam/default_configs/
Blam::Settings::Config::LoadEngineConfiguration
BLAM BlamResult LoadEngineConfiguration()
Definition: config.cpp:11
Blam::Settings::Paths::GetUserDataPath
BLAM std::string GetUserDataPath(BlamUserDataFolder folder)
Retrieves the configured value of a given user directory.
Definition: paths.cpp:216
Blam::Config::ConfigFile::GetString
std::string GetString(std::string option)
Definition: compat.cpp:58
Blam::Config::ConfigFile
Definition: config.h:194
BlamEngineDataFolder::Gallery
@ Gallery
Directory containing general-purpose images. Defaults to ./content/Gallery/
BlamEngineDataFolder::Content
@ Content
Directory containing general-purpose resources. Defaults to ./content/
Blam::Settings::Config::IsEngineConfigurationAvailable
BLAM bool IsEngineConfigurationAvailable()
Definition: config.cpp:82
Blam::Config::ConfigFile::GetFloat
float GetFloat(std::string option)
Definition: compat.cpp:78
Blam::Settings::Paths::GetEngineDataFolderFromString
BLAM BlamEngineDataFolder GetEngineDataFolderFromString(std::string folder)
Attempts to convert a string to the equivalent engine data folder.
Definition: paths.cpp:327