From b04b7c6d841d42b6f06fe6765136267dd767f9ee Mon Sep 17 00:00:00 2001 From: Sandu Liviu Catalin Date: Tue, 15 Nov 2016 21:20:25 +0200 Subject: [PATCH] Implement the pure typename meta-methods in Color4 type using the standard method. --- source/Base/Color4.cpp | 17 ++++++----------- source/Base/Color4.hpp | 5 ----- 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/source/Base/Color4.cpp b/source/Base/Color4.cpp index fe2c170d..2081c363 100644 --- a/source/Base/Color4.cpp +++ b/source/Base/Color4.cpp @@ -11,6 +11,9 @@ // ------------------------------------------------------------------------------------------------ namespace SqMod { +// ------------------------------------------------------------------------------------------------ +SQMODE_DECL_TYPENAME(Typename, _SC("Color4")) + // ------------------------------------------------------------------------------------------------ const Color4 Color4::NIL = Color4(); const Color4 Color4::MIN = Color4(std::numeric_limits< Color4::Value >::min()); @@ -19,14 +22,6 @@ const Color4 Color4::MAX = Color4(std::numeric_limits< Color4::Value >::max()); // ------------------------------------------------------------------------------------------------ SQChar Color4::Delim = ','; -// ------------------------------------------------------------------------------------------------ -SQInteger Color4::Typename(HSQUIRRELVM vm) -{ - static const SQChar name[] = _SC("Color4"); - sq_pushstring(vm, name, sizeof(name)); - return 1; -} - // ------------------------------------------------------------------------------------------------ Color4::Color4() : r(0), g(0), b(0), a(0) @@ -762,7 +757,7 @@ void Register_Color4(HSQUIRRELVM vm) { typedef Color4::Value Val; - RootTable(vm).Bind(_SC("Color4"), Class< Color4 >(vm, _SC("Color4")) + RootTable(vm).Bind(Typename::Str, Class< Color4 >(vm, Typename::Str) // Constructors .Ctor() .Ctor< Val >() @@ -778,9 +773,9 @@ void Register_Color4(HSQUIRRELVM vm) .Var(_SC("B"), &Color4::b) .Var(_SC("A"), &Color4::a) // Core Meta-methods - .Func(_SC("_tostring"), &Color4::ToString) - .SquirrelFunc(_SC("_typename"), &Color4::Typename) .SquirrelFunc(_SC("cmp"), &SqDynArgFwd< SqDynArgCmpFn< Color4 >, SQFloat, SQInteger, bool, std::nullptr_t, Color4 >) + .SquirrelFunc(_SC("_typename"), &Typename::Fn) + .Func(_SC("_tostring"), &Color4::ToString) // Meta-methods .SquirrelFunc(_SC("_add"), &SqDynArgFwd< SqDynArgAddFn< Color4 >, SQFloat, SQInteger, bool, std::nullptr_t, Color4 >) .SquirrelFunc(_SC("_sub"), &SqDynArgFwd< SqDynArgSubFn< Color4 >, SQFloat, SQInteger, bool, std::nullptr_t, Color4 >) diff --git a/source/Base/Color4.hpp b/source/Base/Color4.hpp index 2a81e76a..61c77fca 100644 --- a/source/Base/Color4.hpp +++ b/source/Base/Color4.hpp @@ -406,11 +406,6 @@ struct Color4 */ CSStr ToString() const; - /* -------------------------------------------------------------------------------------------- - * Used by the script engine to retrieve the name from instances of this type. - */ - static SQInteger Typename(HSQUIRRELVM vm); - /* -------------------------------------------------------------------------------------------- * Set all components to the specified scalar value. */