diff options
author | Dmitrii Maganov <vonagam@gmail.com> | 2023-02-13 22:02:52 +0200 |
---|---|---|
committer | Dmitrii Maganov <vonagam@gmail.com> | 2023-02-13 22:06:38 +0200 |
commit | 9cb2da89d6a763b497f87ff92bdbe8a7cc0258a8 (patch) | |
tree | 9770f43f84e97567b68958dc15e67d29a3718f2f /core/variant | |
parent | 854d9c3d9c77270ff3260a8edcc12fccc85514c1 (diff) |
GDScript: Fix usage of ints with typed array of floats
Diffstat (limited to 'core/variant')
-rw-r--r-- | core/variant/container_type_validate.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/core/variant/container_type_validate.h b/core/variant/container_type_validate.h index ad679db9d0..ffe1dc90a3 100644 --- a/core/variant/container_type_validate.h +++ b/core/variant/container_type_validate.h @@ -73,7 +73,7 @@ struct ContainerTypeValidate { return type != p_type.type || class_name != p_type.class_name || script != p_type.script; } - // Coerces String and StringName into each other when needed. + // Coerces String and StringName into each other and int into float when needed. _FORCE_INLINE_ bool validate(Variant &inout_variant, const char *p_operation = "use") const { if (type == Variant::NIL) { return true; @@ -89,6 +89,9 @@ struct ContainerTypeValidate { } else if (type == Variant::STRING_NAME && inout_variant.get_type() == Variant::STRING) { inout_variant = StringName(inout_variant); return true; + } else if (type == Variant::FLOAT && inout_variant.get_type() == Variant::INT) { + inout_variant = (float)inout_variant; + return true; } ERR_FAIL_V_MSG(false, "Attempted to " + String(p_operation) + " a variable of type '" + Variant::get_type_name(inout_variant.get_type()) + "' into a " + where + " of type '" + Variant::get_type_name(type) + "'."); |