Elaztek Developer Hub
Blamite Game Engine - blam!  00398.09.22.23.2015.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
NULL
Add a fourth parameter to bake specific font ranges NULL
Definition: README.txt:57
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
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 ....
globals.h
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/
it
ARPHIC PUBLIC LICENSE Ltd Yung Chi Taiwan All rights reserved except as specified below Everyone is permitted to copy and distribute verbatim copies of this license but changing it is forbidden Preamble The licenses for most software are designed to take away your freedom to share and change it By the ARPHIC PUBLIC LICENSE specifically permits and encourages you to use this provided that you give the recipients all the rights that we gave you and make sure they can get the modifications of this software Legal Terms Font means the TrueType fonts AR PL Mingti2L AR PL KaitiM AR PL KaitiM and the derivatives of those fonts created through any modification including modifying reordering converting changing font or adding deleting some characters in from glyph table PL means Public License Copyright Holder means whoever is named in the copyright or copyrights for the Font You means the or person redistributing or modifying the Font Freely Available means that you have the freedom to copy or modify the Font as well as redistribute copies of the Font under the same conditions you not price If you you can charge for this service Copying &Distribution You may copy and distribute verbatim copies of this Font in any without provided that you retain this license including modifying reordering converting changing font or adding deleting some characters in from glyph and copy and distribute such modifications under the terms of Section provided that the following conditions are such as by offering access to copy the modifications from a designated or distributing the modifications on a medium customarily used for software interchange c If the modified fonts normally reads commands interactively when you must cause it
Definition: ARPHICPL.TXT:36
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