Implemented most new apis to Variant.

This commit is contained in:
Relintai 2023-05-30 00:58:56 +02:00
parent 2346bba159
commit 83fab63cf2
2 changed files with 88 additions and 14 deletions

View File

@ -62,6 +62,44 @@ pandemonium_variant_type GDAPI pandemonium_variant_get_type(const pandemonium_va
return (pandemonium_variant_type)self->get_type(); return (pandemonium_variant_type)self->get_type();
} }
pandemonium_bool GDAPI pandemonium_variant_is_ref(const pandemonium_variant *p_self) {
const Variant *self = (const Variant *)p_self;
return self->is_ref();
}
pandemonium_bool GDAPI pandemonium_variant_is_num(const pandemonium_variant *p_self) {
const Variant *self = (const Variant *)p_self;
return self->is_num();
}
pandemonium_bool GDAPI pandemonium_variant_is_array(const pandemonium_variant *p_self) {
const Variant *self = (const Variant *)p_self;
return self->is_array();
}
pandemonium_bool GDAPI pandemonium_variant_is_null(const pandemonium_variant *p_self) {
const Variant *self = (const Variant *)p_self;
return self->is_null();
}
pandemonium_bool GDAPI pandemonium_variant_is_shared(const pandemonium_variant *p_self) {
const Variant *self = (const Variant *)p_self;
return self->is_shared();
}
pandemonium_bool GDAPI pandemonium_variant_is_zero(const pandemonium_variant *p_self) {
const Variant *self = (const Variant *)p_self;
return self->is_zero();
}
pandemonium_bool GDAPI pandemonium_variant_is_one(const pandemonium_variant *p_self) {
const Variant *self = (const Variant *)p_self;
return self->is_one();
}
pandemonium_int GDAPI pandemonium_variant_get_object_instance_id(const pandemonium_variant *p_self) {
const Variant *self = (const Variant *)p_self;
return self->get_object_instance_id();
}
pandemonium_bool GDAPI pandemonium_variant_is_invalid_object(const pandemonium_variant *p_self) {
const Variant *self = (const Variant *)p_self;
return self->is_invalid_object();
}
void GDAPI pandemonium_variant_new_copy(pandemonium_variant *p_dest, const pandemonium_variant *p_src) { void GDAPI pandemonium_variant_new_copy(pandemonium_variant *p_dest, const pandemonium_variant *p_src) {
Variant *dest = (Variant *)p_dest; Variant *dest = (Variant *)p_dest;
Variant *src = (Variant *)p_src; Variant *src = (Variant *)p_src;
@ -477,6 +515,17 @@ pandemonium_bool GDAPI pandemonium_variant_has_method(const pandemonium_variant
return self->has_method(*method); return self->has_method(*method);
} }
pandemonium_bool GDAPI pandemonium_variant_deep_equal(const pandemonium_variant *p_self, const pandemonium_variant *p_variant) {
const Variant *self = (const Variant *)p_self;
const Variant *variant = (const Variant *)p_variant;
return self->deep_equal(*variant);
}
pandemonium_bool GDAPI pandemonium_variant_deep_equal_recursion_count(const pandemonium_variant *p_self, const pandemonium_variant *p_variant, pandemonium_int p_recursion_count) {
const Variant *self = (const Variant *)p_self;
const Variant *variant = (const Variant *)p_variant;
return self->deep_equal(*variant, p_recursion_count);
}
pandemonium_bool GDAPI pandemonium_variant_operator_equal(const pandemonium_variant *p_self, const pandemonium_variant *p_other) { pandemonium_bool GDAPI pandemonium_variant_operator_equal(const pandemonium_variant *p_self, const pandemonium_variant *p_other) {
const Variant *self = (const Variant *)p_self; const Variant *self = (const Variant *)p_self;
const Variant *other = (const Variant *)p_other; const Variant *other = (const Variant *)p_other;
@ -489,6 +538,11 @@ pandemonium_bool GDAPI pandemonium_variant_operator_less(const pandemonium_varia
return self->operator<(*other); return self->operator<(*other);
} }
pandemonium_int GDAPI pandemonium_variant_hash(const pandemonium_variant *p_self) {
const Variant *self = (const Variant *)p_self;
return self->hash();
}
pandemonium_bool GDAPI pandemonium_variant_hash_compare(const pandemonium_variant *p_self, const pandemonium_variant *p_other) { pandemonium_bool GDAPI pandemonium_variant_hash_compare(const pandemonium_variant *p_self, const pandemonium_variant *p_other) {
const Variant *self = (const Variant *)p_self; const Variant *self = (const Variant *)p_self;
const Variant *other = (const Variant *)p_other; const Variant *other = (const Variant *)p_other;
@ -523,6 +577,23 @@ void GDAPI pandemonium_variant_evaluate(pandemonium_variant_operator p_op, const
Variant::evaluate(op, *a, *b, *ret, *r_valid); Variant::evaluate(op, *a, *b, *ret, *r_valid);
} }
void GDAPI pandemonium_variant_zero(pandemonium_variant *p_self) {
Variant *self = (Variant *)p_self;
self->zero();
}
pandemonium_variant GDAPI pandemonium_variant_duplicate(const pandemonium_variant *p_self) {
pandemonium_variant dest;
const Variant *self = (const Variant *)p_self;
*((Variant *)&dest) = self->duplicate();
return dest;
}
pandemonium_variant GDAPI pandemonium_variant_duplicate_deep(const pandemonium_variant *p_self, pandemonium_bool deep) {
pandemonium_variant dest;
const Variant *self = (const Variant *)p_self;
*((Variant *)&dest) = self->duplicate(deep);
return dest;
}
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -191,23 +191,25 @@ pandemonium_variant_type GDAPI pandemonium_variant_get_type(const pandemonium_va
//static bool can_convert(Type p_type_from, Type p_type_to); //static bool can_convert(Type p_type_from, Type p_type_to);
//static bool can_convert_strict(Type p_type_from, Type p_type_to); //static bool can_convert_strict(Type p_type_from, Type p_type_to);
//bool is_ref() const; pandemonium_bool GDAPI pandemonium_variant_is_ref(const pandemonium_variant *p_self);
//_FORCE_INLINE_ bool is_num() const { return type == INT || type == REAL; }; pandemonium_bool GDAPI pandemonium_variant_is_num(const pandemonium_variant *p_self);
//_FORCE_INLINE_ bool is_array() const { return type >= ARRAY; }; pandemonium_bool GDAPI pandemonium_variant_is_array(const pandemonium_variant *p_self);
//_FORCE_INLINE_ bool is_null() const { return type == NIL; }; pandemonium_bool GDAPI pandemonium_variant_is_null(const pandemonium_variant *p_self);
//bool is_shared() const; pandemonium_bool GDAPI pandemonium_variant_is_shared(const pandemonium_variant *p_self);
//bool is_zero() const; pandemonium_bool GDAPI pandemonium_variant_is_zero(const pandemonium_variant *p_self);
//bool is_one() const; pandemonium_bool GDAPI pandemonium_variant_is_one(const pandemonium_variant *p_self);
//ObjectID get_object_instance_id() const; pandemonium_int GDAPI pandemonium_variant_get_object_instance_id(const pandemonium_variant *p_self);
//bool is_invalid_object() const; pandemonium_bool GDAPI pandemonium_variant_is_invalid_object(const pandemonium_variant *p_self);
pandemonium_string GDAPI pandemonium_variant_get_operator_name(pandemonium_variant_operator p_op); pandemonium_string GDAPI pandemonium_variant_get_operator_name(pandemonium_variant_operator p_op);
void GDAPI pandemonium_variant_evaluate(pandemonium_variant_operator p_op, const pandemonium_variant *p_a, const pandemonium_variant *p_b, pandemonium_variant *r_ret, pandemonium_bool *r_valid); void GDAPI pandemonium_variant_evaluate(pandemonium_variant_operator p_op, const pandemonium_variant *p_a, const pandemonium_variant *p_b, pandemonium_variant *r_ret, pandemonium_bool *r_valid);
//static _FORCE_INLINE_ Variant evaluate(const Operator &p_op, const Variant &p_a, const Variant &p_b) { //static _FORCE_INLINE_ Variant evaluate(const Operator &p_op, const Variant &p_a, const Variant &p_b);
void GDAPI pandemonium_variant_zero(pandemonium_variant *p_self);
pandemonium_variant GDAPI pandemonium_variant_duplicate(const pandemonium_variant *p_self);
pandemonium_variant GDAPI pandemonium_variant_duplicate_deep(const pandemonium_variant *p_self, pandemonium_bool deep);
//void zero();
//Variant duplicate(bool deep = false) const;
//static void blend(const Variant &a, const Variant &b, float c, Variant &r_dst); //static void blend(const Variant &a, const Variant &b, float c, Variant &r_dst);
//static void interpolate(const Variant &a, const Variant &b, float c, Variant &r_dst); //static void interpolate(const Variant &a, const Variant &b, float c, Variant &r_dst);
//static void sub(const Variant &a, const Variant &b, Variant &r_dst); //static void sub(const Variant &a, const Variant &b, Variant &r_dst);
@ -241,10 +243,11 @@ pandemonium_bool GDAPI pandemonium_variant_has_method(const pandemonium_variant
//void get_property_list(List<PropertyInfo> *p_list) const; //void get_property_list(List<PropertyInfo> *p_list) const;
//bool deep_equal(const Variant &p_variant, int p_recursion_count = 0) const; pandemonium_bool GDAPI pandemonium_variant_deep_equal(const pandemonium_variant *p_self, const pandemonium_variant *p_variant);
pandemonium_bool GDAPI pandemonium_variant_deep_equal_recursion_count(const pandemonium_variant *p_self, const pandemonium_variant *p_variant, pandemonium_int p_recursion_count);
pandemonium_bool GDAPI pandemonium_variant_operator_equal(const pandemonium_variant *p_self, const pandemonium_variant *p_other); pandemonium_bool GDAPI pandemonium_variant_operator_equal(const pandemonium_variant *p_self, const pandemonium_variant *p_other);
pandemonium_bool GDAPI pandemonium_variant_operator_less(const pandemonium_variant *p_self, const pandemonium_variant *p_other); pandemonium_bool GDAPI pandemonium_variant_operator_less(const pandemonium_variant *p_self, const pandemonium_variant *p_other);
//uint32_t hash() const; pandemonium_int GDAPI pandemonium_variant_hash(const pandemonium_variant *p_self);
pandemonium_bool GDAPI pandemonium_variant_hash_compare(const pandemonium_variant *p_self, const pandemonium_variant *p_other); pandemonium_bool GDAPI pandemonium_variant_hash_compare(const pandemonium_variant *p_self, const pandemonium_variant *p_other);
pandemonium_bool GDAPI pandemonium_variant_booleanize(const pandemonium_variant *p_self); pandemonium_bool GDAPI pandemonium_variant_booleanize(const pandemonium_variant *p_self);