Blamite Game Engine - blam!  00263.10.17.20.0001.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 
6 #define CONFIG_VER "1"
7 #define CONFIG_COMMENT_DELIMETER "#"
8 #define CONFIG_DEFAULT_NAME "engine.cfg"
9 #define CONFIG_COLOR_NAME "console_colors.cfg"
10 
11 #define ENGINE_CFG Blam::Config::GetConfig()
12 
13 #ifndef BLAM
14 #define BLAM
15 #endif
16 
17 namespace Blam
18 {
24  namespace Settings::Config
25  {
26 
27  }
28 
36  namespace Config
37  {
41  struct ConfigOption
42  {
43  std::string id;
44  std::string value;
45  };
46 
50  class ConfigFile
51  {
52  public:
53  std::string path;
54  std::string filename;
55 
59  std::map<std::string, ConfigOption> options;
60 
65  std::map<std::string, ConfigOption> default_options;
66 
72  std::string GetString(std::string option);
73 
79  const char* GetCString(std::string option);
80 
86  std::wstring GetWString(std::string option);
87 
93  float GetFloat(std::string option);
94 
100  int GetInt(std::string option);
101 
107  double GetDouble(std::string option);
108 
114  bool GetBoolean(std::string option);
115 
116  private:
122  ConfigOption* find_config_option(std::string option);
123 
129  ConfigOption* find_config_default_option(std::string option);
130 
140  std::string get_raw_config_value(std::string config_option);
141  };
142 
152  BLAM int CheckDefaultConfig();
153 
154  BLAM bool IsDefaultConfigReady();
155 
156  //Config management
157  BLAM int LoadConfig(std::string filename); //Load a custom configuration file
158  BLAM int LoadConfig(std::string filename, bool load_defaults);
159  BLAM int LoadConfig(std::string filename, bool load_defaults, int defaults_resource_id);
160  BLAM int LoadConfig(std::string filename, bool load_defaults, int defaults_resource_id, const char* defaults_res_type);
161  BLAM int LoadConfig(); //Load the default configuration file
162  BLAM ConfigFile* GetConfig(std::string filename); //Get a custom configuration file
163  BLAM ConfigFile* GetConfig(); //Get the default configuration file
164  BLAM void ApplyPlaceholdersToAllConfigFiles(); //Applies placeholders to all config options in all files
165  BLAM void ExpandConfigOptionPlaceholders(); //Expands any config option placeholders in all config files
166  BLAM void InsertConfigFile(ConfigFile config); //Inserts a new configuration file into the list of config files
167  BLAM ConfigFile* GetConfigData(std::string filename);
168  }
169 }
Blam
Namespace surrounding all major engine components.
Definition: blam_api.h:17
Blam::Config::CheckDefaultConfig
BLAM int CheckDefaultConfig()
Checks if the default engine configuration file exists.
Definition: config.cpp:24
Blam::Config::ConfigFile::GetWString
std::wstring GetWString(std::string option)
Retrieves the specified config option's value as a wstring.
Definition: config_accessors.cpp:25
Blam::Config::ConfigFile::default_options
std::map< std::string, ConfigOption > default_options
Contains all defaults for the config file.
Definition: config.h:65
Blam::Config::ExpandConfigOptionPlaceholders
BLAM void ExpandConfigOptionPlaceholders()
Expands all placeholders, and converts them to their evaluated values.
Definition: config_internal.cpp:112
Blam::Config::GetConfig
BLAM ConfigFile * GetConfig(std::string filename)
Retrieves the specified configuration file.
Definition: config.cpp:227
Blam::Config::GetConfigData
BLAM ConfigFile * GetConfigData(std::string filename)
Retrieves the specified configuration file.
Definition: config_internal.cpp:186
Blam::Config::ApplyPlaceholdersToAllConfigFiles
BLAM void ApplyPlaceholdersToAllConfigFiles()
Applies placeholder values to all configuration files.
Definition: config_internal.cpp:123
Blam::Config::ConfigOption
Structure to contain data for an option within a Config file.
Definition: config.h:41
Blam::Config::LoadConfig
BLAM int LoadConfig(std::string filename)
Loads a configuration file from the specified path.
Definition: config.cpp:70
Blam::Config::ConfigFile
Class to contain data related to a Config file.
Definition: config.h:50
BLAM
#define BLAM
Definition: config.h:14
Blam::Config::ConfigOption::value
std::string value
The raw string value of the option, as it displays in the config file.
Definition: config.h:44
Blam::Config::InsertConfigFile
BLAM void InsertConfigFile(ConfigFile config)
Inserts a loaded ConfigFile into the map of loaded configuration files.
Definition: config_internal.cpp:178
Blam::Config::ConfigFile::options
std::map< std::string, ConfigOption > options
Contains all options contained within the config file.
Definition: config.h:59
Blam::Config::ConfigFile::GetInt
int GetInt(std::string option)
Retrieves the specified config option's value as a float
Definition: config_accessors.cpp:38
Blam::Config::IsDefaultConfigReady
BLAM bool IsDefaultConfigReady()
Definition: config_internal.cpp:94
Blam::Config::ConfigOption::id
std::string id
The ID of the configuration setting, as it displays in the config file.
Definition: config.h:43
Blam::Config::ConfigFile::filename
std::string filename
The name of the configuration file.
Definition: config.h:54
Blam::Config::ConfigFile::path
std::string path
The path to the configuration file. Can be either absolute or relative.
Definition: config.h:53
Blam::Config::ConfigFile::GetFloat
float GetFloat(std::string option)
Retrieves the specified config option's value as an int (32-bit integer)
Definition: config_accessors.cpp:45
Blam::Config::ConfigFile::GetBoolean
bool GetBoolean(std::string option)
Retrieves the specified config option's value as a bool
Definition: config_accessors.cpp:61
Blam::Config::ConfigFile::GetCString
const char * GetCString(std::string option)
Retrieves the specified config option's value as a const char*, also referred to as a C-String.
Definition: config_accessors.cpp:17
Blam::Config::ConfigFile::GetDouble
double GetDouble(std::string option)
Retrieves the specified config option's value as a double
Definition: config_accessors.cpp:52
Blam::Config::ConfigFile::GetString
std::string GetString(std::string option)
Retrieves the specified config option's value as a string.
Definition: config_accessors.cpp:10