From c0e36dc4934c4523ab858a19286d6ba41af7cc61 Mon Sep 17 00:00:00 2001 From: detomon Date: Wed, 8 Nov 2023 17:05:10 +0100 Subject: [PATCH] Initialize `Quaternion` variant with identity --- core/variant/variant_internal.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/core/variant/variant_internal.h b/core/variant/variant_internal.h index 58652d26e0c..eb69719bb43 100644 --- a/core/variant/variant_internal.h +++ b/core/variant/variant_internal.h @@ -54,6 +54,9 @@ public: case Variant::TRANSFORM2D: init_transform2d(v); break; + case Variant::QUATERNION: + init_quaternion(v); + break; case Variant::AABB: init_aabb(v); break; @@ -219,7 +222,7 @@ public: // Should be in the same order as Variant::Type for consistency. // Those primitive and vector types don't need an `init_` method: - // Nil, bool, float, Vector2/i, Rect2/i, Vector3/i, Plane, Quat, RID. + // Nil, bool, float, Vector2/i, Rect2/i, Vector3/i, Plane, RID. // Object is a special case, handled via `object_reset_data`. _FORCE_INLINE_ static void init_string(Variant *v) { memnew_placement(v->_data._mem, String); @@ -230,6 +233,10 @@ public: memnew_placement(v->_data._transform2d, Transform2D); v->type = Variant::TRANSFORM2D; } + _FORCE_INLINE_ static void init_quaternion(Variant *v) { + memnew_placement(v->_data._mem, Quaternion); + v->type = Variant::QUATERNION; + } _FORCE_INLINE_ static void init_aabb(Variant *v) { v->_data._aabb = (AABB *)Variant::Pools::_bucket_small.alloc(); memnew_placement(v->_data._aabb, AABB);