mirror of
https://github.com/VCMP-SqMod/SqMod.git
synced 2024-11-08 00:37:15 +01:00
Do not register two Quaternion types.
This commit is contained in:
parent
370c5cfe88
commit
8985866060
@ -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
|
||||
|
@ -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 =;
|
||||
};
|
||||
|
||||
/* ------------------------------------------------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user