diff options
Diffstat (limited to 'src/config/ConfigValue.cpp')
| -rw-r--r-- | src/config/ConfigValue.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/config/ConfigValue.cpp b/src/config/ConfigValue.cpp index 169bf29c..1c658b05 100644 --- a/src/config/ConfigValue.cpp +++ b/src/config/ConfigValue.cpp @@ -1,9 +1,18 @@ #include "ConfigValue.hpp" #include "ConfigManager.hpp" -void local__configValuePopulate(void* const** p, const std::string& val) { +void local__configValuePopulate(void* const** p, void* const** hlangp, std::type_index* ti, const std::string& val) { const auto BIGP = Config::mgr()->getConfigValue(val); - *p = BIGP.dataptr; + + RASSERT(BIGP.dataptr, "Something went really fucking wrong with config values"); + + *ti = std::type_index(*BIGP.type); + + if (std::type_index(*BIGP.type) == typeid(void*) || std::type_index(*BIGP.type) == typeid(const char*)) { + // this is a special, cursed case. ew. + *hlangp = BIGP.dataptr; + } else + *p = BIGP.dataptr; } std::type_index local__configValueTypeIdx(const std::string& val) { |
