|
@@ -39,28 +39,27 @@ struct TypeInherits {
|
|
|
|
|
|
template <class T, typename = void>
|
|
template <class T, typename = void>
|
|
struct GetTypeInfo {
|
|
struct GetTypeInfo {
|
|
- enum { VARIANT_TYPE = Variant::NIL };
|
|
|
|
-
|
|
|
|
|
|
+ static const Variant::Type VARIANT_TYPE = Variant::NIL;
|
|
static inline PropertyInfo get_class_info() {
|
|
static inline PropertyInfo get_class_info() {
|
|
ERR_PRINT("GetTypeInfo fallback. Bug!");
|
|
ERR_PRINT("GetTypeInfo fallback. Bug!");
|
|
return PropertyInfo(); // Not "Nil", this is an error
|
|
return PropertyInfo(); // Not "Nil", this is an error
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
-#define MAKE_TYPE_INFO(m_type, m_var_type) \
|
|
|
|
- template <> \
|
|
|
|
- struct GetTypeInfo<m_type> { \
|
|
|
|
- enum { VARIANT_TYPE = m_var_type }; \
|
|
|
|
- static inline PropertyInfo get_class_info() { \
|
|
|
|
- return PropertyInfo((Variant::Type)VARIANT_TYPE, String()); \
|
|
|
|
- } \
|
|
|
|
- }; \
|
|
|
|
- template <> \
|
|
|
|
- struct GetTypeInfo<const m_type &> { \
|
|
|
|
- enum { VARIANT_TYPE = m_var_type }; \
|
|
|
|
- static inline PropertyInfo get_class_info() { \
|
|
|
|
- return PropertyInfo((Variant::Type)VARIANT_TYPE, String()); \
|
|
|
|
- } \
|
|
|
|
|
|
+#define MAKE_TYPE_INFO(m_type, m_var_type) \
|
|
|
|
+ template <> \
|
|
|
|
+ struct GetTypeInfo<m_type> { \
|
|
|
|
+ static const Variant::Type VARIANT_TYPE = m_var_type; \
|
|
|
|
+ static inline PropertyInfo get_class_info() { \
|
|
|
|
+ return PropertyInfo(VARIANT_TYPE, String()); \
|
|
|
|
+ } \
|
|
|
|
+ }; \
|
|
|
|
+ template <> \
|
|
|
|
+ struct GetTypeInfo<const m_type &> { \
|
|
|
|
+ static const Variant::Type VARIANT_TYPE = m_var_type; \
|
|
|
|
+ static inline PropertyInfo get_class_info() { \
|
|
|
|
+ return PropertyInfo(VARIANT_TYPE, String()); \
|
|
|
|
+ } \
|
|
};
|
|
};
|
|
|
|
|
|
MAKE_TYPE_INFO(bool, Variant::BOOL)
|
|
MAKE_TYPE_INFO(bool, Variant::BOOL)
|
|
@@ -108,14 +107,14 @@ MAKE_TYPE_INFO(BSP_Tree, Variant::DICTIONARY)
|
|
//for RefPtr
|
|
//for RefPtr
|
|
template <>
|
|
template <>
|
|
struct GetTypeInfo<RefPtr> {
|
|
struct GetTypeInfo<RefPtr> {
|
|
- enum { VARIANT_TYPE = Variant::OBJECT };
|
|
|
|
|
|
+ static const Variant::Type VARIANT_TYPE = Variant::OBJECT;
|
|
static inline PropertyInfo get_class_info() {
|
|
static inline PropertyInfo get_class_info() {
|
|
return PropertyInfo(Variant::OBJECT, String(), PROPERTY_HINT_RESOURCE_TYPE, "Reference");
|
|
return PropertyInfo(Variant::OBJECT, String(), PROPERTY_HINT_RESOURCE_TYPE, "Reference");
|
|
}
|
|
}
|
|
};
|
|
};
|
|
template <>
|
|
template <>
|
|
struct GetTypeInfo<const RefPtr &> {
|
|
struct GetTypeInfo<const RefPtr &> {
|
|
- enum { VARIANT_TYPE = Variant::OBJECT };
|
|
|
|
|
|
+ static const Variant::Type VARIANT_TYPE = Variant::OBJECT;
|
|
static inline PropertyInfo get_class_info() {
|
|
static inline PropertyInfo get_class_info() {
|
|
return PropertyInfo(Variant::OBJECT, String(), PROPERTY_HINT_RESOURCE_TYPE, "Reference");
|
|
return PropertyInfo(Variant::OBJECT, String(), PROPERTY_HINT_RESOURCE_TYPE, "Reference");
|
|
}
|
|
}
|
|
@@ -124,7 +123,7 @@ struct GetTypeInfo<const RefPtr &> {
|
|
//for variant
|
|
//for variant
|
|
template <>
|
|
template <>
|
|
struct GetTypeInfo<Variant> {
|
|
struct GetTypeInfo<Variant> {
|
|
- enum { VARIANT_TYPE = Variant::NIL };
|
|
|
|
|
|
+ static const Variant::Type VARIANT_TYPE = Variant::NIL;
|
|
static inline PropertyInfo get_class_info() {
|
|
static inline PropertyInfo get_class_info() {
|
|
return PropertyInfo(Variant::NIL, String(), PROPERTY_HINT_NONE, String(), PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_NIL_IS_VARIANT);
|
|
return PropertyInfo(Variant::NIL, String(), PROPERTY_HINT_NONE, String(), PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_NIL_IS_VARIANT);
|
|
}
|
|
}
|
|
@@ -132,26 +131,26 @@ struct GetTypeInfo<Variant> {
|
|
|
|
|
|
template <>
|
|
template <>
|
|
struct GetTypeInfo<const Variant &> {
|
|
struct GetTypeInfo<const Variant &> {
|
|
- enum { VARIANT_TYPE = Variant::NIL };
|
|
|
|
|
|
+ static const Variant::Type VARIANT_TYPE = Variant::NIL;
|
|
static inline PropertyInfo get_class_info() {
|
|
static inline PropertyInfo get_class_info() {
|
|
return PropertyInfo(Variant::NIL, String(), PROPERTY_HINT_NONE, String(), PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_NIL_IS_VARIANT);
|
|
return PropertyInfo(Variant::NIL, String(), PROPERTY_HINT_NONE, String(), PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_NIL_IS_VARIANT);
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
-#define MAKE_TEMPLATE_TYPE_INFO(m_template, m_type, m_var_type) \
|
|
|
|
- template <> \
|
|
|
|
- struct GetTypeInfo<m_template<m_type> > { \
|
|
|
|
- enum { VARIANT_TYPE = m_var_type }; \
|
|
|
|
- static inline PropertyInfo get_class_info() { \
|
|
|
|
- return PropertyInfo((Variant::Type)VARIANT_TYPE, String()); \
|
|
|
|
- } \
|
|
|
|
- }; \
|
|
|
|
- template <> \
|
|
|
|
- struct GetTypeInfo<const m_template<m_type> &> { \
|
|
|
|
- enum { VARIANT_TYPE = m_var_type }; \
|
|
|
|
- static inline PropertyInfo get_class_info() { \
|
|
|
|
- return PropertyInfo((Variant::Type)VARIANT_TYPE, String()); \
|
|
|
|
- } \
|
|
|
|
|
|
+#define MAKE_TEMPLATE_TYPE_INFO(m_template, m_type, m_var_type) \
|
|
|
|
+ template <> \
|
|
|
|
+ struct GetTypeInfo<m_template<m_type> > { \
|
|
|
|
+ static const Variant::Type VARIANT_TYPE = m_var_type; \
|
|
|
|
+ static inline PropertyInfo get_class_info() { \
|
|
|
|
+ return PropertyInfo(VARIANT_TYPE, String()); \
|
|
|
|
+ } \
|
|
|
|
+ }; \
|
|
|
|
+ template <> \
|
|
|
|
+ struct GetTypeInfo<const m_template<m_type> &> { \
|
|
|
|
+ static const Variant::Type VARIANT_TYPE = m_var_type; \
|
|
|
|
+ static inline PropertyInfo get_class_info() { \
|
|
|
|
+ return PropertyInfo(VARIANT_TYPE, String()); \
|
|
|
|
+ } \
|
|
};
|
|
};
|
|
|
|
|
|
MAKE_TEMPLATE_TYPE_INFO(Vector, uint8_t, Variant::POOL_BYTE_ARRAY)
|
|
MAKE_TEMPLATE_TYPE_INFO(Vector, uint8_t, Variant::POOL_BYTE_ARRAY)
|
|
@@ -171,8 +170,7 @@ MAKE_TEMPLATE_TYPE_INFO(PoolVector, Face3, Variant::POOL_VECTOR3_ARRAY)
|
|
|
|
|
|
template <typename T>
|
|
template <typename T>
|
|
struct GetTypeInfo<T *, typename EnableIf<TypeInherits<Object, T>::value>::type> {
|
|
struct GetTypeInfo<T *, typename EnableIf<TypeInherits<Object, T>::value>::type> {
|
|
- enum { VARIANT_TYPE = Variant::OBJECT };
|
|
|
|
-
|
|
|
|
|
|
+ static const Variant::Type VARIANT_TYPE = Variant::OBJECT;
|
|
static inline PropertyInfo get_class_info() {
|
|
static inline PropertyInfo get_class_info() {
|
|
return PropertyInfo(StringName(T::get_class_static()));
|
|
return PropertyInfo(StringName(T::get_class_static()));
|
|
}
|
|
}
|
|
@@ -180,8 +178,7 @@ struct GetTypeInfo<T *, typename EnableIf<TypeInherits<Object, T>::value>::type>
|
|
|
|
|
|
template <typename T>
|
|
template <typename T>
|
|
struct GetTypeInfo<const T *, typename EnableIf<TypeInherits<Object, T>::value>::type> {
|
|
struct GetTypeInfo<const T *, typename EnableIf<TypeInherits<Object, T>::value>::type> {
|
|
- enum { VARIANT_TYPE = Variant::OBJECT };
|
|
|
|
-
|
|
|
|
|
|
+ static const Variant::Type VARIANT_TYPE = Variant::OBJECT;
|
|
static inline PropertyInfo get_class_info() {
|
|
static inline PropertyInfo get_class_info() {
|
|
return PropertyInfo(StringName(T::get_class_static()));
|
|
return PropertyInfo(StringName(T::get_class_static()));
|
|
}
|
|
}
|
|
@@ -190,7 +187,7 @@ struct GetTypeInfo<const T *, typename EnableIf<TypeInherits<Object, T>::value>:
|
|
#define TEMPL_MAKE_ENUM_TYPE_INFO(m_enum, m_impl) \
|
|
#define TEMPL_MAKE_ENUM_TYPE_INFO(m_enum, m_impl) \
|
|
template <> \
|
|
template <> \
|
|
struct GetTypeInfo<m_impl> { \
|
|
struct GetTypeInfo<m_impl> { \
|
|
- enum { VARIANT_TYPE = Variant::INT }; \
|
|
|
|
|
|
+ static const Variant::Type VARIANT_TYPE = Variant::INT; \
|
|
static inline PropertyInfo get_class_info() { \
|
|
static inline PropertyInfo get_class_info() { \
|
|
return PropertyInfo(Variant::INT, String(), PROPERTY_HINT_NONE, String(), PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_CLASS_IS_ENUM, String(#m_enum).replace("::", ".")); \
|
|
return PropertyInfo(Variant::INT, String(), PROPERTY_HINT_NONE, String(), PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_CLASS_IS_ENUM, String(#m_enum).replace("::", ".")); \
|
|
} \
|
|
} \
|