lua-users home
lua-l archive

Re: partially define a table in C++, and partially in script

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Shea Martin wrote:
void DefinePlayerEvent( lua_State* vm )
{ lua_newtable( vm );
 lua_pushstring( vm, "log" );
 lua_pushcclosure( vm, l_event_log, 0 );
 lua_settable( vm, -3 );
 lua_pushvalue( vm, -2 ); //get Event from global space
 lua_setfield( vm, -2, "__index" ); // mt.__index = Event
 lua_setmetatable( vm, -2 ); //attach metatable
 //lua_setglobal( vm, "Event" );
}
Ok, after reading chapter 28, I changed my DefinePlayerEvent() to this:
void DefinePlayerEvent( lua_State* vm )
{	
	luaL_newmetatable( vm, "Event.mt" );
	lua_pushstring( vm, "log" );
	lua_pushcclosure( vm, l_event_log, 0 );
	lua_settable( vm, -3 );
	lua_pushstring( vm, "__index" );
	lua_pushvalue( vm, -2 );
	lua_pushvalue( vm, -2 );
	lua_settable( vm, -3 );
}
and it works! Thanks, I'll keep reading.
~S

AltStyle によって変換されたページ (->オリジナル) /