F4MP/codigos originales/tiltedcode/Code/client/ModCompat/BehaviorOrig.cpp

34 lines
869 B
C++
Raw Normal View History

#include "BehaviorVarsMap.h"
#define MAGIC_ENUM_RANGE_MAX 400
#include "magic_enum.hpp"
namespace BehaviorOrig
{
template <typename V> void GenerateFromEnum(uint64_t aKey)
{
using namespace magic_enum;
constexpr size_t count = enum_count<V>();
constexpr auto variables_values = enum_values<V>();
constexpr auto variables_names = enum_names<V>();
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