You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-10 13:00:37 +00:00
Add support for Vector2i, Rect2i and Vector3i to Variant
WARNING: Requires C++17 'guaranteed copy elision' to fix ambiguous operator problems in Variant. This was added for this commit (and future C++17 uses) in #36457.
This commit is contained in:
committed by
Juan Linietsky
parent
a7891b9d12
commit
6da0eef9e6
@@ -76,6 +76,9 @@ enum {
|
||||
VARIANT_CALLABLE = 42,
|
||||
VARIANT_SIGNAL = 43,
|
||||
VARIANT_STRING_NAME = 44,
|
||||
VARIANT_VECTOR2I = 45,
|
||||
VARIANT_RECT2I = 46,
|
||||
VARIANT_VECTOR3I = 47,
|
||||
OBJECT_EMPTY = 0,
|
||||
OBJECT_EXTERNAL_RESOURCE = 1,
|
||||
OBJECT_INTERNAL_RESOURCE = 2,
|
||||
@@ -158,6 +161,14 @@ Error ResourceInteractiveLoaderBinary::parse_variant(Variant &r_v) {
|
||||
v.y = f->get_real();
|
||||
r_v = v;
|
||||
|
||||
} break;
|
||||
case VARIANT_VECTOR2I: {
|
||||
|
||||
Vector2i v;
|
||||
v.x = f->get_32();
|
||||
v.y = f->get_32();
|
||||
r_v = v;
|
||||
|
||||
} break;
|
||||
case VARIANT_RECT2: {
|
||||
|
||||
@@ -168,6 +179,16 @@ Error ResourceInteractiveLoaderBinary::parse_variant(Variant &r_v) {
|
||||
v.size.y = f->get_real();
|
||||
r_v = v;
|
||||
|
||||
} break;
|
||||
case VARIANT_RECT2I: {
|
||||
|
||||
Rect2i v;
|
||||
v.position.x = f->get_32();
|
||||
v.position.y = f->get_32();
|
||||
v.size.x = f->get_32();
|
||||
v.size.y = f->get_32();
|
||||
r_v = v;
|
||||
|
||||
} break;
|
||||
case VARIANT_VECTOR3: {
|
||||
|
||||
@@ -177,6 +198,14 @@ Error ResourceInteractiveLoaderBinary::parse_variant(Variant &r_v) {
|
||||
v.z = f->get_real();
|
||||
r_v = v;
|
||||
} break;
|
||||
case VARIANT_VECTOR3I: {
|
||||
|
||||
Vector3i v;
|
||||
v.x = f->get_32();
|
||||
v.y = f->get_32();
|
||||
v.z = f->get_32();
|
||||
r_v = v;
|
||||
} break;
|
||||
case VARIANT_PLANE: {
|
||||
|
||||
Plane v;
|
||||
@@ -1292,6 +1321,14 @@ void ResourceFormatSaverBinaryInstance::write_variant(FileAccess *f, const Varia
|
||||
f->store_real(val.x);
|
||||
f->store_real(val.y);
|
||||
|
||||
} break;
|
||||
case Variant::VECTOR2I: {
|
||||
|
||||
f->store_32(VARIANT_VECTOR2I);
|
||||
Vector2i val = p_property;
|
||||
f->store_32(val.x);
|
||||
f->store_32(val.y);
|
||||
|
||||
} break;
|
||||
case Variant::RECT2: {
|
||||
|
||||
@@ -1302,6 +1339,16 @@ void ResourceFormatSaverBinaryInstance::write_variant(FileAccess *f, const Varia
|
||||
f->store_real(val.size.x);
|
||||
f->store_real(val.size.y);
|
||||
|
||||
} break;
|
||||
case Variant::RECT2I: {
|
||||
|
||||
f->store_32(VARIANT_RECT2I);
|
||||
Rect2i val = p_property;
|
||||
f->store_32(val.position.x);
|
||||
f->store_32(val.position.y);
|
||||
f->store_32(val.size.x);
|
||||
f->store_32(val.size.y);
|
||||
|
||||
} break;
|
||||
case Variant::VECTOR3: {
|
||||
|
||||
@@ -1311,6 +1358,15 @@ void ResourceFormatSaverBinaryInstance::write_variant(FileAccess *f, const Varia
|
||||
f->store_real(val.y);
|
||||
f->store_real(val.z);
|
||||
|
||||
} break;
|
||||
case Variant::VECTOR3I: {
|
||||
|
||||
f->store_32(VARIANT_VECTOR3I);
|
||||
Vector3i val = p_property;
|
||||
f->store_32(val.x);
|
||||
f->store_32(val.y);
|
||||
f->store_32(val.z);
|
||||
|
||||
} break;
|
||||
case Variant::PLANE: {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user