#include "BehaviorVarsMap.h" #define MAGIC_ENUM_RANGE_MAX 400 #include "magic_enum.hpp" namespace BehaviorOrig { template void GenerateFromEnum(uint64_t aKey) { using namespace magic_enum; constexpr size_t count = enum_count(); constexpr auto variables_values = enum_values(); constexpr auto variables_names = enum_names(); BehaviorVars sig; sig.m_key = aKey; for (size_t index = 0; index < count; index++) { TiltedPhoques::String name(variables_names[index]); uint32_t value = enum_integer(variables_values[index]); // Remove the leading 'k' name = name.substr(1, name.size() - 1); sig.m_nameMap[name] = value; sig.m_valueMap[value] = name; } BehaviorVarsMap::getInstance().Register(sig); }; #include "BehaviorOrig.Skyrim" } // namespace BehaviorOrig