Created ComponentInfo::EnumType which defines which native type to use for enums.
This commit is contained in:
@@ -5,12 +5,14 @@
|
||||
|
||||
struct ComponentInfo
|
||||
{
|
||||
typedef int EnumType;
|
||||
|
||||
struct Meta_t
|
||||
{
|
||||
std::string Annotation;
|
||||
unsigned int Allocation = 0;
|
||||
std::map<std::string, std::string> FieldAnnotations;
|
||||
std::map<std::string, std::map<std::string, int>> FieldEnumDefinitions;
|
||||
std::map<std::string, std::map<std::string, EnumType>> FieldEnumDefinitions;
|
||||
};
|
||||
|
||||
struct Field_t
|
||||
|
||||
@@ -18,7 +18,7 @@ struct ComponentWrapper
|
||||
const ::EntityID EntityID;
|
||||
char* Data;
|
||||
|
||||
int Enum(const char* fieldName, const char* enumKey)
|
||||
ComponentInfo::EnumType Enum(const char* fieldName, const char* enumKey)
|
||||
{
|
||||
return Info.Meta->FieldEnumDefinitions.at(fieldName).at(enumKey);
|
||||
}
|
||||
@@ -58,7 +58,7 @@ struct ComponentWrapper
|
||||
|
||||
public:
|
||||
// Return the integer value of an enum type key for this field
|
||||
int Enum(const char* enumKey) { return m_Component->Enum(m_PropertyName.c_str(), enumKey); }
|
||||
ComponentInfo::EnumType Enum(const char* enumKey) { return m_Component->Enum(m_PropertyName.c_str(), enumKey); }
|
||||
|
||||
template <typename T>
|
||||
operator T&() { return m_Component->Field<T>(m_PropertyName); }
|
||||
|
||||
Reference in New Issue
Block a user