static int CBaseEntity_GetInputDispatchEffectPosition (lua_State *L) { Vector pVector; QAngle pAngle; luaL_checkentity(L, 1)->GetInputDispatchEffectPosition(luaL_checkstring(L, 2), pVector, pAngle); lua_pushvector(L, pVector); lua_pushangle(L, pAngle); return 2; }
static int IPhysicsObject_GetShadowPosition (lua_State *L) { Vector position; QAngle angles; lua_pushinteger(L, luaL_checkphysicsobject(L, 1)->GetShadowPosition(&position, &angles)); lua_pushvector(L, position); lua_pushangle(L, angles); return 3; }
static int QAngle___unm (lua_State *L) { QAngle a = *(QAngle *)luaL_checkangle(L, 1); a.x = -a.x; a.y = -a.y; a.z = -a.z; lua_pushangle(L, &a); return 1; }
static int IPhysicsObject_GetPosition (lua_State *L) { Vector worldPosition; QAngle angles; luaL_checkphysicsobject(L, 1)->GetPosition(&worldPosition, &angles); lua_pushvector(L, worldPosition); lua_pushangle(L, angles); return 2; }
static int QAngle___mul (lua_State *L) { QAngle in = *(QAngle *)luaL_checkangle(L, 1); float scale = luaL_checknumber(L, 2); QAngle out; out[0] = in[0]*scale; out[1] = in[1]*scale; out[2] = in[2]*scale; lua_pushangle(L, &out); return 1; }
static int QAngle___sub (lua_State *L) { QAngle a = *(QAngle *)luaL_checkangle(L, 1); QAngle b = *(QAngle *)luaL_checkangle(L, 2); QAngle c; c.x = a.x - b.x; c.y = a.y - b.y; c.z = a.z - b.z; lua_pushangle(L, &c); return 1; }
/* ** Open QAngle object */ int luaopen_QAngle (lua_State *L) { luaL_newmetatable(L, "QAngle"); luaL_register(L, NULL, QAnglemeta); lua_pushstring(L, "angle"); lua_setfield(L, -2, "__type"); /* metatable.__type = "angle" */ luaL_register(L, "_G", QAngle_funcs); lua_pop(L, 2); QAngle v = vec3_angle; lua_pushangle(L, &v); lua_setglobal(L, "vec3_angle"); /* set global vec3_angle */ return 1; }
static int QAngle___div (lua_State *L) { QAngle a = *(QAngle *)luaL_checkangle(L, 1); float b = luaL_checknumber(L, 2); QAngle c; CHECK_VALID(a); Assert( b != 0.0f ); vec_t oob = 1.0f / b; c.x = a.x * oob; c.y = a.y * oob; c.z = a.z * oob; lua_pushangle(L, &c); return 1; }
static int CBaseEntity_GetRenderAngles (lua_State *L) { QAngle v = luaL_checkentity(L, 1)->GetRenderAngles(); lua_pushangle(L, v); return 1; }
static int luasrc_SharedRandomAngle (lua_State *L) { lua_pushangle(L, SharedRandomAngle(luaL_checkstring(L, 1), luaL_checknumber(L, 2), luaL_checknumber(L, 3), luaL_optint(L, 4, 0))); return 1; }
static int player_get(lua_State *L) { player_t *plr = *((player_t **)luaL_checkudata(L, 1, META_PLAYER)); const char *field = luaL_checkstring(L, 2); if (!plr) { if (fastcmp(field,"valid")) { lua_pushboolean(L, false); return 1; } return LUA_ErrInvalid(L, "player_t"); } if (fastcmp(field,"valid")) lua_pushboolean(L, true); else if (fastcmp(field,"name")) lua_pushstring(L, player_names[plr-players]); else if (fastcmp(field,"mo")) { if (plr->spectator) lua_pushnil(L); else LUA_PushUserdata(L, plr->mo, META_MOBJ); } else if (fastcmp(field,"cmd")) LUA_PushUserdata(L, &plr->cmd, META_TICCMD); else if (fastcmp(field,"playerstate")) lua_pushinteger(L, plr->playerstate); else if (fastcmp(field,"viewz")) lua_pushfixed(L, plr->viewz); else if (fastcmp(field,"viewheight")) lua_pushfixed(L, plr->viewheight); else if (fastcmp(field,"deltaviewheight")) lua_pushfixed(L, plr->deltaviewheight); else if (fastcmp(field,"bob")) lua_pushfixed(L, plr->bob); else if (fastcmp(field,"aiming")) lua_pushangle(L, plr->aiming); else if (fastcmp(field,"health")) lua_pushinteger(L, plr->health); else if (fastcmp(field,"pity")) lua_pushinteger(L, plr->pity); else if (fastcmp(field,"currentweapon")) lua_pushinteger(L, plr->currentweapon); else if (fastcmp(field,"ringweapons")) lua_pushinteger(L, plr->ringweapons); else if (fastcmp(field,"powers")) LUA_PushUserdata(L, plr->powers, META_POWERS); else if (fastcmp(field,"pflags")) lua_pushinteger(L, plr->pflags); else if (fastcmp(field,"panim")) lua_pushinteger(L, plr->panim); else if (fastcmp(field,"flashcount")) lua_pushinteger(L, plr->flashcount); else if (fastcmp(field,"flashpal")) lua_pushinteger(L, plr->flashpal); else if (fastcmp(field,"skincolor")) lua_pushinteger(L, plr->skincolor); else if (fastcmp(field,"score")) lua_pushinteger(L, plr->score); else if (fastcmp(field,"dashspeed")) lua_pushfixed(L, plr->dashspeed); else if (fastcmp(field,"dashtime")) lua_pushinteger(L, plr->dashtime); else if (fastcmp(field,"normalspeed")) lua_pushfixed(L, plr->normalspeed); else if (fastcmp(field,"runspeed")) lua_pushfixed(L, plr->runspeed); else if (fastcmp(field,"thrustfactor")) lua_pushinteger(L, plr->thrustfactor); else if (fastcmp(field,"accelstart")) lua_pushinteger(L, plr->accelstart); else if (fastcmp(field,"acceleration")) lua_pushinteger(L, plr->acceleration); else if (fastcmp(field,"charability")) lua_pushinteger(L, plr->charability); else if (fastcmp(field,"charability2")) lua_pushinteger(L, plr->charability2); else if (fastcmp(field,"charflags")) lua_pushinteger(L, plr->charflags); else if (fastcmp(field,"thokitem")) lua_pushinteger(L, plr->thokitem); else if (fastcmp(field,"spinitem")) lua_pushinteger(L, plr->spinitem); else if (fastcmp(field,"revitem")) lua_pushinteger(L, plr->revitem); else if (fastcmp(field,"actionspd")) lua_pushfixed(L, plr->actionspd); else if (fastcmp(field,"mindash")) lua_pushfixed(L, plr->mindash); else if (fastcmp(field,"maxdash")) lua_pushfixed(L, plr->maxdash); else if (fastcmp(field,"jumpfactor")) lua_pushfixed(L, plr->jumpfactor); else if (fastcmp(field,"lives")) lua_pushinteger(L, plr->lives); else if (fastcmp(field,"continues")) lua_pushinteger(L, plr->continues); else if (fastcmp(field,"xtralife")) lua_pushinteger(L, plr->xtralife); else if (fastcmp(field,"gotcontinue")) lua_pushinteger(L, plr->gotcontinue); else if (fastcmp(field,"speed")) lua_pushfixed(L, plr->speed); else if (fastcmp(field,"jumping")) lua_pushboolean(L, plr->jumping); else if (fastcmp(field,"secondjump")) lua_pushinteger(L, plr->secondjump); else if (fastcmp(field,"fly1")) lua_pushinteger(L, plr->fly1); else if (fastcmp(field,"scoreadd")) lua_pushinteger(L, plr->scoreadd); else if (fastcmp(field,"glidetime")) lua_pushinteger(L, plr->glidetime); else if (fastcmp(field,"climbing")) lua_pushinteger(L, plr->climbing); else if (fastcmp(field,"deadtimer")) lua_pushinteger(L, plr->deadtimer); else if (fastcmp(field,"exiting")) lua_pushinteger(L, plr->exiting); else if (fastcmp(field,"homing")) lua_pushinteger(L, plr->homing); else if (fastcmp(field,"skidtime")) lua_pushinteger(L, plr->skidtime); else if (fastcmp(field,"cmomx")) lua_pushfixed(L, plr->cmomx); else if (fastcmp(field,"cmomy")) lua_pushfixed(L, plr->cmomy); else if (fastcmp(field,"rmomx")) lua_pushfixed(L, plr->rmomx); else if (fastcmp(field,"rmomy")) lua_pushfixed(L, plr->rmomy); else if (fastcmp(field,"numboxes")) lua_pushinteger(L, plr->numboxes); else if (fastcmp(field,"totalring")) lua_pushinteger(L, plr->totalring); else if (fastcmp(field,"realtime")) lua_pushinteger(L, plr->realtime); else if (fastcmp(field,"laps")) lua_pushinteger(L, plr->laps); else if (fastcmp(field,"ctfteam")) lua_pushinteger(L, plr->ctfteam); else if (fastcmp(field,"gotflag")) lua_pushinteger(L, plr->gotflag); else if (fastcmp(field,"weapondelay")) lua_pushinteger(L, plr->weapondelay); else if (fastcmp(field,"tossdelay")) lua_pushinteger(L, plr->tossdelay); else if (fastcmp(field,"starpostx")) lua_pushinteger(L, plr->starpostx); else if (fastcmp(field,"starposty")) lua_pushinteger(L, plr->starposty); else if (fastcmp(field,"starpostz")) lua_pushinteger(L, plr->starpostz); else if (fastcmp(field,"starpostnum")) lua_pushinteger(L, plr->starpostnum); else if (fastcmp(field,"starposttime")) lua_pushinteger(L, plr->starposttime); else if (fastcmp(field,"starpostangle")) lua_pushangle(L, plr->starpostangle); else if (fastcmp(field,"angle_pos")) lua_pushangle(L, plr->angle_pos); else if (fastcmp(field,"old_angle_pos")) lua_pushangle(L, plr->old_angle_pos); else if (fastcmp(field,"axis1")) LUA_PushUserdata(L, plr->axis1, META_MOBJ); else if (fastcmp(field,"axis2")) LUA_PushUserdata(L, plr->axis2, META_MOBJ); else if (fastcmp(field,"bumpertime")) lua_pushinteger(L, plr->bumpertime); else if (fastcmp(field,"flyangle")) lua_pushinteger(L, plr->flyangle); else if (fastcmp(field,"drilltimer")) lua_pushinteger(L, plr->drilltimer); else if (fastcmp(field,"linkcount")) lua_pushinteger(L, plr->linkcount); else if (fastcmp(field,"linktimer")) lua_pushinteger(L, plr->linktimer); else if (fastcmp(field,"anotherflyangle")) lua_pushinteger(L, plr->anotherflyangle); else if (fastcmp(field,"nightstime")) lua_pushinteger(L, plr->nightstime); else if (fastcmp(field,"drillmeter")) lua_pushinteger(L, plr->drillmeter); else if (fastcmp(field,"drilldelay")) lua_pushinteger(L, plr->drilldelay); else if (fastcmp(field,"bonustime")) lua_pushboolean(L, plr->bonustime); else if (fastcmp(field,"capsule")) LUA_PushUserdata(L, plr->capsule, META_MOBJ); else if (fastcmp(field,"mare")) lua_pushinteger(L, plr->mare); else if (fastcmp(field,"marebegunat")) lua_pushinteger(L, plr->marebegunat); else if (fastcmp(field,"startedtime")) lua_pushinteger(L, plr->startedtime); else if (fastcmp(field,"finishedtime")) lua_pushinteger(L, plr->finishedtime); else if (fastcmp(field,"finishedrings")) lua_pushinteger(L, plr->finishedrings); else if (fastcmp(field,"marescore")) lua_pushinteger(L, plr->marescore); else if (fastcmp(field,"lastmarescore")) lua_pushinteger(L, plr->lastmarescore); else if (fastcmp(field,"lastmare")) lua_pushinteger(L, plr->lastmare); else if (fastcmp(field,"maxlink")) lua_pushinteger(L, plr->maxlink); else if (fastcmp(field,"texttimer")) lua_pushinteger(L, plr->texttimer); else if (fastcmp(field,"textvar")) lua_pushinteger(L, plr->textvar); else if (fastcmp(field,"lastsidehit")) lua_pushinteger(L, plr->lastsidehit); else if (fastcmp(field,"lastlinehit")) lua_pushinteger(L, plr->lastlinehit); else if (fastcmp(field,"losstime")) lua_pushinteger(L, plr->losstime); else if (fastcmp(field,"timeshit")) lua_pushinteger(L, plr->timeshit); else if (fastcmp(field,"onconveyor")) lua_pushinteger(L, plr->onconveyor); else if (fastcmp(field,"awayviewmobj")) LUA_PushUserdata(L, plr->awayviewmobj, META_MOBJ); else if (fastcmp(field,"awayviewtics")) lua_pushinteger(L, plr->awayviewtics); else if (fastcmp(field,"awayviewaiming")) lua_pushangle(L, plr->awayviewaiming); else if (fastcmp(field,"spectator")) lua_pushboolean(L, plr->spectator); else if (fastcmp(field,"bot")) lua_pushinteger(L, plr->bot); else if (fastcmp(field,"jointime")) lua_pushinteger(L, plr->jointime); #ifdef HWRENDER else if (fastcmp(field,"fovadd")) lua_pushfixed(L, plr->fovadd); #endif else { lua_getfield(L, LUA_REGISTRYINDEX, LREG_EXTVARS); I_Assert(lua_istable(L, -1)); lua_pushlightuserdata(L, plr); lua_rawget(L, -2); if (!lua_istable(L, -1)) { // no extra values table CONS_Debug(DBG_LUA, M_GetText("'%s' has no extvars table or field named '%s'; returning nil.\n"), "player_t", field); return 0; } lua_getfield(L, -1, field); if (lua_isnil(L, -1)) // no value for this field CONS_Debug(DBG_LUA, M_GetText("'%s' has no field named '%s'; returning nil.\n"), "player_t", field); } return 1; }
static int luasrc_QAngle (lua_State *L) { QAngle v = QAngle((vec_t)luaL_optnumber(L, 1, 0.0f), (vec_t)luaL_optnumber(L, 2, 0.0f), (vec_t)luaL_optnumber(L, 3, 0.0f)); lua_pushangle(L, &v); return 1; }
static int QAngle___add (lua_State *L) { QAngle result; VectorAdd(*(QAngle *)luaL_checkangle(L, 1), *(QAngle *)luaL_checkangle(L, 2), result); lua_pushangle(L, &result); return 1; }