diff options
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) + "'."); |