Elaztek Developer Hub
Blamite Game Engine - blam!  00388.06.24.23.2301.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  Plugins,
71 };
72 
87 {
88  DataRoot,
89  Tags,
90  Maps,
91  Mods,
92  Extensions,
93  Plugins,
94  Screenshots,
95  Reports,
96  LogArchives,
97  Cache
98 };
99 
100 namespace Blam
101 {
105  namespace Settings::Config
106  {
107  BLAM BlamResult LoadEngineConfiguration();
108  BLAM BlamResult LoadConfiguration(std::string filename);
109  BLAM BlamResult LoadConfiguration(std::string filename, std::string defaults_filename);
110 
111  BLAM BlamConfigurationFile* GetEngineConfiguration();
112  BLAM BlamConfigurationFile* GetConfiguration(std::string filename);
113 
115  BLAM bool IsConfigurationAvailable(std::string filename);
116 
118  BLAM void ExpandFilePlaceholders(BlamConfigurationFile* file);
119 
120  BLAM std::map<std::string, BlamConfigurationFile*>* GetConfigurationFiles();
121  }
122 
126  namespace Settings::Paths
127  {
137 
146  BLAM std::string GetDefaultUserDataPath(BlamUserDataFolder folder);
147 
155  BLAM std::string GetEngineDataPath(BlamEngineDataFolder folder);
156 
164  BLAM std::string GetUserDataPath(BlamUserDataFolder folder);
165 
175 
185 
209  BLAM std::string ParseFolderPlaceholders(std::string string);
210  }
211 
217  namespace Config
218  {
224  struct ConfigFile
225  {
226  std::string filename;
227 
235  ConfigFile(std::string _filename);
236 
246  std::string GetString(std::string option);
247 
257  bool GetBoolean(std::string option);
258 
268  int GetInt(std::string option);
269 
279  float GetFloat(std::string option);
280  };
281 
288 
294  BLAM ConfigFile* GetConfig(std::string filename);
295  }
296 }
Blam
Namespace surrounding all major engine components.
Definition: blam_api.h:28
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:344
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:138
Blam::Logger::LogEvent
BLAM void LogEvent(std::string message)
Logs a message to the log and/or console.
Definition: aliases.cpp:142
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:226
CONFIG_COMMENT_DELIMETER
#define CONFIG_COMMENT_DELIMETER
The character that indicates a commented-out line.
Definition: config.h:13
logger.h
Blam::Settings::Config::IsConfigurationAvailable
BLAM bool IsConfigurationAvailable(std::string filename)
Definition: config.cpp:94
Blam::Config::GetConfig
BLAM ConfigFile * GetConfig()
Retrieves the engine configuration file.
Definition: compat.cpp:5
USER_DATA_PATH
#define USER_DATA_PATH(path)
Macro to quickly access a user data folder.
Definition: config.h:43
Blam::Settings::Paths::GetEngineDataPath
BLAM std::string GetEngineDataPath(BlamEngineDataFolder folder)
Retrieves the configured value of a given engine directory.
Definition: paths.cpp:205
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:64
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:86
globals.h
NULL
Add a fourth parameter to bake specific font ranges NULL
Definition: README.txt:57
ENGINE_DATA_PATH
#define ENGINE_DATA_PATH(path)
Macro to quickly access a game engine data folder.
Definition: config.h:36
resource.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:382
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
CONFIG_DEFAULT_NAME
#define CONFIG_DEFAULT_NAME
The filename of the default engine configuration.
Definition: config.h:14
Blam::Settings::Config::LoadEngineConfiguration
BLAM BlamResult LoadEngineConfiguration()
Definition: config.cpp:11
BlamEngineDataFolder::Plugins
@ Plugins
Directory used to store built-in plugin files for use with the Editing Kit. Defaults to ....
core.h
Blam::Settings::Paths::GetUserDataPath
BLAM std::string GetUserDataPath(BlamUserDataFolder folder)
Retrieves the configured value of a given user directory.
Definition: paths.cpp:275
Blam::Config::ConfigFile::GetString
std::string GetString(std::string option)
Retrieves a string option from a configuration file.
Definition: compat.cpp:58
config.h
Blam::Config::ConfigFile
Data structure representing a legacy configuration file.
Definition: config.h:224
BlamUserDataFolder::DataRoot
@ DataRoot
The root of all user data. Defaults to BlamStrings::Utils::IO::GetEngineDataRoot().
BlamEngineDataFolder::Gallery
@ Gallery
Directory containing general-purpose images. Defaults to ./content/Gallery/
compat_files
std::vector< Blam::Config::ConfigFile > compat_files
Definition: compat.cpp:3
BlamEngineDataFolder::Content
@ Content
Directory containing general-purpose resources. Defaults to ./content/
Blam::Settings::Config::IsEngineConfigurationAvailable
BLAM bool IsEngineConfigurationAvailable()
Definition: config.cpp:82
configuration_files
std::map< std::string, BlamConfigurationFile * > configuration_files
Definition: config.cpp:9
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:363