From fd192780b998f46dac8d192ba68666bb5d8db73d Mon Sep 17 00:00:00 2001 From: "Nicolas \"Pixel\" Noble" Date: Wed, 31 Jul 2013 06:44:52 +0200 Subject: Few more tweaks to the Lua push system. --- includes/BLua.h | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'includes/BLua.h') diff --git a/includes/BLua.h b/includes/BLua.h index a6dd2bc..8756f0f 100644 --- a/includes/BLua.h +++ b/includes/BLua.h @@ -263,20 +263,32 @@ struct lua_functypes_t { String("__") + classname##_methods[enumvar].name, \ sLua_##classname::method_##enumvar) +#define PUSH_CLASS(classname) \ + bool constructorPushed = false; \ +{ \ + L.newtable(); \ + L.push(#classname); \ + L.copy(-2); \ + L.setvar(); \ +} + #define PUSH_CONSTRUCTOR(classname, enumvar) \ bool constructorPushed = true; \ +{ \ L.newtable(); \ L.push(#classname); \ L.copy(-2); \ L.setvar(); \ - L.declareFunc("new", sLua_##classname::constructor, -1) + L.declareFunc("new", sLua_##classname::constructor, -1); \ +} -#define PUSH_STATIC(classname, enumvar) \ +#define PUSH_STATIC(classname, enumvar) { \ AAssert(constructorPushed, "Please call PUSH_CONSTRUCTOR first"); \ L.declareFunc( \ classname##_functions[enumvar].name, \ sLua_##classname::static_##enumvar, \ - -1) + -1); \ +} #define PUSH_FUNCTION(classname, enumvar) L.declareFunc( \ classname##_functions[enumvar].name, \ -- cgit v1.2.3