From 8985866060995b093bdbb464bc310b55d0019737 Mon Sep 17 00:00:00 2001 From: Sandu Liviu Catalin Date: Sat, 20 Mar 2021 20:21:05 +0200 Subject: [PATCH] Do not register two Quaternion types. --- module/Misc/Official.cpp | 13 ++--------- module/Misc/Official.hpp | 49 +++++++++++----------------------------- 2 files changed, 15 insertions(+), 47 deletions(-) diff --git a/module/Misc/Official.cpp b/module/Misc/Official.cpp index 973baff0..ee5d77a9 100644 --- a/module/Misc/Official.cpp +++ b/module/Misc/Official.cpp @@ -39,7 +39,6 @@ SQMOD_DECL_TYPENAME(EntityRGBTn, _SC("LgEntityRGB")) SQMOD_DECL_TYPENAME(RGBATn, _SC("RGBA")) SQMOD_DECL_TYPENAME(ARGBTn, _SC("ARGB")) SQMOD_DECL_TYPENAME(VectorTn, _SC("Vector")) -SQMOD_DECL_TYPENAME(QuaternionTn, _SC("Quaternion")) SQMOD_DECL_TYPENAME(EntityVectorTn, _SC("LgEntityVector")) SQMOD_DECL_TYPENAME(EntityQuaternionTn, _SC("LgEntityQuaternion")) SQMOD_DECL_TYPENAME(BoundsTn, _SC("Bounds")) @@ -156,7 +155,7 @@ static SQInteger QuaternionToString(HSQUIRRELVM vm) { try { - Var< LgQuaternion * > v(SqVM(), 1); + Var< Quaternion * > v(SqVM(), 1); // Validate the instance, just to be sure if (!v.value) { @@ -309,16 +308,8 @@ void Register_Official(HSQUIRRELVM vm) .Prop(_SC("z"), &LgEntityVector::GetZ, &LgEntityVector::SetZ) ); // -------------------------------------------------------------------------------------------- - RootTable(vm).Bind(QuaternionTn::Str, - DerivedClass< LgQuaternion, Quaternion >(vm, QuaternionTn::Str) - // Constructors - .Ctor< Quaternion::Value, Quaternion::Value, Quaternion::Value >() - // Global Member Methods - .SquirrelFunc(_SC("_tostring"), &QuaternionToString) - ); - // -------------------------------------------------------------------------------------------- RootTable(vm).Bind(EntityQuaternionTn::Str, - DerivedClass< LgEntityQuaternion, LgQuaternion >(vm, EntityQuaternionTn::Str) + DerivedClass< LgEntityQuaternion, Quaternion >(vm, EntityQuaternionTn::Str) // Constructors .Ctor< int, int, int, Quaternion::Value, Quaternion::Value, Quaternion::Value, Quaternion::Value >() // Properties diff --git a/module/Misc/Official.hpp b/module/Misc/Official.hpp index d5d2f98b..05d8cadd 100644 --- a/module/Misc/Official.hpp +++ b/module/Misc/Official.hpp @@ -119,30 +119,7 @@ struct LgEntityVector : public LgVector /* ------------------------------------------------------------------------------------------------ * Entity quaternion. */ -struct LgQuaternion : public Quaternion -{ - /* -------------------------------------------------------------------------------------------- - * Default constructor. - */ - LgQuaternion() = default; - /* -------------------------------------------------------------------------------------------- - * Copy constructor. - */ - explicit LgQuaternion(const Quaternion & q) - : Quaternion(q) - { - } - /* -------------------------------------------------------------------------------------------- - * Import from base class. - */ - using Quaternion::Quaternion; - using Quaternion::operator =; -}; - -/* ------------------------------------------------------------------------------------------------ - * Entity quaternion. -*/ -struct LgEntityQuaternion : public LgQuaternion +struct LgEntityQuaternion : public Quaternion { /* -------------------------------------------------------------------------------------------- * Entity identifier. @@ -163,7 +140,7 @@ struct LgEntityQuaternion : public LgQuaternion * Base constructor. */ LgEntityQuaternion(int id, int type, int flag, Value x, Value y, Value z, Value w) - : LgQuaternion(x, y, z, w) + : Quaternion(x, y, z, w) , mID(static_cast< int16_t >(id)) , mType(static_cast< uint8_t >(type)) , mFlag(static_cast< uint8_t >(flag)) @@ -174,7 +151,7 @@ struct LgEntityQuaternion : public LgQuaternion * Base constructor. */ LgEntityQuaternion(int id, int type, int flag, const Quaternion & q) - : LgQuaternion{q} + : Quaternion{q} , mID(static_cast< int16_t >(id)) , mType(static_cast< uint8_t >(type)) , mFlag(static_cast< uint8_t >(flag)) @@ -184,42 +161,42 @@ struct LgEntityQuaternion : public LgQuaternion /* -------------------------------------------------------------------------------------------- * Retrieve the X component of the quaternion. */ - SQMOD_NODISCARD Value GetX() const { return LgQuaternion::x; } + SQMOD_NODISCARD Value GetX() const { return Quaternion::x; } /* -------------------------------------------------------------------------------------------- * Retrieve the Y component of the quaternion. */ - SQMOD_NODISCARD Value GetY() const { return LgQuaternion::y; } + SQMOD_NODISCARD Value GetY() const { return Quaternion::y; } /* -------------------------------------------------------------------------------------------- * Retrieve the Z component of the quaternion. */ - SQMOD_NODISCARD Value GetZ() const { return LgQuaternion::z; } + SQMOD_NODISCARD Value GetZ() const { return Quaternion::z; } /* -------------------------------------------------------------------------------------------- * Retrieve the W component of the quaternion. */ - SQMOD_NODISCARD Value GetW() const { return LgQuaternion::w; } + SQMOD_NODISCARD Value GetW() const { return Quaternion::w; } /* -------------------------------------------------------------------------------------------- * Modify the X component of the quaternion. */ - void SetX(Value v) { LgQuaternion::x = v; Set(); } + void SetX(Value v) { Quaternion::x = v; Set(); } /* -------------------------------------------------------------------------------------------- * Modify the Y component of the quaternion. */ - void SetY(Value v) { LgQuaternion::y = v; Set(); } + void SetY(Value v) { Quaternion::y = v; Set(); } /* -------------------------------------------------------------------------------------------- * Modify the Z component of the quaternion. */ - void SetZ(Value v) { LgQuaternion::z = v; Set(); } + void SetZ(Value v) { Quaternion::z = v; Set(); } /* -------------------------------------------------------------------------------------------- * Modify the W component of the quaternion. */ - void SetW(Value v) { LgQuaternion::w = v; Set(); } + void SetW(Value v) { Quaternion::w = v; Set(); } /* -------------------------------------------------------------------------------------------- * Modify the X, Y, Z and W component of the quaternion. @@ -229,8 +206,8 @@ struct LgEntityQuaternion : public LgQuaternion /* -------------------------------------------------------------------------------------------- * Import from base class. */ - using LgQuaternion::LgQuaternion; - using LgQuaternion::operator =; + using Quaternion::Quaternion; + using Quaternion::operator =; }; /* ------------------------------------------------------------------------------------------------