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) {