static int JPLua_GetModelBounds(lua_State *L){ vector3 mins, maxs; const char *name = luaL_checkstring(L, 1); G_GetModelBounds(name, &mins, &maxs); JPLua_Vector_CreateRef(L, mins.x, mins.y, mins.z); JPLua_Vector_CreateRef(L, maxs.x, maxs.y, maxs.z); return 2; }
void JPLua_Event_ClientInfoUpdate( int clientNum, clientInfo_t *oldInfo, clientInfo_t *newInfo ) { #ifdef JPLUA jplua_plugin_t *plugin = NULL; while ( JPLua_IteratePlugins( &plugin ) ) { if ( plugin->eventListeners[JPLUA_EVENT_CLIENTINFO] ) { int top1, top2, i; lua_rawgeti( JPLua.state, LUA_REGISTRYINDEX, plugin->eventListeners[JPLUA_EVENT_CLIENTINFO] ); // Create a player instance for this client number and push on stack JPLua_Player_CreateRef( JPLua.state, clientNum ); for ( i = 0; i < 2; i++ ) { clientInfo_t *ci = i ? newInfo : oldInfo; lua_newtable( JPLua.state ); top1 = lua_gettop( JPLua.state ); lua_pushstring( JPLua.state, "colorOverride" ); lua_newtable( JPLua.state ); top2 = lua_gettop( JPLua.state ); lua_pushstring( JPLua.state, "r" ); lua_pushnumber( JPLua.state, ci->colorOverride.r ); lua_settable( JPLua.state, top2 ); lua_pushstring( JPLua.state, "g" ); lua_pushnumber( JPLua.state, ci->colorOverride.g ); lua_settable( JPLua.state, top2 ); lua_pushstring( JPLua.state, "b" ); lua_pushnumber( JPLua.state, ci->colorOverride.b ); lua_settable( JPLua.state, top2 ); lua_pushstring( JPLua.state, "a" ); lua_pushnumber( JPLua.state, ci->colorOverride.a ); lua_settable( JPLua.state, top2 ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "saberName" ); lua_pushstring( JPLua.state, ci->saberName ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "saber2Name" ); lua_pushstring( JPLua.state, ci->saber2Name ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "name" ); lua_pushstring( JPLua.state, ci->name ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "team" ); lua_pushnumber( JPLua.state, ci->team ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "duelTeam" ); lua_pushnumber( JPLua.state, ci->duelTeam ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "botSkill" ); lua_pushnumber( JPLua.state, ci->botSkill ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "color1" ); JPLua_Vector_CreateRef( JPLua.state, ci->color1.r, ci->color1.g, ci->color1.b ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "color2" ); JPLua_Vector_CreateRef( JPLua.state, ci->color2.r, ci->color2.g, ci->color2.b ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "rgb1" ); JPLua_Vector_CreateRef( JPLua.state, ci->rgb1.r, ci->rgb1.g, ci->rgb1.b ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "rgb2" ); JPLua_Vector_CreateRef( JPLua.state, ci->rgb2.r, ci->rgb2.g, ci->rgb2.b ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "icolor1" ); lua_pushnumber( JPLua.state, ci->icolor1 ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "icolor2" ); lua_pushnumber( JPLua.state, ci->icolor2 ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "score" ); lua_pushnumber( JPLua.state, ci->score ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "location" ); lua_pushnumber( JPLua.state, ci->location ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "health" ); lua_pushnumber( JPLua.state, ci->health ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "armor" ); lua_pushnumber( JPLua.state, ci->armor ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "curWeapon" ); lua_pushnumber( JPLua.state, ci->curWeapon ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "handicap" ); lua_pushnumber( JPLua.state, ci->handicap ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "wins" ); lua_pushnumber( JPLua.state, ci->wins ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "losses" ); lua_pushnumber( JPLua.state, ci->losses ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "teamTask" ); lua_pushnumber( JPLua.state, ci->teamTask ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "powerups" ); lua_pushnumber( JPLua.state, ci->powerups ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "modelName" ); lua_pushstring( JPLua.state, ci->saberName ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "skinName" ); lua_pushstring( JPLua.state, ci->saberName ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "forcePowers" ); lua_pushstring( JPLua.state, ci->forcePowers ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "teamName" ); lua_pushstring( JPLua.state, ci->teamName ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "deferred" ); lua_pushboolean( JPLua.state, ci->deferred ); lua_settable( JPLua.state, top1 ); lua_pushstring( JPLua.state, "gender" ); lua_pushnumber( JPLua.state, ci->gender ); lua_settable( JPLua.state, top1 ); } JPLua_Call( JPLua.state, 3, 0 ); } } #endif }