Elaztek Developer Hub
Blamite Game Engine - blam!  00367.02.08.23.1815.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  Extensions,
68  Resources,
70 };
71 
86 {
87  DataRoot,
88  Tags,
89  Maps,
90  Mods,
91  Extensions,
92  Plugins,
93  Screenshots,
94  Reports,
95  LogArchives,
96  Cache
97 };
98 
99 namespace Blam
100 {
104  namespace Settings::Config
105  {
106  BLAM BlamResult LoadEngineConfiguration();
107  BLAM BlamResult LoadConfiguration(std::string filename);
108  BLAM BlamResult LoadConfiguration(std::string filename, std::string defaults_filename);
109 
110  BLAM BlamConfigurationFile* GetEngineConfiguration();
111  BLAM BlamConfigurationFile* GetConfiguration(std::string filename);
112 
114  BLAM bool IsConfigurationAvailable(std::string filename);
115 
117  BLAM void ExpandFilePlaceholders(BlamConfigurationFile* file);
118 
119  BLAM std::map<std::string, BlamConfigurationFile*>* GetConfigurationFiles();
120  }
121 
125  namespace Settings::Paths
126  {
136 
145  BLAM std::string GetDefaultUserDataPath(BlamUserDataFolder folder);
146 
154  BLAM std::string GetEngineDataPath(BlamEngineDataFolder folder);
155 
163  BLAM std::string GetUserDataPath(BlamUserDataFolder folder);
164 
174 
184 
208  BLAM std::string ParseFolderPlaceholders(std::string string);
209  }
210 
216  namespace Config
217  {
223  struct ConfigFile
224  {
225  std::string filename;
226 
234  ConfigFile(std::string _filename);
235 
245  std::string GetString(std::string option);
246 
256  bool GetBoolean(std::string option);
257 
267  int GetInt(std::string option);
268 
278  float GetFloat(std::string option);
279  };
280 
287 
293  BLAM ConfigFile* GetConfig(std::string filename);
294  }
295 }
Blam
Namespace surrounding all major engine components.
Definition: blam_api.h:27
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/.
BlamContentSource::Cache
@ Cache
The engine will load all content from cache files.
Blam::Settings::Paths::GetUserDataFolderFromString
BLAM BlamUserDataFolder GetUserDataFolderFromString(std::string folder)
Attempts to convert a string to the equivalent user data folder.
Definition: paths.cpp:333
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:137
BlamEngineDataFolder::DataRoot
@ DataRoot
The root of all game engine data. Defaults to ./
Blam::Config::ConfigFile::filename
std::string filename
The legacy configuration file name.
Definition: config.h:225
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()
Retrieves the engine configuration file.
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:199
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)
Retrieves an integer option from a configuration file.
Definition: compat.cpp:98
BlamEngineDataFolder
BlamEngineDataFolder
Enumerator listing all possible engine data folders.
Definition: config.h:59
Blam::Config::ConfigFile::ConfigFile
ConfigFile(std::string _filename)
Prepares a new legacy configuration file.
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:63
errors.h
Blam::Settings::Config::ExpandFilePlaceholders
BLAM void ExpandFilePlaceholders(BlamConfigurationFile *file)
Definition: placeholder_expand.cpp:143
BlamContentSource::Tags
@ Tags
The engine will load all content from tags.
BlamUserDataFolder
BlamUserDataFolder
Enumerator listing all possible user data folders.
Definition: config.h:85
globals.h
Blam::Settings::Paths::ParseFolderPlaceholders
BLAM std::string ParseFolderPlaceholders(std::string string)
Parses any engine/user data folder placeholders within a string.
Definition: paths.cpp:371
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::Extensions
@ Extensions
Directory used for engine extensions. Defaults to ./extensions/
BlamEngineDataFolder::Maps
@ Maps
Directory used for storing built-in cache files. Defaults to ./maps/
Blam::Config::ConfigFile::GetBoolean
bool GetBoolean(std::string option)
Retrieves a boolean option from a configuration file.
Definition: compat.cpp:38
BlamEngineDataFolder::DefaultConfigs
@ DefaultConfigs
Directory containing default configuration files. Defaults to ./content/blam/default_configs/
file
sock planetquake com All rights reserved Quake III Arena is a registered trademark of id Inc This level may be electronically distributed only at NO CHARGE to the recipient in its current MUST include this txt file
Definition: chiropteraDM.txt:95
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:264
Blam::Config::ConfigFile::GetString
std::string GetString(std::string option)
Retrieves a string option from a configuration file.
Definition: compat.cpp:58
Blam::Config::ConfigFile
Data structure representing a legacy configuration file.
Definition: config.h:223
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)
Retrieves a float option from a configuration file.
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:352