From baf4cb0e168cb040ae3c2ad5963af7d444c15383 Mon Sep 17 00:00:00 2001 From: Lynix Date: Wed, 19 Oct 2016 22:48:46 +0200 Subject: [PATCH] Lua/LuaClass: Add Reset method and default constructor --- include/Nazara/Lua/LuaClass.hpp | 4 ++++ include/Nazara/Lua/LuaClass.inl | 19 ++++++++++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/include/Nazara/Lua/LuaClass.hpp b/include/Nazara/Lua/LuaClass.hpp index 567c3de7c..1d4aea327 100644 --- a/include/Nazara/Lua/LuaClass.hpp +++ b/include/Nazara/Lua/LuaClass.hpp @@ -34,6 +34,7 @@ namespace Nz using StaticIndexFunc = std::function; using StaticFunc = std::function; + LuaClass() = default; LuaClass(const String& name); void BindDefaultConstructor(); @@ -50,6 +51,9 @@ namespace Nz template void Inherit(LuaClass

& parent); template void Inherit(LuaClass

& parent, ConvertToParent

convertFunc); + void Reset(); + void Reset(const String& name); + void Register(LuaInstance& lua); void PushGlobalTable(LuaInstance& lua); diff --git a/include/Nazara/Lua/LuaClass.inl b/include/Nazara/Lua/LuaClass.inl index ea53cf0cd..3d0befeaa 100644 --- a/include/Nazara/Lua/LuaClass.inl +++ b/include/Nazara/Lua/LuaClass.inl @@ -10,10 +10,9 @@ namespace Nz { template - LuaClass::LuaClass(const String& name) : - m_info(new ClassInfo) + LuaClass::LuaClass(const String& name) { - m_info->name = name; + Reset(name); } template @@ -58,6 +57,20 @@ namespace Nz }); } + + template + void LuaClass::Reset() + { + m_info.reset(); + } + + template + void LuaClass::Reset(const String& name) + { + m_info = std::make_shared(); + m_info->name = name; + } + template void LuaClass::Register(LuaInstance& lua) {