// entity lib for lua #include "g_lua.h" #include "g_spawn.h" extern qboolean G_CallSpawn(gentity_t *ent); #ifdef G_LUA // entity.MMBRefit() // this is just a function called from lua // it should be called before any other model work // this will loop trough all misc_model_breakables and checks their model-string against those listed here // if it finds a match it will apply the associated splashDamage, splashRadius and s.powerups (material of chunks) to the entity // this is the only failsafe way i can think of to do these kind of refit static int Entity_MMBRefit(lua_State * L) { gentity_t *MMB; char serverInfo[MAX_TOKEN_CHARS]; char *arg2; trap_GetServerinfo( serverInfo, sizeof( serverInfo ) ); arg2 = Info_ValueForKey( serverInfo, "mapname" ); if( !Q_stricmp( arg2, "_brig" ) // I stole this directly from g_cmds.c, Cmd_CallVote_f || !Q_stricmp( arg2, "_holodeck_camelot" ) || !Q_stricmp( arg2, "_holodeck_firingrange" ) || !Q_stricmp( arg2, "_holodeck_garden" ) || !Q_stricmp( arg2, "_holodeck_highnoon" ) || !Q_stricmp( arg2, "_holodeck_minigame" ) || !Q_stricmp( arg2, "_holodeck_proton" ) || !Q_stricmp( arg2, "_holodeck_proton2" ) || !Q_stricmp( arg2, "_holodeck_temple" ) || !Q_stricmp( arg2, "_holodeck_warlord" ) || !Q_stricmp( arg2, "borg1" ) || !Q_stricmp( arg2, "borg2" ) || !Q_stricmp( arg2, "borg3" ) || !Q_stricmp( arg2, "borg4" ) || !Q_stricmp( arg2, "borg5" ) || !Q_stricmp( arg2, "borg6" ) || !Q_stricmp( arg2, "dn1" ) || !Q_stricmp( arg2, "dn2" ) || !Q_stricmp( arg2, "dn3" ) || !Q_stricmp( arg2, "dn4" ) || !Q_stricmp( arg2, "dn5" ) || !Q_stricmp( arg2, "dn6" ) || !Q_stricmp( arg2, "dn8" ) || !Q_stricmp( arg2, "forge1" ) || !Q_stricmp( arg2, "forge2" ) || !Q_stricmp( arg2, "forge3" ) || !Q_stricmp( arg2, "forge4" ) || !Q_stricmp( arg2, "forge5" ) || !Q_stricmp( arg2, "forgeboss" ) || !Q_stricmp( arg2, "holodeck" ) || !Q_stricmp( arg2, "scav1" ) || !Q_stricmp( arg2, "scav2" ) || !Q_stricmp( arg2, "scav3" ) || !Q_stricmp( arg2, "scav3b" ) || !Q_stricmp( arg2, "scav4" ) || !Q_stricmp( arg2, "scav5" ) || !Q_stricmp( arg2, "scavboss" ) || !Q_stricmp( arg2, "stasis1" ) || !Q_stricmp( arg2, "stasis2" ) || !Q_stricmp( arg2, "stasis3" ) || !Q_stricmp( arg2, "tour/deck01" ) || !Q_stricmp( arg2, "tour/deck02" ) || !Q_stricmp( arg2, "tour/deck03" ) || !Q_stricmp( arg2, "tour/deck04" ) || !Q_stricmp( arg2, "tour/deck05" ) || !Q_stricmp( arg2, "tour/deck08" ) || !Q_stricmp( arg2, "tour/deck09" ) || !Q_stricmp( arg2, "tour/deck10" ) || !Q_stricmp( arg2, "tour/deck11" ) || !Q_stricmp( arg2, "tour/deck15" ) || !Q_stricmp( arg2, "tutorial" ) || !Q_stricmp( arg2, "voy1" ) || !Q_stricmp( arg2, "voy13" ) || !Q_stricmp( arg2, "voy14" ) || !Q_stricmp( arg2, "voy15" ) || !Q_stricmp( arg2, "voy16" ) || !Q_stricmp( arg2, "voy17" ) || !Q_stricmp( arg2, "voy2" ) || !Q_stricmp( arg2, "voy20" ) || !Q_stricmp( arg2, "voy3" ) || !Q_stricmp( arg2, "voy4" ) || !Q_stricmp( arg2, "voy5" ) || !Q_stricmp( arg2, "voy6" ) || !Q_stricmp( arg2, "voy7" ) || !Q_stricmp( arg2, "voy8" ) || !Q_stricmp( arg2, "voy9" ) ) MMB = NULL; //init MMB here to do sth pointless else return 1; //we are not on one of the supported maps while((MMB = G_Find(MMB, FOFS(classname), "misc_model_breakable" )) != NULL ){//loop while you find these //borg maps if( !Q_stricmp( MMB->model, "models/mapobjects/borg/blite.md3" )){ //alcove light MMB->splashDamage = 75; MMB->splashRadius = 75; MMB->s.powerups = 3;//glass and metal, may reduce this to glass only MMB->spawnflags = 258; G_CallSpawn(MMB); }else if( !Q_stricmp( MMB->model, "models/mapobjects/borg/circuit_1.md3" )){ //those things that look like a handle MMB->splashDamage = 75; MMB->splashRadius = 75; MMB->s.powerups = 1;// MMB->spawnflags = 263; G_CallSpawn(MMB); }else if( !Q_stricmp( MMB->model, "models/mapobjects/borg/circuit_2.md3" )){ //the isosceles triangle looking box MMB->splashDamage = 75; MMB->splashRadius = 75; MMB->s.powerups = 1;// MMB->spawnflags = 263; G_CallSpawn(MMB); }else if( !Q_stricmp( MMB->model, "models/mapobjects/borg/circuit_3.md3" )){ //the other triangle looking box MMB->splashDamage = 75; MMB->splashRadius = 75; MMB->s.powerups = 1;//metal MMB->spawnflags = 263; G_CallSpawn(MMB); }else if( !Q_stricmp( MMB->model, "models/mapobjects/borg/vynclumn.md3" )){ //no description needed ^^ MMB->splashDamage = 9999; MMB->splashRadius = 9999; MMB->s.powerups = 1;//metal MMB->spawnflags = 263; G_CallSpawn(MMB); }else continue;//we are not looking for this kind of MMB } return 1; } // entity.GetTarget(entity ent) // returns a target entity of ent static int Entity_GetTarget(lua_State * L) { lent_t* lent = NULL; gentity_t* t = NULL; LUA_DEBUG("BEGIN - entity.GetTarget"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetTarget - entity NULL"); lua_pushnil(L); return 1; } t = G_PickTarget(lent->e->target); if(t == NULL) { LUA_DEBUG("ERROR - entity.GetTarget - target NULL"); lua_pushnil(L); return 1; } Lua_PushEntity(L, t); LUA_DEBUG("END - entity.GetTarget"); return 1; } // entity.FindBModel(integer bmodelnum) // Returns the entity with the brush model bmodelnumber. // This is the only failsafe way to find brush entities as the // entity number is different when you load a map local or join a server. static int Entity_FindBModel(lua_State *L) { gentity_t* ent = NULL; int bmodel; char tmp[MAX_QPATH]; LUA_DEBUG("BEGIN - entity.FindBModel"); bmodel = luaL_checkint(L, 1); sprintf(tmp, "*%d", bmodel); ent = G_Find(NULL, FOFS(model), tmp); if(ent == NULL) { LUA_DEBUG("ERROR - entity.FindBModel - entity NULL"); lua_pushnil(L); } else { Lua_PushEntity(L, ent); } LUA_DEBUG("END - entity.FindBModel"); return 1; } // entity.FindNumber(integer entnum) // Returns the entity with the entity number entnum. static int Entity_FindNumber(lua_State * L) { int entnum; gentity_t* ent = NULL; LUA_DEBUG("BEGIN - entity.FindNumber"); entnum = luaL_checknumber(L, 1); ent = &g_entities[entnum]; if(ent == NULL || ent->inuse == qfalse) { LUA_DEBUG("ERROR - entity.FindNumber - entity NULL"); lua_pushnil(L); } else { Lua_PushEntity(L, ent); } LUA_DEBUG("END - entity.FindNumber"); return 1; } // entity.Find(string targetname) // Returns the first entity found that has a targetname of targetname. static int Entity_Find(lua_State * L) { gentity_t* t = NULL; LUA_DEBUG("BEGIN - entity.Find"); t = G_Find(t, FOFS(targetname), (char *)luaL_checkstring(L, 1)); if(t == NULL) { LUA_DEBUG("ERROR - entity.Find - target NULL"); lua_pushnil(L); } else { Lua_PushEntity(L, t); } LUA_DEBUG("END - entity.Find"); return 1; } // entity.FindMMB(vector origin) // Returns the misc_model_breakable entity that has a matching MMB->s.origin. // Requires vector as input. // You can get the s.origin ingame as an admin/developer by pointing at the MMB ingame and using the /getorigin-command. static int Entity_FindMMB(lua_State * L) { gentity_t *t = NULL, *MMB = NULL; vec_t *vec = NULL, *origin = NULL; vec = Lua_GetVector(L, 2); while((MMB = G_Find(MMB, FOFS(classname), "misc_model_breakable")) != NULL){ origin = MMB->s.origin; if(vec[0] == origin[0] && vec[1] == origin[1] && vec[2] == origin[2]){ t = MMB; break; } else { continue; } } if(t == NULL) { lua_pushnil(L); } else { Lua_PushEntity(L, t); } return 1; } // entity.Use(entity ent) // Uses ent. // returns succes or fail static int Entity_Use(lua_State * L) { lent_t* lent = NULL; LUA_DEBUG("BEGIN - entity.Use"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL || lent->e->use == NULL) { LUA_DEBUG("ERROR - entity.Use - entity NULL"); lua_pushboolean(L, qfalse); return 1; } if(lent->e->luaUse != NULL) { LUA_DEBUG("INFO - entity.Use - calling entity->luaUse"); LuaHook_G_EntityUse(lent->e->luaUse, lent->e-g_entities, lent->e-g_entities, lent->e-g_entities); } lent->e->use(lent->e, NULL, lent->e); lua_pushboolean(L, qtrue); LUA_DEBUG("END - entity.Use"); return 1; } // entity.Teleport(entity client, entity target) // Teleports client to target's position // returns success or fail static int Entity_Teleport(lua_State * L) { lent_t* lent = NULL;; lent_t* target = NULL; LUA_DEBUG("BEGIN - entity.Teleport"); lent = Lua_GetEntity(L, 1); target = Lua_GetEntity(L, 2); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.Teleport - entity NULL"); lua_pushboolean(L, qfalse); return 1; } if(target == NULL || target->e == NULL) { LUA_DEBUG("ERROR - entity.Teleport - target NULL"); lua_pushboolean(L, qfalse); return 1; } if(lent->e->client != NULL) { LUA_DEBUG("INFO - entity.Teleport - calling TeleportPlayer"); TeleportPlayer(lent->e, target->e->s.origin, target->e->s.angles, TP_NORMAL); lua_pushboolean(L, qtrue); } else { lua_pushboolean(L, qfalse); } LUA_DEBUG("END - entity.Teleport"); return 1; } // entity.IsRocket(entity ent) // Checks if an entity is a rocket. static int Entity_IsRocket(lua_State * L) { lent_t* lent = NULL; qboolean rocket = qfalse; lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { lua_pushboolean(L, qfalse); return 1; } if(!Q_stricmp(lent->e->classname, "rocket")) { rocket = qtrue; } lua_pushboolean(L, rocket); return 1; } // entity.IsGrenade(entity ent) // Checks if an entity is a grenade. static int Entity_IsGrenade(lua_State * L) { lent_t* lent = NULL; qboolean grenade = qfalse; lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { lua_pushboolean(L, qfalse); return 1; } if(!Q_stricmp(lent->e->classname, "grenade")) { grenade = qtrue; } lua_pushboolean(L, grenade); return 1; } // entity.Spawn() // Tries to spawn a new entity and returns it. // If no new entity can be spawned nil is returned. static int Entity_Spawn(lua_State * L) { gentity_t* ent = NULL; ent = G_Spawn(); if(ent == NULL) { lua_pushnil(L); return 1; } Lua_PushEntity(L, ent); return 1; } // entity.GetNumber(entity ent) // returns the entities index number static int Entity_GetNumber(lua_State * L) { lent_t* lent = NULL; lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { lua_pushinteger(L, -1); } else { lua_pushinteger(L, lent->e - g_entities); } return 1; } // entity.IsClient(entity ent) // Checks if an entity is a client static int Entity_IsClient(lua_State * L) { lent_t* lent = NULL; lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { lua_pushboolean(L, 0); return 1; } lua_pushboolean(L, lent->e->client != NULL); return 1; } // entity.GetClientName(entity ent) // Returns the display name of a client static int Entity_GetClientName(lua_State * L) { lent_t* lent = NULL; lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL || lent->e->classname == NULL) { lua_pushnil(L); return 1; } lua_pushstring(L, lent->e->client->pers.netname); return 1; } static int Entity_Print(lua_State * L) { lent_t* lent = NULL; int i; char buf[MAX_STRING_CHARS]; int n = lua_gettop(L); LUA_DEBUG("BEGIN - entity.Print"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.Print - entity NULL"); return 1; } if(lent->e->client == NULL) { LUA_DEBUG("ERROR - entity.Print - entity is not a client"); return 1; } memset(buf, 0, sizeof(buf)); lua_getglobal(L, "tostring"); for(i = 2; i <= n; i++) { const char *s; lua_pushvalue(L, -1); lua_pushvalue(L, i); lua_call(L, 1, 1); s = lua_tostring(L, -1); if(s == NULL) { LUA_DEBUG("ERROR - entity.Print - string NULL"); return 1; } Q_strcat(buf, sizeof(buf), s); lua_pop(L, 1); } trap_SendServerCommand(lent->e - g_entities, va("print \"%s\n\"", buf)); LUA_DEBUG("END - entity.Print"); return 1; } static int Entity_CenterPrint(lua_State * L) { lent_t *lent = NULL; int i; char buf[MAX_STRING_CHARS]; int n = lua_gettop(L); LUA_DEBUG("BEGIN - entity.CenterPrint"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.CenterPrint - entity NULL"); return 1; } if(lent->e->client == NULL) { LUA_DEBUG("ERROR - entity.CenterPrint - entity is not a client"); return 1; } memset(buf, 0, sizeof(buf)); lua_getglobal(L, "tostring"); for(i = 2; i <= n; i++) { const char *s; lua_pushvalue(L, -1); lua_pushvalue(L, i); lua_call(L, 1, 1); s = lua_tostring(L, -1); if(s == NULL) { LUA_DEBUG("ERROR - entity.CenterPrint - string NULL"); return 1; } Q_strcat(buf, sizeof(buf), s); lua_pop(L, 1); } trap_SendServerCommand(lent->e - g_entities, va("cp \"" S_COLOR_WHITE "%s\n\"", buf)); LUA_DEBUG("END - entity.CenterPrint"); return 1; } extern qboolean G_ParseField(const char *key, const char *value, gentity_t *ent); // entity.SetKeyValue(entity ent, string key, string value) // Sets a key of an entity to a value static int Entity_SetKeyValue(lua_State * L) { lent_t* lent = NULL; char* key = NULL; char* value = NULL; LUA_DEBUG("BEGIN - entity.SetKeyValue"); lent = Lua_GetEntity(L, 1); key = (char *)luaL_checkstring(L, 2); value = (char *)luaL_checkstring(L, 3); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetKeyValue - entity NULL"); return 1; } if(key == NULL) { LUA_DEBUG("ERROR - entity.SetKeyValue - key NULL"); lua_pushboolean(L, qfalse); return 1; } if(value == NULL) { LUA_DEBUG("ERROR - entity.SetKeyValue - key NULL"); lua_pushboolean(L, qfalse); return 1; } lua_pushboolean(L, G_ParseField(key, value, lent->e)); LUA_DEBUG("END - entity.SetKeyValue"); return 1; } // entity.GetClassname(entity ent) // Returns the classname of an entity static int Entity_GetClassName(lua_State * L) { lent_t* lent = NULL; LUA_DEBUG("BEGIN - entity.GetClassname"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetKeyValue - entity NULL"); lua_pushnil(L); } else { lua_pushstring(L, lent->e->classname); } LUA_DEBUG("END - entity.SetKeyValue"); return 1; } // entity.SetClassname(entity ent, string name) // Sets the Classname of an entity to name // Returns success or fail static int Entity_SetClassName(lua_State * L) { lent_t* lent = NULL; LUA_DEBUG("BEGIN - entity.SetClassname"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetClassname - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->classname = (char *)luaL_checkstring(L, 2); lua_pushboolean(L, qtrue); LUA_DEBUG("END - entity.SetClassname"); return 1; } // entity.GetTargetname(entity ent) // Returns the targetname of an entity static int Entity_GetTargetName(lua_State * L) { lent_t* lent = NULL; LUA_DEBUG("BEGIN - entity.GetTargetname"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetTargetname - entity NULL"); lua_pushnil(L); } else { lua_pushstring(L, lent->e->targetname); } LUA_DEBUG("END - entity.GetTargetname"); return 1; } // entity.Rotate(entity ent, vector dir) // Rotates an entity in the specified directions // Returns success or fail static int Entity_Rotate(lua_State * L) { lent_t* lent = NULL; vec_t* vec = NULL; LUA_DEBUG("BEGIN - entity.Rotate"); lent = Lua_GetEntity(L, 1); vec = Lua_GetVector(L, 2); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.Rotate - entity NULL"); lua_pushboolean(L, qfalse); return 1; } if(vec == NULL) { LUA_DEBUG("ERROR - entity.Rotate - vector NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->s.apos.trType = TR_LINEAR; lent->e->s.apos.trDelta[0] = vec[0]; lent->e->s.apos.trDelta[1] = vec[1]; lent->e->s.apos.trDelta[2] = vec[2]; lua_pushboolean(L, qtrue); LUA_DEBUG("END - entity.Rotate"); return 1; } static int Entity_GC(lua_State * L) { return 0; } // entity.ToString(entity) // Prints an entity as string static int Entity_ToString(lua_State * L) { lent_t* lent = NULL; gentity_t* gent = NULL; char buf[MAX_STRING_CHARS]; LUA_DEBUG("BEGIN - entity.ToString"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.ToString - entity NULL"); lua_pushnil(L); return 1; } gent = lent->e; Com_sprintf(buf, sizeof(buf), "entity: class=%s name=%s id=%i pointer=%p\n", gent->classname, gent->targetname, gent-g_entities, gent); lua_pushstring(L, buf); LUA_DEBUG("END - entity.ToString"); return 1; } static void ent_delay(gentity_t *ent) { ent->think = 0; ent->nextthink = -1; G_CallSpawn(ent); } // entity.DelayedCallSpawn(entity ent, integer delay) // Calls the game logic spawn function for the class of ent after a delay of delay milliseconds. static int Entity_DelayedCallSpawn(lua_State *L) { lent_t* lent = NULL; int delay; LUA_DEBUG("BEGIN - entity.DelayedCallSpawn"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.DelayedCallSpawn - entity NULL"); lua_pushboolean(L, qfalse); return 1; } if(!Q_stricmp(lent->e->classname, "target_selfdestruct")) { LUA_DEBUG("ERROR - entity.DelayedCallSpawn - entity is target_selfdestruct"); lua_pushboolean(L, qfalse); return 1; //we will not selfdestruct this way } delay = luaL_checkint(L, 2); if(!delay) { delay = FRAMETIME; } lent->e->nextthink = delay; lent->e->think = ent_delay; lua_pushboolean(L, qtrue); LUA_DEBUG("END - entity.DelayedCallSpawn"); return 1; } // entity.CallSpawn(entity ent) // Calls the game logic spawn function for the class of ent. static int Entity_CallSpawn(lua_State *L) { lent_t* lent = NULL; qboolean r = qfalse; gentity_t* e = NULL; LUA_DEBUG("BEGIN - entity.CallSpawn"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.CallSpawn - entity NULL"); lua_pushboolean(L, qfalse); return 1; } e = lent->e; if(!Q_stricmp(lent->e->classname, "target_selfdestruct")) { LUA_DEBUG("ERROR - entity.CallSpawn - entity is target_selfdestruct"); lua_pushboolean(L, qfalse); return 1; //we will not selfdestruct this way } LUA_DEBUG("INFO - entity.CallSpawn - G_CallSpawn"); trap_UnlinkEntity(e); r = G_CallSpawn(e); lua_pushboolean(L, r); LUA_DEBUG("END - entity.CallSpawn"); return 1; } // entity.RemoveUnnamedSpawns() // Removes all spawn points from the map, that don't have a targetname. extern field_t fields[]; static int Entity_RemoveUnnamedSpawns(lua_State *L) { gentity_t *ent; int cnt = 0, i; LUA_DEBUG("BEGIN - entity.RemoveUnnamedSpawns"); for(i = 0; i < MAX_GENTITIES; i++) { if(!&g_entities[i]) continue; ent = &g_entities[i]; if(!ent->classname) continue; if(!Q_stricmp(ent->classname, "info_player_deathmatch")) if(!ent->targetname) { G_FreeEntity(ent); cnt++; } } lua_pushnumber(L, cnt); LUA_DEBUG("END - entity.RemoveUnnamedSpawns"); return 1; } // entity.RemoveSpawns() // Removes all spawn points from the map. static int Entity_RemoveSpawns(lua_State *L) { gentity_t *ent; int cnt = 0, i; LUA_DEBUG("BEGIN - entity.RemoveSpawns"); for(i = 0; i < MAX_GENTITIES; i++) { if(!&g_entities[i]) continue; ent = &g_entities[i]; if(!ent->classname) continue; if(!Q_stricmp(ent->classname, "info_player_deathmatch")) { G_FreeEntity(ent); cnt++; } } lua_pushnumber(L, cnt); LUA_DEBUG("END - entity.RemoveSpawns"); return 1; } // entity.RemoveType(string classname) // Removes all entities of type classname from the map. static int Entity_RemoveType(lua_State *L) { int i, cnt = 0; char *classname; LUA_DEBUG("BEGIN - entity.RemoveType"); classname = (char *)luaL_checkstring(L , 1); if(classname == NULL) { LUA_DEBUG("ERROR - entity.RemoveType - classname NULL"); lua_pushinteger(L, -1); return 1; } for(i = 0; i < MAX_GENTITIES; i++) { if(!strcmp(g_entities[i].classname, classname)) { G_FreeEntity(&g_entities[i]); cnt++; } } lua_pushinteger(L, cnt); LUA_DEBUG("END - entity.RemoveType"); return 1; } // entity.Remove(entity ent) // Removes an entity if it is not protected static int Entity_Remove(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.Remove"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.Remove - entity NULL"); lua_pushboolean(L, qfalse); return 1; } if(lent->e->neverFree) { LUA_DEBUG("INFO - entity.Remove - entity->neverFree"); LUA_DEBUG("END - entity.Remove"); lua_pushboolean(L, qfalse); return 1; } if(lent->e->client != NULL) { LUA_DEBUG("INFO - entity.Remove - entity is client"); LUA_DEBUG("END - entity.Remove"); lua_pushboolean(L, qfalse); return 1; } G_FreeEntity(lent->e); lua_pushboolean(L, qtrue); LUA_DEBUG("END - entity.Remove"); return 1; } // entity.SetupTrigger(entity ent, float x, float y, float z) or // entity.SetupTrigger(entity ent, vector size) // Does some setup for entities spawned by script that are to be used as trigger. // * ent the entity // * x length along the X-Axis // * y length along the Y-Axis // * z length along the Z-axis // * Can also be stowed in a vector size // Returns succcess or fail static int Entity_SetupTrigger(lua_State *L) { lent_t *lent; gentity_t *e; vec_t *vptr; vec3_t size; LUA_DEBUG("BEGIN - entity.SetupTrigger"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetupTrigger - entity NULL"); lua_pushboolean(L, qfalse); return 1; } e = lent->e; if(Lua_IsVector(L, 2)) { vptr = Lua_GetVector(L, 2); VectorCopy(vptr, size); } else { size[0] = luaL_checkint(L, 2); size[1] = luaL_checkint(L, 3); size[2] = luaL_checkint(L, 4); } VectorCopy(size, e->r.mins); VectorCopy(size, e->r.maxs); VectorScale(e->r.mins, -.5, e->r.mins); VectorScale(e->r.maxs, .5, e->r.maxs); VectorCopy(e->r.mins, e->r.absmin); VectorCopy(e->r.maxs, e->r.absmax); e->tmpEntity = qtrue; LUA_DEBUG("END - entity.SetupTrigger"); return 1; } // entity.GetOrigin(entity ent) // Returns the origin of an entity as vector static int Entity_GetOrigin(lua_State *L) { lent_t *lent; vec3_t origin; LUA_DEBUG("BEGIN - entity.GetOrigin"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetOrigin - entity NULL"); lua_pushnil(L); return 1; } if(lent->e->r.svFlags & SVF_USE_CURRENT_ORIGIN) { VectorCopy(lent->e->r.currentOrigin, origin); } else { VectorCopy(lent->e->s.origin, origin); } Lua_PushVector(L, origin); LUA_DEBUG("END - entity.GetOrigin"); return 1; } // ent.Lock(entity ent) // Looks the entity ent. Works with anything that can be locked (doors, turbolifts, usables, ...). // Returns success or fail static int Entity_Lock(lua_State *L) { lent_t *lent; gentity_t *ent; LUA_DEBUG("BEGIN - entity.Lock"); lent = Lua_GetEntity(L, 1); if(!lent || !lent->e) { LUA_DEBUG("ERROR - entity.Lock - entity NULL"); lua_pushboolean(L, qfalse); return 1; } ent = lent->e; if(!strncmp(ent->classname, "func_door", 9) || !strncmp(ent->classname, "func_door_rotating", 18) || !strncmp(ent->classname, "target_teleporter", 17) || !strncmp(ent->classname, "target_turbolift", 16) || !strncmp(ent->classname, "func_usable", 11) || !strncmp(ent->classname, "target_serverchange", 19) || !strncmp(ent->classname, "trigger_teleport", 16) || !strncmp(ent->classname, "ui_transporter", 14) || !strncmp(ent->classname, "ui_holodeck", 11) ) { if(ent->flags & FL_LOCKED) { LUA_DEBUG("INFO - entity.Lock - already locked"); LUA_DEBUG("END - entity.Lock"); lua_pushboolean(L, qtrue); return 1; } ent->flags ^= FL_LOCKED; } else { LUA_DEBUG("INFO - entity.Lock - entity not valid"); LUA_DEBUG("END - entity.Lock"); lua_pushboolean(L, qfalse); return 1; } LUA_DEBUG("END - entity.Lock"); lua_pushboolean(L, qtrue); return 1; } // ent.Unlock(entity ent) // Unlooks the entity ent. Works with anything that can be locked (doors, turbolifts, usables, ...). // Returns success or fail static int Entity_Unlock(lua_State *L) { lent_t *lent; gentity_t *ent; LUA_DEBUG("BEGIN - entity.Unlock"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.Unlock - entity NULL"); lua_pushboolean(L, qfalse); return 1; } ent = lent->e; if(!strncmp(ent->classname, "func_door", 9) || !strncmp(ent->classname, "func_door_rotating", 18) || !strncmp(ent->classname, "target_teleporter", 17) || !strncmp(ent->classname, "target_turbolift", 16) || !strncmp(ent->classname, "func_usable", 11) || !strncmp(ent->classname, "target_serverchange", 19) || !strncmp(ent->classname, "trigger_teleport", 16) || !strncmp(ent->classname, "ui_transporter", 14) || !strncmp(ent->classname, "ui_holodeck", 11) ) { if(ent->flags & FL_LOCKED) { ent->flags ^= FL_LOCKED; } } else { LUA_DEBUG("INFO - entity.Unlock - entity is not valid"); LUA_DEBUG("END - entity.Unlock"); lua_pushboolean(L, qfalse); return 1; } LUA_DEBUG("END - entity.Unlock"); lua_pushboolean(L, qtrue); return 1; } static int Entity_IsLocked(lua_State *L) { lent_t *lent; gentity_t *ent; LUA_DEBUG("BEGIN - entity.IsLocked"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.IsLocked - entity NULL"); lua_pushboolean(L, qfalse); return 1; } ent = lent->e; lua_pushboolean(L, (int)(ent->flags & FL_LOCKED)); LUA_DEBUG("END - entity.IsLocked"); return 1; } static int Entity_GetParm(lua_State *L) { lent_t *lent; gentity_t *ent; int parm; char *res = NULL; LUA_DEBUG("BEGIN - entity.GetParm"); lent = Lua_GetEntity(L, 1); if(lent == NULL|| lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetParm"); lua_pushnil(L); return 1; } ent = lent->e; parm = luaL_checkint(L, 2); if(parm < 1 || parm > 4) { LUA_DEBUG("ERROR - entity.GetParm - parm out of range"); lua_pushnil(L); return 1; } switch(parm) { case 1: res = ent->luaParm1; break; case 2: res = ent->luaParm2; break; case 3: res = ent->luaParm3; break; case 4: res = ent->luaParm4; break; default: res = NULL; break; } if(res == NULL) { LUA_DEBUG("ERROR - entity.GetParm - res NULL"); lua_pushnil(L); } else { lua_pushstring(L, res); } LUA_DEBUG("END - entity.GetParm"); return 1; } static int Entity_SetParm(lua_State *L) { lent_t *lent; gentity_t *ent; int parm; char *parms; char *s = NULL; LUA_DEBUG("BEGIN - entity.SetParm"); lent = Lua_GetEntity(L, 1); if(lent == NULL|| lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetParm - entity NULL"); lua_pushboolean(L, qfalse); return 1; } ent = lent->e; parm = luaL_checkint(L, 2); if(parm < 1 || parm > 4) { LUA_DEBUG("ERROR - entity.SetParm - parm out of range"); lua_pushboolean(L, qfalse); return 1; } parms = (char *)luaL_checkstring(L, 3); if(!parms) { LUA_DEBUG("ERROR - entity.SetParm - parms NULL"); lua_pushboolean(L, qfalse); return 1; } switch(parm) { case 1: s = ent->luaParm1; break; case 2: s = ent->luaParm2; break; case 3: s = ent->luaParm3; break; case 4: s = ent->luaParm4; break; } if(s) { // check if the new string fits into the existing one if(strlen(s) > (strlen(parms) + 1)) { // it fits so copy it strncpy(s, parms, sizeof(s)); } else { // it does not fit in so alloc a new string s = G_NewString(parms); } } else { s = G_NewString(parms); } LUA_DEBUG("END - entity.SetParm"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetActivator(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetActivator"); lent = Lua_GetEntity(L, 1); if(lent == NULL|| lent->e == NULL) { lua_pushnil(L); LUA_DEBUG("ERROR - entity.GetActivator - entity NULL"); return 1; } Lua_PushEntity(L, lent->e->activator); LUA_DEBUG("END - entity.GetActivator"); return 1; } static int Entity_SetActivator(lua_State *L) { lent_t *lent; lent_t *activator; LUA_DEBUG("BEGIN - entity.SetActivator"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetActivator - entity NULL"); lua_pushboolean(L, qfalse); return 1; } activator = Lua_GetEntity(L, 2); if(!activator || activator->e) { lent->e->activator = NULL; } else { lent->e->activator = activator->e; } LUA_DEBUG("END - entity.SetActivator"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetAngle(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetAngle"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetAngle - entity NUL"); lua_pushnumber(L, 0); return 1; } lua_pushnumber(L, lent->e->angle); LUA_DEBUG("END - entity.GetAngle"); return 1; } static int Entity_SetAngle(lua_State *L) { lent_t *lent; float angle; LUA_DEBUG("BEGIN - entity.SetAngle"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetAngle - entity NULL"); lua_pushboolean(L, qfalse); return 1; } angle = (float)luaL_checknumber(L, 2); lent->e->angle = angle; LUA_DEBUG("END - entity.SetAngle"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetApos1(lua_State *L) { lent_t *lent; vec3_t null = { 0, 0, 0 }; LUA_DEBUG("BEGIN - entity.GetApos1"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetApos1 - entity NULL"); Lua_PushVector(L, null); return 1; } Lua_PushVector(L, lent->e->apos1); LUA_DEBUG("END - entity.GetApos1"); return 1; } static int Entity_GetApos2(lua_State *L) { lent_t *lent; vec3_t null = { 0, 0, 0 }; LUA_DEBUG("BEGIN - entity.GetApos2"); lent = Lua_GetEntity(L, 1); if(!lent || !lent->e) { LUA_DEBUG("ERROR - entity.GetApos2 - entity NULL"); Lua_PushVector(L, null); return 1; } Lua_PushVector(L, lent->e->apos2); LUA_DEBUG("END - entity.GetApos2"); return 1; } static int Entity_SetApos1(lua_State *L) { lent_t *lent; vec_t *vec; LUA_DEBUG("BEGIN - entity.SetApos1"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetApos1 - entity NULL"); lua_pushboolean(L, qfalse); return 1; } vec = Lua_GetVector(L, 2); VectorCopy(vec, lent->e->apos1); LUA_DEBUG("END - entity.SetApos1"); lua_pushboolean(L, qtrue); return 1; } static int Entity_SetApos2(lua_State *L) { lent_t *lent; vec_t *vec; LUA_DEBUG("BEGIN - entity.SetApos2"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetApos2 - entity NULL"); lua_pushboolean(L, qfalse); return 1; } vec = Lua_GetVector(L, 2); VectorCopy(vec, lent->e->apos2); LUA_DEBUG("END - entity.SetApos2"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetBluename(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetBluename"); lent = Lua_GetEntity(L, 1); if(lent == NULL|| lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetBluename - entity NULL"); lua_pushnil(L); return 1; } else { lua_pushstring(L, lent->e->bluename); } LUA_DEBUG("END - entity.GetBluename"); return 1; } static int Entity_SetBluename(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetBluename"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetBluename - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->bluename = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetBluename"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetBluesound(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetBluesound"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetBluesound - entity NULL"); lua_pushnil(L); return 1; } else { lua_pushstring(L, lent->e->bluesound); } LUA_DEBUG("END - entity.GetBluesound"); return 1; } static int Entity_SetBluesound(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetBluesound"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetBluesound - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->bluesound = (char *)luaL_checkstring(L, 2);; LUA_DEBUG("END - entity.SetBluesound"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetBooleanstate(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetBooleanstate"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetBooleanstate - entity NULL"); lua_pushboolean(L, 0); return 1; } lua_pushboolean(L, (int)lent->e->booleanstate); LUA_DEBUG("END - entity.GetBooleanstate"); return 1; } static int Entity_SetBooleanstate(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetBooleanstate"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetBooleanstate - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->booleanstate = (qboolean)lua_toboolean(L, 2); lua_pushboolean(L, qtrue); LUA_DEBUG("END - entity.SetBooleanstate"); return 1; } static int Entity_GetClipmask(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetClipmask"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetClipmask - entity NULL"); lua_pushinteger(L, 0); return 1; } lua_pushinteger(L, lent->e->clipmask); LUA_DEBUG("END - entity.GetClipmask"); return 1; } static int Entity_SetClipmask(lua_State *L) { lent_t *lent; int mask; LUA_DEBUG("BEGIN - entity.SetClipmask"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetClipmask - entity NULL"); lua_pushboolean(L, qfalse); return 1; } mask = (int)luaL_checknumber(L, 2); lent->e->clipmask = mask; LUA_DEBUG("END - entity.SetClipmask"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetCount(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetClipmask"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetClipmask - entity NULL"); lua_pushinteger(L, 0); return 1; } lua_pushinteger(L, lent->e->count); LUA_DEBUG("END - entity.SetClipmask"); return 1; } static int Entity_SetCount(lua_State *L) { lent_t *lent; int count; LUA_DEBUG("BEGIN - entity.SetCount"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetCount - entity NULL"); lua_pushboolean(L, qfalse); return 1; } count = (int)luaL_checknumber(L, 2); lent->e->count = count; LUA_DEBUG("END - entity.SetCount"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetDamage(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetDamage"); lent = Lua_GetEntity(L, 1); if(!lent || !lent->e) { LUA_DEBUG("ERROR - entity.GetDamage - entity NULL"); lua_pushinteger(L, 0); return 1; } lua_pushinteger(L, lent->e->damage); LUA_DEBUG("END - entity.GetDamage"); return 1; } static int Entity_SetDamage(lua_State *L) { lent_t *lent; int damage; LUA_DEBUG("BEGIN - entity.SetDamage"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetDamage - entity NULL"); lua_pushboolean(L, qfalse); return 1; } damage = (int)luaL_checknumber(L, 2); lent->e->damage = damage; LUA_DEBUG("END - entity.SetDamage"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetDistance(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetDistance"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetDistance - entity NULL"); lua_pushnumber(L, 0); return 1; } lua_pushnumber(L, lent->e->distance); LUA_DEBUG("END - entity.GetDistance"); return 1; } static int Entity_SetDistance(lua_State *L) { lent_t *lent; float distance; LUA_DEBUG("BEGIN - entity.SetDistance"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetDistance - entity NULL"); lua_pushboolean(L, qfalse); return 1; } distance = (float)luaL_checknumber(L, 2); lent->e->distance = distance; LUA_DEBUG("END - entity.SetDistance"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetEnemy(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetEnemy"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetEnemy - entity NULL"); lua_pushnil(L); return 1; } Lua_PushEntity(L, lent->e->enemy); LUA_DEBUG("END - entity.GetEnemy"); return 1; } static int Entity_SetEnemy(lua_State *L) { lent_t *lent; lent_t *enemy; LUA_DEBUG("BEGIN - entity.SetEnemy"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetEnemy - entity NULL"); lua_pushboolean(L, qfalse); return 1; } if(lua_isnil(L, 2)) { lent->e->enemy = NULL; } else { enemy = Lua_GetEntity(L, 2); if(enemy == NULL || enemy->e == NULL) { lent->e->enemy = NULL; } else { lent->e->enemy = enemy->e; } } LUA_DEBUG("END - entity.SetEnemy"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetEventTime(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetEventTime"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetEventTime - entity NULL"); lua_pushinteger(L, 0); return 1; } lua_pushinteger(L, lent->e->eventTime); LUA_DEBUG("END - entity.GetEventTime"); return 1; } static int Entity_SetEventTime(lua_State *L) { lent_t *lent; int eTime; LUA_DEBUG("BEGIN - entity.SetEventTime"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetEventTime - entity NULL"); lua_pushboolean(L, qfalse); return 1; } eTime = (int)luaL_checknumber(L, 2); lent->e->eventTime = eTime; LUA_DEBUG("END - entity.SetEventTime"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetFalsename(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetFalsename"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { lua_pushnil(L); LUA_DEBUG("ERROR - entity.GetFalsename - entity NULL"); return 1; } else { lua_pushstring(L, lent->e->falsename); } LUA_DEBUG("END - entity.GetFalsename"); return 1; } static int Entity_SetFalsename(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetFalsename"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetFalsename - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->falsename = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetFalsename"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetTruename(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetTruename"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetTruename - entity NULL"); lua_pushnil(L); return 1; } else { lua_pushstring(L, lent->e->truename); } LUA_DEBUG("END - entity.GetTruename"); return 1; } static int Entity_SetTruename(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetTruename"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetTruename - entiy NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->truename = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetTruename"); lua_pushboolean(L, qtrue); return 1; } static int Entity_SetTargetName(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetTargetName"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetTargetName - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->targetname = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetTargetName"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetFalsetarget(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetFalsetarget"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetFalsetarget - entity NULL"); lua_pushnil(L); return 1; } else { lua_pushstring(L, lent->e->falsetarget); } LUA_DEBUG("END - entity.GetFalsetarget"); return 1; } static int Entity_SetFalsetarget(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetFalsetarget"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetFalsetarget - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->falsetarget = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetFalsetarget"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetTruetarget(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetTruetarget"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetTruetarget - entity NULL"); lua_pushnil(L); return 1; } else { lua_pushstring(L, lent->e->truetarget); } LUA_DEBUG("END - entity.GetTruetarget"); return 1; } static int Entity_SetTruetarget(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetTruetarget"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetTruetarget - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->truetarget = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetTruetarget"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetFlags(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetFlags"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetFlags - entity NULL"); lua_pushinteger(L, 0); return 1; } lua_pushinteger(L, lent->e->flags); LUA_DEBUG("END - entity.GetFlags"); return 1; } static int Entity_SetFlags(lua_State *L) { lent_t *lent; int flags; LUA_DEBUG("BEGIN - entity.SetFlags"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetFlags - entity NULL"); lua_pushboolean(L, qfalse); return 1; } flags = (int)luaL_checknumber(L, 2); lent->e->flags = flags; LUA_DEBUG("END - entity.SetFlags"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetFreeAfterEvent(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetFreeAfterEvent"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetFreeAfterEvent - entity NULL"); lua_pushboolean(L, 0); return 1; } lua_pushboolean(L, (int)lent->e->freeAfterEvent); LUA_DEBUG("END - entity.GetFreeAfterEvent"); return 1; } static int Entity_SetFreeAfterEvent(lua_State *L) { lent_t *lent; qboolean b; LUA_DEBUG("BEGIN - entity.SetFreeAfterEvent"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetFreeAfterEvent - entity NULL"); lua_pushboolean(L, qfalse); return 1; } b = (qboolean)lua_toboolean(L, 2); lent->e->freeAfterEvent = b; LUA_DEBUG("END - entity.SetFreeAfterEvent"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetFreetime(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetFreetime"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetFreetime - entity NULL"); lua_pushinteger(L, 0); return 1; } lua_pushinteger(L, lent->e->freetime); LUA_DEBUG("END - entity.GetFreetime"); return 1; } static int Entity_GetGreensound(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetGreensound"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetGreensound - entity NULL"); lua_pushnil(L); return 1; } else { lua_pushstring(L, lent->e->greensound); } LUA_DEBUG("END - entity.GetGreensound"); return 1; } static int Entity_SetGreensound(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetGreensound"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetGreensound - entity NLL"); lua_pushboolean(L, qfalse); return 1; } lent->e->greensound = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetGreensound"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetHealth(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetHealth"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetHealth - entity NULL"); lua_pushinteger(L, 0); return 1; } lua_pushinteger(L, lent->e->health); LUA_DEBUG("END - entity.GetHealth"); return 1; } static int Entity_SetHealth(lua_State *L) { lent_t *lent; int health; LUA_DEBUG("BEGIN - entity.SetHealth"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetHealth - entity NULL"); lua_pushboolean(L, qfalse); return 1; } health = (int)luaL_checknumber(L, 2); lent->e->health = health; LUA_DEBUG("END - entity.SetHealth"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetInUse(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetInUse"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetInUse - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lua_pushboolean(L, (int)lent->e->inuse); LUA_DEBUG("END - entity.GetInUse"); return 1; } static int Entity_GetLastEnemy(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetLastEnemy"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetLastEnemy - entity NULL"); lua_pushnil(L); return 1; } if(!lent->e->lastEnemy) { lua_pushnil(L); } else { Lua_PushEntity(L, lent->e->lastEnemy); } LUA_DEBUG("END - entity.GetLastEnemy"); return 1; } static int Entity_SetLastEnemy(lua_State *L) { lent_t *lent; lent_t *lastEnemy; LUA_DEBUG("BEGIN - entity.SetLastEnemy"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetLastEnemy - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lastEnemy = Lua_GetEntity(L, 2); if(lastEnemy == NULL || lastEnemy->e == NULL) { lent->e->lastEnemy = NULL; } else { lent->e->lastEnemy = lastEnemy->e; } LUA_DEBUG("END - entity.SetLastEnemy"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetLuaDie(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetLuaDie"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetLuaDie - entity NULL"); lua_pushnil(L); return 1; } else { lua_pushstring(L, lent->e->luaDie); } LUA_DEBUG("END - entity.GetLuaDie"); return 1; } static int Entity_SetLuaDie(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetLuaDie"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetLuaDie - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->luaDie = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetLuaDie"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetLuaEntity(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetLuaEntity"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetLuaEntity - entity NULL"); lua_pushboolean(L, 0); return 1; } lua_pushboolean(L, (int)lent->e->luaEntity); LUA_DEBUG("END - entity.GetLuaEntity"); return 1; } static int Entity_GetLuaFree(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetLuaFree"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetLuaFree - entity NULL"); lua_pushnil(L); return 1; } else { lua_pushstring(L, lent->e->luaFree); } LUA_DEBUG("END - entity.GetLuaFree"); return 1; } static int Entity_SetLuaFree(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetLuaFree"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetLuaFree - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->luaFree = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetLuaFree"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetLuaHurt(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetLuaHurt"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetLuaHurt - entity NULL"); lua_pushnil(L); return 1; } else { lua_pushstring(L, lent->e->luaHurt); } LUA_DEBUG("END - entity.GetLuaHurt"); return 1; } static int Entity_SetLuaHurt(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetLuaHurt"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetLuaHurt - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->luaHurt = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetLuaHurt"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetLuaReached(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetLuaReached"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetLuaReached - entity NULL"); lua_pushnil(L); return 1; } else { lua_pushstring(L, lent->e->luaReached); } LUA_DEBUG("END - entity.GetLuaReached"); return 1; } static int Entity_SetLuaReached(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetLuaReached"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetLuaReached - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->luaReached = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetLuaReached"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetLuaReachedAngular(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetLuaReachedAngular"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetLuaReachedAngular - entity NULL"); lua_pushnil(L); return 1; } else { lua_pushstring(L, lent->e->luaReachedAngular); } LUA_DEBUG("END - entity.GetLuaReachedAngular"); return 1; } static int Entity_SetLuaReachedAngular(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetLuaReachedAngular"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetLuaReachedAngular - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->luaReachedAngular = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetLuaReachedAngular"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetLuaSpawn(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetLuaSpawn"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetLuaSpawn - entity NULL"); lua_pushnil(L); return 1; } else { lua_pushstring(L, lent->e->luaSpawn); } LUA_DEBUG("END - entity.GetLuaSpawn"); return 1; } static int Entity_SetLuaSpawn(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetLuaSpawn"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetLuaSpawn - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->luaSpawn = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetLuaSpawn"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetLuaThink(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetLuaThink"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetLuaThink - entity NULL"); lua_pushnil(L); return 1; } else { lua_pushstring(L, lent->e->luaThink); } LUA_DEBUG("END - entity.GetLuaThink"); return 1; } static int Entity_SetLuaThink(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetLuaThink"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetLuaThink - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->luaThink = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetLuaThink"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetLuaTouch(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetLuaTouch"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetLuaTouch - entity NULL"); lua_pushnil(L); return 1; } else { lua_pushstring(L, lent->e->luaTouch); } LUA_DEBUG("END - entity.GetLuaTouch"); return 1; } static int Entity_SetLuaTouch(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetLuaTouch"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetLuaTouch - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->luaTouch = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetLuaTouch"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetLuaTrigger(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetLuaTrigger"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetLuaTrigger - entity NULL"); lua_pushnil(L); return 1; } else { lua_pushstring(L, lent->e->luaTrigger); } LUA_DEBUG("END - entity.GetLuaTrigger"); return 1; } static int Entity_SetLuaTrigger(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetLuaTrigger"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetLuaTrigger - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->luaTrigger = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetLuaTrigger"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetLuaUse(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetLuaUse"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetLuaUse - entity NULL"); lua_pushnil(L); return 1; } else { lua_pushstring(L, lent->e->luaUse); } LUA_DEBUG("END - entity.GetLuaUse"); return 1; } static int Entity_SetLuaUse(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetLuaUse"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetLuaUse - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->luaUse = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetLuaUse"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetMessage(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetMessage"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetMessage - entity NULL"); lua_pushnil(L); return 1; } else { lua_pushstring(L, lent->e->message); } LUA_DEBUG("END - entity.GetMessage"); return 1; } static int Entity_SetMessage(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetMessage"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetMessage - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->message = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetMessage"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetMethodOfDeath(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetMethodOfDeath"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetMethodOfDeath - entity NULL"); lua_pushinteger(L, 0); return 1; } lua_pushinteger(L, lent->e->methodOfDeath); LUA_DEBUG("END - entity.GetMethodOfDeath"); return 1; } static int Entity_SetMethodOfDeath(lua_State *L) { lent_t *lent; int mod; LUA_DEBUG("BEGIN - entity.SetMethodOfDeath"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetMethodOfDeath - entity NULL"); lua_pushboolean(L, qfalse); return 1; } mod = (int)luaL_checknumber(L, 2); lent->e->methodOfDeath = mod; LUA_DEBUG("END - entity.SetMethodOfDeath"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetModel(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetModel"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetModel - entity NULL"); lua_pushnil(L); return 1; } else { lua_pushstring(L, lent->e->model); } LUA_DEBUG("END - entity.GetModel"); return 1; } static int Entity_SetModel(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetMode"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetMode - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->model = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetMode"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetModel2(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetModel2"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetModel2 - entity NULL"); lua_pushnil(L); return 1; } else { lua_pushstring(L, lent->e->model2); } LUA_DEBUG("END - entity.GetModel2"); return 1; } static int Entity_SetModel2(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetModel2"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetModel2 - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->model2 = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetModel2"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetMovedir(lua_State *L) { lent_t *lent; vec3_t null = { 0, 0, 0 }; LUA_DEBUG("BEGIN - entity.GetMovedir"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetMovedir - entity NULL"); Lua_PushVector(L, null); return 1; } Lua_PushVector(L, lent->e->movedir); LUA_DEBUG("END - entity.GetMovedir"); return 1; } static int Entity_SetMovedir(lua_State *L) { lent_t *lent; vec_t *dir; LUA_DEBUG("BEGIN - entity.SetMovedir"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetMovedir - entity NULL"); lua_pushboolean(L, qfalse); return 1; } dir = Lua_GetVector(L, 2); VectorCopy(dir, lent->e->movedir); LUA_DEBUG("END - entity.SetMovedir"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetMoverstate(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetMoverstate"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetMoverstate - entity NULL"); lua_pushinteger(L, -1); return 1; } lua_pushinteger(L, (int)lent->e->moverState); LUA_DEBUG("END - entity.GetMoverstate"); return 1; } static int Entity_SetMoverstate(lua_State *L) { lent_t *lent; moverState_t m; LUA_DEBUG("BEGIN - entity.SetMoverstate"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetMoverstate - entiy NULL"); lua_pushboolean(L, qfalse); return 1; } m = (moverState_t)luaL_checknumber(L, 2); lent->e->moverState = m; LUA_DEBUG("END - entity.SetMoverstate"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetN00bCount(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetN00bCount"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetN00bCount - entity NULL"); lua_pushinteger(L, 0); return 1; } lua_pushinteger(L, lent->e->n00bCount); LUA_DEBUG("END - entity.GetN00bCount"); return 1; } static int Entity_SetN00bCount(lua_State *L) { lent_t *lent; int cnt; LUA_DEBUG("BEGIN - entity.SetN00bCount"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetN00bCount - entity NULL"); lua_pushboolean(L, qfalse); return 1; } cnt = (int)luaL_checknumber(L, 2); lent->e->n00bCount = cnt; LUA_DEBUG("END - entity.SetN00bCount"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetWait(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetWait"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetWait - entity NULL"); lua_pushinteger(L, 0); return 1; } lua_pushinteger(L, lent->e->wait); LUA_DEBUG("END - entity.GetWait"); return 1; } static int Entity_SetWait(lua_State *L) { lent_t *lent; int wait; LUA_DEBUG("BEGIN - entity.SetWait"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetWait - entity NULL"); lua_pushboolean(L, qfalse); return 1; } wait = (int)luaL_checknumber(L, 2); lent->e->wait = wait; LUA_DEBUG("END - entity.SetWait"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetNeverFree(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetNeverFree"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetNeverFree - entity NULL"); lua_pushboolean(L, 0); return 1; } lua_pushboolean(L, (int)lent->e->neverFree); LUA_DEBUG("END - entity.GetNeverFree"); return 1; } static int Entity_SetNeverFree(lua_State *L) { lent_t *lent; qboolean b; LUA_DEBUG("BEGIN - entity.SetNeverFree"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetNeverFree - entity NULL"); lua_pushboolean(L, qfalse); return 1; } b = (qboolean)lua_toboolean(L, 2); lent->e->neverFree = b; LUA_DEBUG("END - entity.SetNeverFree"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetNexthink(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetNexthink"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetNexthink - entity NULL"); lua_pushinteger(L, -1); return 1; } lua_pushinteger(L, lent->e->nextthink); LUA_DEBUG("END - entity.GetNexthink"); return 1; } static int Entity_SetNexthink(lua_State *L) { lent_t *lent; int next; LUA_DEBUG("BEGIN - entity.SetNexthink"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetNexthink - entity NULL"); lua_pushboolean(L, qfalse); return 1; } next = (int)luaL_checknumber(L, 2); lent->e->nextthink = next; LUA_DEBUG("END - entity.SetNexthink"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetNextTrain(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetNextTrain"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetNextTrain - entity NULL"); lua_pushnil(L); return 1; } if(lent->e->nextTrain == NULL) { lua_pushnil(L); } else { Lua_PushEntity(L, lent->e->nextTrain); } LUA_DEBUG("END - entity.GetNextTrain"); return 1; } static int Entity_SetNextTrain(lua_State *L) { lent_t *lent; lent_t *next; LUA_DEBUG("BEGIN - entity.SetNextTrain"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetNextTrain - entity NULL"); lua_pushboolean(L, qfalse); return 1; } next = Lua_GetEntity(L, 2); if(next == NULL || next->e == NULL) { lent->e->nextTrain = NULL; } else { lent->e->nextTrain = next->e; } LUA_DEBUG("END - entity.SetNextTrain"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetNoiseIndex(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetNoiseIndex"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetNoiseIndex - entity NULL"); lua_pushinteger(L, -1); return 1; } lua_pushinteger(L, lent->e->noise_index); LUA_DEBUG("END - entity.GetNoiseIndex"); return 1; } static int Entity_SetNoiseIndex(lua_State *L) { lent_t *lent; int idx; LUA_DEBUG("BEGIN - entity.SetNoiseIndex"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetNoiseIndex - entity NULL"); lua_pushboolean(L, qfalse); return 1; } idx = (int)luaL_checknumber(L, 2); lent->e->noise_index = idx; LUA_DEBUG("END - entity.SetNoiseIndex"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetOldHealth(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetOldHealth"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetOldHealth - entity NULL"); lua_pushinteger(L, 0); return 1; } lua_pushinteger(L, lent->e->old_health); LUA_DEBUG("END - entity.GetOldHealth"); return 1; } static int Entity_SetOldHealth(lua_State *L) { lent_t *lent; int old_health; LUA_DEBUG("BEGIN - entity.SetOldHealth"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetOldHealth - entity NULL"); lua_pushboolean(L, qfalse); return 1; } old_health = (int)luaL_checknumber(L, 2); lent->e->old_health = old_health; LUA_DEBUG("END - entity.SetOldHealth"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetPaintarget(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetPaintarget"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetPaintarget - entity NULL"); lua_pushnil(L); return 1; } else { lua_pushstring(L, lent->e->paintarget); } LUA_DEBUG("END - entity.GetPaintarget"); return 1; } static int Entity_SetPaintarget(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetPaintarget"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetPaintarget - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->paintarget = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetPaintarget"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetPainDebounceTime(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetPainDebounceTime"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetPainDebounceTime - entity NULL"); lua_pushinteger(L, 0); return 1; } lua_pushinteger(L, lent->e->pain_debounce_time); LUA_DEBUG("END - entity.GetPainDebounceTime"); return 1; } static int Entity_SetPainDebounceTime(lua_State *L) { lent_t *lent; int pdb; LUA_DEBUG("BEGIN - entity.SetPainDebounceTime"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetPainDebounceTime - entity NULL"); lua_pushboolean(L, qfalse); return 1; } pdb = (int)luaL_checknumber(L, 2); lent->e->pain_debounce_time = pdb; LUA_DEBUG("END - entity.SetPainDebounceTime"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetParent(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetParent"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetParent - entity NULL"); lua_pushnil(L); return 1; } if(lent->e->parent == NULL) { lua_pushnil(L); } else { Lua_PushEntity(L, lent->e->parent); } LUA_DEBUG("END - entity.GetParent"); return 1; } static int Entity_SetParent(lua_State *L) { lent_t *lent; lent_t *parent; LUA_DEBUG("BEGIN - entity.SetParent"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetParent - entity NULL"); lua_pushboolean(L, qfalse); return 1; } parent = Lua_GetEntity(L, 2); if(parent == NULL || parent->e == NULL) { lent->e->parent = NULL; } else { lent->e->parent = parent->e; } LUA_DEBUG("END - entity.SetParent"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetPhysicsBounce(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetPhysicsBounce"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetPhysicsBounce - entity NULL"); lua_pushnumber(L, 0); return 1; } lua_pushnumber(L, lent->e->physicsBounce); LUA_DEBUG("END - entity.GetPhysicsBounce"); return 1; } static int Entity_SetPhysicsBounce(lua_State *L) { lent_t *lent; float pb; LUA_DEBUG("BEGIN - entity.SetPhysicsBounce"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetPhysicsBounce - entity NULL"); lua_pushboolean(L, qfalse); return 1; } pb = (float)luaL_checknumber(L, 2); lent->e->physicsBounce = pb; LUA_DEBUG("END - entity.SetPhysicsBounce"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetPhysicsObject(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetPhysicsObject"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetPhysicsObject - entity NULL"); lua_pushboolean(L, 0); return 1; } lua_pushboolean(L, (int)lent->e->physicsObject); LUA_DEBUG("END - entity.GetPhysicsObject"); return 1; } static int Entity_SetPhysicsObject(lua_State *L) { lent_t *lent; qboolean b; LUA_DEBUG("BEGIN - entity.SetPhysicsObject"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetPhysicsObject - entity NULL"); lua_pushboolean(L, qfalse); return 1; } b = (qboolean)lua_toboolean(L, 2); lent->e->physicsObject = b; LUA_DEBUG("END - entity.SetPhysicsObject"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetPos1(lua_State *L) { lent_t *lent; vec3_t null = { 0, 0, 0 }; LUA_DEBUG("BEGIN - entity.GetPos1"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetPos1 - entity NULL"); Lua_PushVector(L, null); return 1; } Lua_PushVector(L, lent->e->pos1); LUA_DEBUG("END - entity.GetPos1"); return 1; } static int Entity_SetPos1(lua_State *L) { lent_t *lent; vec_t *vec; LUA_DEBUG("BEGIN - entity.SetPos1"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetPos1 - entity NULL"); lua_pushboolean(L, qfalse); return 1; } vec = Lua_GetVector(L, 2); VectorCopy(vec, lent->e->pos1); LUA_DEBUG("END - entity.SetPos1"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetPos2(lua_State *L) { lent_t *lent; vec3_t null = { 0, 0, 0 }; LUA_DEBUG("BEGIN - entity.GetPos2"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetPos2 - entity NULL"); Lua_PushVector(L, null); return 1; } Lua_PushVector(L, lent->e->pos2); LUA_DEBUG("END - entity.GetPos2"); return 1; } static int Entity_SetPos2(lua_State *L) { lent_t *lent; vec_t *vec; LUA_DEBUG("BEGIN - entity.SetPos2"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetPos2 - entity NULL"); lua_pushboolean(L, qfalse); return 1; } vec = Lua_GetVector(L, 2); VectorCopy(vec, lent->e->pos2); LUA_DEBUG("END - entity.SetPos2"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetPrevTrain(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetPrevTrain"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetPrevTrain - entity NULL"); lua_pushnil(L); return 1; } if(lent->e->prevTrain == NULL) { lua_pushnil(L); } else { Lua_PushEntity(L, lent->e->prevTrain); } LUA_DEBUG("END - entity.GetPrevTrain"); return 1; } static int Entity_SetPrevTrain(lua_State *L) { lent_t *lent; lent_t *prev; LUA_DEBUG("BEGIN - entity.SetPrevTrain"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetPrevTrain - entity NULL"); lua_pushboolean(L, qfalse); return 1; } prev = Lua_GetEntity(L, 2); if(prev == NULL || prev->e == NULL) { lent->e->prevTrain = NULL; } else { lent->e->prevTrain = prev->e; } LUA_DEBUG("END - entity.SetPrevTrain"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetRandom(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetRandom"); lent = Lua_GetEntity(L,1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetRandom - entity NULL"); lua_pushnumber(L, 0); return 1; } lua_pushnumber(L, lent->e->random); LUA_DEBUG("END - entity.GetRandom"); return 1; } static int Entity_SetRandom(lua_State *L) { lent_t *lent; float rand; LUA_DEBUG("BEGIN - entity.SetRandom"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetRandom - entity NULL"); lua_pushboolean(L, qfalse); return 1; } rand = (float)luaL_checknumber(L, 2); lent->e->random = rand; LUA_DEBUG("END - entity.SetRandom"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetRedsound(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetRedsound"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetRedsound - entity NULL"); lua_pushnil(L); return 1; } else { lua_pushstring(L, lent->e->redsound); } LUA_DEBUG("END - entity.GetRedsound"); return 1; } static int Entity_SetRedsound(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetRedsound"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetRedsound - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->redsound = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetRedsound"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetSound1To2(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetSound1To2"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetSound1To2 - entity NULL"); lua_pushinteger(L, -1); return 1; } lua_pushinteger(L, lent->e->sound1to2); LUA_DEBUG("END - entity.GetSound1To2"); return 1; } static int Entity_SetSound1To2(lua_State *L) { lent_t *lent; int s1to2; LUA_DEBUG("BEGIN - entity.SetSound1To2"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetSound1To2 - entity NULL"); lua_pushboolean(L, qfalse); return 1; } s1to2 = (int)luaL_checknumber(L, 2); lent->e->sound1to2 = s1to2; LUA_DEBUG("END - entity.SetSound1To2"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetSound2To1(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetSound2To1"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetSound2To1 - entity NULL"); lua_pushinteger(L, -1); return 1; } lua_pushinteger(L, lent->e->sound2to1); LUA_DEBUG("END - entity.GetSound2To1"); return 1; } static int Entity_SetSound2To1(lua_State *L) { lent_t *lent; int s2to1; LUA_DEBUG("BEGIN - entity.SetSound2To1"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetSound2To1 - entity NULL"); lua_pushboolean(L, qfalse); return 1; } s2to1 = (int)luaL_checknumber(L, 2); lent->e->sound2to1 = s2to1; LUA_DEBUG("END - entity.SetSound2To1"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetSoundLoop(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetSoundLoop"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetSoundLoop - entity NULL"); lua_pushinteger(L, -1); return 1; } lua_pushinteger(L, lent->e->soundLoop); LUA_DEBUG("END - entity.GetSoundLoop"); return 1; } static int Entity_SetSoundLoop(lua_State *L) { lent_t *lent; int sl; LUA_DEBUG("BEGIN - entity.SetSoundLoop"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetSoundLoop - entity NULL"); lua_pushboolean(L, qfalse); return 1; } sl = (int)luaL_checknumber(L, 2); lent->e->soundLoop = sl; LUA_DEBUG("END - entity.SetSoundLoop"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetSoundPos1(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetSoundPos1"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetSoundPos1 - entity NULL"); lua_pushinteger(L, -1); return 1; } lua_pushinteger(L, lent->e->soundPos1); LUA_DEBUG("END - entity.GetSoundPos1"); return 1; } static int Entity_SetSoundPos1(lua_State *L) { lent_t *lent; int sp1; LUA_DEBUG("BEGIN - entity.SetSoundPos1"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetSoundPos1 - entity NULL"); lua_pushboolean(L, qfalse); return 1; } sp1 = (int)luaL_checknumber(L, 2); lent->e->soundPos1 = sp1; LUA_DEBUG("END - entity.SetSoundPos1"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetSoundPos2(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetSoundPos2"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetSoundPos2 - entity NULL"); lua_pushinteger(L, -1); return 1; } lua_pushinteger(L, lent->e->soundPos2); LUA_DEBUG("END - entity.GetSoundPos2"); return 1; } static int Entity_SetSoundPos2(lua_State *L) { lent_t *lent; int sp2; LUA_DEBUG("BEGIN - entity.SetSoundPos2"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetSoundPos2 - entity NULL"); lua_pushboolean(L, qfalse); return 1; } sp2 = (int)luaL_checknumber(L, 2); lent->e->soundPos2 = sp2; LUA_DEBUG("END - entity.SetSoundPos2"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetSpawnflags(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetSpawnflags"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetSpawnflags - entity NULL"); lua_pushinteger(L, 0); return 1; } lua_pushinteger(L, lent->e->spawnflags); LUA_DEBUG("END - entity.GetSpawnflags"); return 1; } static int Entity_SetSpawnflags(lua_State *L) { lent_t *lent; int sp; LUA_DEBUG("BEGIN - entity.SetSpawnflags"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetSpawnflags - entity NULL"); lua_pushboolean(L, qfalse); return 1; } sp = (int)luaL_checknumber(L, 2); lent->e->spawnflags = sp; LUA_DEBUG("END - entity.SetSpawnflags"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetSpeed(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetSpeed"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetSpeed - entity NULL"); lua_pushnumber(L, 0); return 1; } lua_pushnumber(L, lent->e->speed); LUA_DEBUG("END - entity.GetSpeed"); return 1; } static int Entity_SetSpeed(lua_State *L) { lent_t *lent; float speed; LUA_DEBUG("BEGIN - entity.SetSpeed"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetSpeed - entity NULL"); lua_pushboolean(L, qfalse); return 1; } speed = (float)luaL_checknumber(L, 2); lent->e->speed = speed; LUA_DEBUG("END - entity.SetSpeed"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetSplashDamage(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetSplashDamage"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetSplashDamage - entity NULL"); lua_pushinteger(L, 0); return 1; } lua_pushinteger(L, lent->e->splashDamage); LUA_DEBUG("END - entity.GetSplashDamage"); return 1; } static int Entity_SetSplashDamage(lua_State *L) { lent_t *lent; int dmg; LUA_DEBUG("BEGIN - entity.SetSplashDamage"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetSplashDamage - entity NULL"); lua_pushboolean(L, qfalse); return 1; } dmg = (int)luaL_checknumber(L, 2); lent->e->splashDamage = dmg; LUA_DEBUG("END - entity.SetSplashDamage"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetSplashMethodOfDeath(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetSplashMethodOfDeath"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetSplashMethodOfDeath - entity NULL"); lua_pushinteger(L, 0); return 1; } lua_pushinteger(L, lent->e->splashMethodOfDeath); LUA_DEBUG("END - entity.GetSplashMethodOfDeath"); return 1; } static int Entity_SetSplashMethodOfDeath(lua_State *L) { lent_t *lent; int mod; LUA_DEBUG("BEGIN - entity.SetSplashMethodOfDeath"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetSplashMethodOfDeath - entity NULL"); lua_pushboolean(L, qfalse); return 1; } mod = (int)luaL_checknumber(L, 2); lent->e->splashMethodOfDeath = mod; LUA_DEBUG("END - entity.SetSplashMethodOfDeath"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetSplashRadius(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetSplashRadius"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetSplashRadius - entity NULL"); lua_pushinteger(L, 0); return 1; } lua_pushinteger(L, lent->e->splashRadius); LUA_DEBUG("END - entity.GetSplashRadius"); return 1; } static int Entity_SetSplashRadius(lua_State *L) { lent_t *lent; int radius; LUA_DEBUG("BEGIN - entity.SetSplashRadius"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetSplashRadius - entity NULL"); lua_pushboolean(L, qfalse); return 1; } radius = (int)luaL_checknumber(L, 2); lent->e->splashRadius = radius; LUA_DEBUG("END - entity.SetSplashRadius"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetSwapname(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetSwapname"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetSwapname - entity NULL"); lua_pushnil(L); return 1; } else { lua_pushstring(L, lent->e->swapname); } LUA_DEBUG("END - entity.GetSwapname"); return 1; } static int Entity_SetSwapname(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetSwapname"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetSwapname - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->swapname = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetSwapname"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetTakedamage(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetTakedamage"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetTakedamage - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lua_pushboolean(L, (int)lent->e->takedamage); LUA_DEBUG("END - entity.GetTakedamage"); return 1; } static int Entity_SetTakedamage(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetTakedamage"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetTakedamage - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->takedamage = (qboolean)lua_toboolean(L, 2); LUA_DEBUG("END - entity.SetTakedamage"); lua_pushboolean(L, qtrue); return 1; } static int Entity_SetTarget(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetTarget"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetTarget - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->target = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetTarget"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetTargetname2(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetTarget"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("BEGIN - entity.SetTarget"); lua_pushnil(L); return 1; } else { lua_pushstring(L, lent->e->targetname2); } LUA_DEBUG("BEGIN - entity.SetTarget"); return 1; } static int Entity_SetTargetname2(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetTargetname2"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetTargetname2 - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->targetname2 = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetTargetname2"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetTargetShaderName(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetTargetShaderName"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetTargetShaderName - entity NULL"); lua_pushnil(L); return 1; } else { lua_pushstring(L, lent->e->targetShaderName); } LUA_DEBUG("END - entity.GetTargetShaderName"); return 1; } static int Entity_SetTargetShaderName(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetTargetShaderName"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetTargetShaderName - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->targetShaderName = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetTargetShaderName"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetTargetShaderNewName(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetTargetShaderNewName"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetTargetShaderNewName - entity NULL"); lua_pushnil(L); return 1; } else { lua_pushstring(L, lent->e->targetShaderNewName); } LUA_DEBUG("END - entity.GetTargetShaderNewName"); return 1; } static int Entity_SetTargetShaderNewName(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetTargetShaderNewName"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetTargetShaderNewName - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->targetShaderNewName = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetTargetShaderNewName"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetTargetEnt(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetTargetEnt"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetTargetEnt - entity NULL"); lua_pushnil(L); return 1; } else { Lua_PushEntity(L, lent->e->target_ent); } LUA_DEBUG("END - entity.GetTargetEnt"); return 1; } static int Entity_SetTargetEnt(lua_State *L) { lent_t *lent; lent_t *targ; LUA_DEBUG("BEGIN - entity.SetTargetEnt"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetTargetEnt - entity NULL"); lua_pushboolean(L, qfalse); return 1; } targ = Lua_GetEntity(L, 2); if(targ == NULL || targ->e == NULL) { lent->e->target_ent = NULL; } else { lent->e->target_ent = targ->e; } LUA_DEBUG("END - entity.SetTargetEnt"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetTeam(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetTeam"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetTeam - entity NULL"); lua_pushnil(L); return 1; } else { lua_pushstring(L, lent->e->team); } LUA_DEBUG("END - entity.GetTeam"); return 1; } static int Entity_SetTeam(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.SetTeam"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetTeam - entity NULL"); lua_pushboolean(L, qfalse); return 1; } lent->e->team = (char *)luaL_checkstring(L, 2); LUA_DEBUG("END - entity.SetTeam"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetTeamchain(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetTeamchain"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetTeamchain - entity NULL"); lua_pushnil(L); return 1; } else { Lua_PushEntity(L, lent->e->teamchain); } LUA_DEBUG("END - entity.GetTeamchain"); return 1; } static int Entity_SetTeamchain(lua_State *L) { lent_t *lent; lent_t *team; LUA_DEBUG("BEGIN - entity.SetTeamchain"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetTeamchain - entity NULL"); lua_pushboolean(L, qfalse); return 1; } team = Lua_GetEntity(L, 2); if(team == NULL || team->e == NULL) { lent->e->teamchain = NULL; } else { lent->e->teamchain = team->e; } LUA_DEBUG("END - entity.SetTeamchain"); lua_pushboolean(L, qtrue); return 1; } static int Entity_GetTeammaster(lua_State *L) { lent_t *lent; LUA_DEBUG("BEGIN - entity.GetTeammaster"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.GetTeammaster - entity NULL"); lua_pushnil(L); return 1; } else { Lua_PushEntity(L, lent->e->teammaster); } LUA_DEBUG("END - entity.GetTeammaster"); return 1; } static int Entity_SetTeammaster(lua_State *L) { lent_t *lent; lent_t *team; LUA_DEBUG("BEGIN - entity.SetTeammaster"); lent = Lua_GetEntity(L, 1); if(lent == NULL || lent->e == NULL) { LUA_DEBUG("ERROR - entity.SetTeammaster - entity NULL"); lua_pushboolean(L, qfalse); return 1; } team = Lua_GetEntity(L, 2); if(team == NULL || team->e == NULL) { lent->e->teammaster = NULL; } else { lent->e->teammaster = team->e; } LUA_DEBUG("END - entity.SetTeammaster"); lua_pushboolean(L, qtrue); return 1; } static const luaL_Reg Entity_ctor[] = { {"Spawn", Entity_Spawn}, {"Find", Entity_Find}, {"FindMMB", Entity_FindMMB}, {"FindNumber", Entity_FindNumber}, {"FindBModel", Entity_FindBModel}, {"GetTarget", Entity_GetTarget}, {"MMBRefit", Entity_MMBRefit}, {"CallSpawn", Entity_CallSpawn}, {"DelayedCallSpawn", Entity_DelayedCallSpawn }, {"Remove", Entity_Remove}, {"RemoveUnnamedSpawns", Entity_RemoveUnnamedSpawns}, {"RemoveSpawns", Entity_RemoveSpawns}, {"RemoveType", Entity_RemoveType}, {"Use", Entity_Use}, {NULL, NULL} }; static const luaL_Reg Entity_meta[] = { {"__gc", Entity_GC}, {"__tostring", Entity_ToString}, {"GetNumber", Entity_GetNumber}, {"IsClient", Entity_IsClient}, {"GetClientname", Entity_GetClientName}, {"Print", Entity_Print}, {"CenterPrint", Entity_CenterPrint}, {"GetClassname", Entity_GetClassName}, // args: none; return: string {"SetClassname", Entity_SetClassName}, // args: string; return: nothing {"GetTargetname", Entity_GetTargetName}, // args: none; return: string {"SetTargetname", Entity_SetTargetName}, // args: string; return: nothing {"Rotate", Entity_Rotate}, {"IsRocket", Entity_IsRocket}, {"IsGrenade", Entity_IsGrenade}, {"Teleport", Entity_Teleport}, {"SetKeyValue", Entity_SetKeyValue}, {"GetOrigin", Entity_GetOrigin}, {"SetupTrigger", Entity_SetupTrigger}, {"Lock", Entity_Lock}, {"Unlock", Entity_Unlock}, {"IsLocked", Entity_IsLocked}, {"GetParm", Entity_GetParm}, {"SetParm", Entity_SetParm}, {"GetActivator", Entity_GetActivator}, // args: none; return: ent {"SetActivator", Entity_SetActivator}, // args: ent; return: nothing {"GetAngle", Entity_GetAngle}, // args: none; return: float {"SetAngle", Entity_SetAngle}, // args: float; return: nothing {"GetApos1", Entity_GetApos1}, // args: none; return: vec {"GetApos2", Entity_GetApos2}, // args: none; return: vec {"SetApos1", Entity_SetApos1}, // args: vec; return: nothing {"SetApos2", Entity_SetApos2}, // args: vec; return: nothing {"GetBluename", Entity_GetBluename}, // args: none; return: string {"SetBluename", Entity_SetBluename}, // args: string; return: nothing {"GetBluesound", Entity_GetBluesound}, // args: none; return: string {"SetBluesound", Entity_SetBluesound}, // args: string; return: nothing {"GetBooleanstate", Entity_GetBooleanstate}, // args: none; return: bool {"SetBooleanstate", Entity_SetBooleanstate}, // args: bool; return: nothing {"GetClipmask", Entity_GetClipmask}, // args: none; return: int {"SetClipmask", Entity_SetClipmask}, // args: int; return: nothing {"GetCount", Entity_GetCount}, // args: none; return: int {"SetCount", Entity_SetCount}, // args: int; return: nothing {"GetDamage", Entity_GetDamage}, // args: none; return: int {"SetDamage", Entity_SetDamage}, // args: int; return: nothing {"GetDistance", Entity_GetDistance}, // args: none; return: float {"SetDistance", Entity_SetDistance}, // args: float; return: nothing {"GetEnemy", Entity_GetEnemy}, // args: none; return: ent {"SetEnemy", Entity_SetEnemy}, // args: ent; return: nothing {"GetEventTime", Entity_GetEventTime}, // args: none; return: int {"SetEventTime", Entity_SetEventTime}, // args: int; return: nothing {"GetFalsename", Entity_GetFalsename}, // args: none; return: string {"SetFalsename", Entity_SetFalsename}, // args: string; return: nothing {"GetTruename", Entity_GetTruename}, // args: none; return: string {"SetTruename", Entity_SetTruename}, // args: string; return: nothing {"GetFalsetarget", Entity_GetFalsetarget}, // args: none; return: string {"SetFalsetarget", Entity_SetFalsetarget}, // args: string; return: nothing {"GetTruetarget", Entity_GetTruetarget}, // args: none; return: string {"SetTruetarget", Entity_SetTruetarget}, // args: string; return: nothing {"GetFlags", Entity_GetFlags}, // args: none; return: int {"SetFlags", Entity_SetFlags}, // args: int; return: nothing {"GetFreeAfterEvent", Entity_GetFreeAfterEvent}, // args: none; return: bool {"SetFreeAfterEvent", Entity_SetFreeAfterEvent}, // args: bool; return: nothing {"GetFreetime", Entity_GetFreetime}, // args: none; return: int {"GetGreensound", Entity_GetGreensound}, // args: none; return: string {"SetGreensound", Entity_SetGreensound}, // args: string; return: nothing {"GetHealth", Entity_GetHealth}, // args: none; return: int {"SetHealth", Entity_SetHealth}, // args: int; return: nothing {"GetInUse", Entity_GetInUse}, // args: none; return: bool {"GetLastEnemy", Entity_GetLastEnemy}, // args: none; return: ent {"SetLastEnemy", Entity_SetLastEnemy}, // args: ent; return: nothing {"GetLuaDie", Entity_GetLuaDie}, // args: none; return: string {"SetLuaDie", Entity_SetLuaDie}, // args: string; return: nothing {"GetLuaEntity", Entity_GetLuaEntity}, // args: none; return: bool {"GetLuaFree", Entity_GetLuaFree}, // args: none; return: string {"SetLuaFree", Entity_SetLuaFree}, // args: string; return: nothing {"GetLuaHurt", Entity_GetLuaHurt}, // args: none; return: string {"SetLuaHurt", Entity_SetLuaHurt}, // args: string; return: nothing {"GetLuaReached", Entity_GetLuaReached}, // args: none; return: string {"SetLuaReached", Entity_SetLuaReached}, // args: string; return: nothing {"GetLuaReachedAngular", Entity_GetLuaReachedAngular}, // args: none; return: string {"SetLuaReachedAngular", Entity_SetLuaReachedAngular}, // args: string; return: nothing {"GetLuaSpawn", Entity_GetLuaSpawn}, // args: none; return: string {"SetLuaSpawn", Entity_SetLuaSpawn}, // args: string; return: nothing {"GetLuaThink", Entity_GetLuaThink}, // args: none; return: string {"SetLuaThink", Entity_SetLuaThink}, // args: string; return: nothing {"GetLuaTouch", Entity_GetLuaTouch}, // args: none; return: string {"SetLuaTouch", Entity_SetLuaTouch}, // args: string; return: nothing {"GetLuaTrigger", Entity_GetLuaTrigger}, // args: none; return: string {"SetLuaTrigger", Entity_SetLuaTrigger}, // args: string; return: nothing {"GetLuaUse", Entity_GetLuaUse}, // args: none; return: string {"SetLuaUse", Entity_SetLuaUse}, // args: string; return: nothing {"GetMessage", Entity_GetMessage}, // args: none; return: string {"SetMessage", Entity_SetMessage}, // args: string; return: nothing {"GetMethodOfDeath", Entity_GetMethodOfDeath}, // args: none; return: int {"SetMethodOfDeath", Entity_SetMethodOfDeath}, // args: int; return: nothing {"GetModel", Entity_GetModel}, // args: none; return: string {"SetModel", Entity_SetModel}, // args: string; return: nothing {"GetModel2", Entity_GetModel2}, // args: none; return: string {"SetModel2", Entity_SetModel2}, // args: string; return: nothing {"GetMovedir", Entity_GetMovedir}, // args: none; return: vec {"SetMovedir", Entity_SetMovedir}, // args: vec; return: nothing {"GetMoverstate", Entity_GetMoverstate}, // args: none; return: int {"SetMoverstate", Entity_SetMoverstate}, // args: int; return: nothing {"GetN00bCount", Entity_GetN00bCount}, // args: none; return: int {"SetN00bCount", Entity_SetN00bCount}, // args: int; return: nothing {"GetWait", Entity_GetWait}, // args: none; return: int {"SetWait", Entity_SetWait}, // args: int; return: nothing {"GetNeverFree", Entity_GetNeverFree}, // args: none; return: bool {"SetNeverFree", Entity_SetNeverFree}, // args: bool; return: nothing {"GetNextthink", Entity_GetNexthink}, // args: none; return: int {"SetNextthink", Entity_SetNexthink}, // args: int; return: nothing {"GetNextTrain", Entity_GetNextTrain}, // args: none; return: ent {"SetNextTrain", Entity_SetNextTrain}, // args: ent; return: nothing {"GetNoiseIndex", Entity_GetNoiseIndex}, // args: none; return: int {"SetNoiseIndex", Entity_SetNoiseIndex}, // args: int; return: nothing {"GetOldHealth", Entity_GetOldHealth}, // args: none; return: int {"SetOldHealth", Entity_SetOldHealth}, // args: int; return: nothing {"GetPaintarget", Entity_GetPaintarget}, // args: none; return: string {"SetPaintarget", Entity_SetPaintarget}, // args: string; return: nothing {"GetPainDebounceTime", Entity_GetPainDebounceTime}, // args: none; return: int {"SetPainDebounceTime", Entity_SetPainDebounceTime}, // args: int; return: nothing {"GetParent", Entity_GetParent}, // args: none; return: ent {"SetParent", Entity_SetParent}, // args: ent; return: nothing {"GetPhysicsBounce", Entity_GetPhysicsBounce}, // args: none; return: float {"SetPhysicsBounce", Entity_SetPhysicsBounce}, // args: float; return: nothing {"GetPhysicsObject", Entity_GetPhysicsObject}, // args: none; return: bool {"SetPhysicsObject", Entity_SetPhysicsObject}, // args: bool; return: nothing {"GetPos1", Entity_GetPos1}, // args: none; return: vec {"SetPos1", Entity_SetPos1}, // args: vec; return: nothing {"GetPos2", Entity_GetPos2}, // args: none; return: vec {"SetPos2", Entity_SetPos2}, // args: vec; return: nothing {"GetPrevTrain", Entity_GetPrevTrain}, // args: none; return: ent {"SetPrevTrain", Entity_SetPrevTrain}, // args: ent; return: nothing {"GetRandom", Entity_GetRandom}, // args: none; return: float {"SetRandom", Entity_SetRandom}, // args: float; return: nothing {"GetRedsound", Entity_GetRedsound}, // args: none; return: string {"SetRedsound", Entity_SetRedsound}, // args: string; return: nothing {"GetSound1To2", Entity_GetSound1To2}, // args: none; return: int {"SetSound1To2", Entity_SetSound1To2}, // args: int; return: nothing {"GetSound2To1", Entity_GetSound2To1}, // args: none; return: int {"SetSound2To1", Entity_SetSound2To1}, // args: int return: nothing {"GetSoundLoop", Entity_GetSoundLoop}, // args: none; return: int {"SetSoundLoop", Entity_SetSoundLoop}, // args: int; return: nothing {"GetSoundPos1", Entity_GetSoundPos1}, // args: none; return: int {"SetSoundPos1", Entity_SetSoundPos1}, // args: int; return: nothing {"GetSoundPos2", Entity_GetSoundPos2}, // args: none; return: int {"SetSoundPos2", Entity_SetSoundPos2}, // args: int; return: nothing {"GetSpawnflags", Entity_GetSpawnflags}, // args: none; return: int {"SetSpawnflags", Entity_SetSpawnflags}, // args: int; return: nothing {"GetSpeed", Entity_GetSpeed}, // args: none; return: float {"SetSpeed", Entity_SetSpeed}, // args: float; return: nothing {"GetSplashDamage", Entity_GetSplashDamage}, // args: none; return: int {"SetSplashDamage", Entity_SetSplashDamage}, // args: int; return: nothing {"GetSplashMethodOfDeath", Entity_GetSplashMethodOfDeath}, // args: none; return: int {"SetSplashMethodOfDeath", Entity_SetSplashMethodOfDeath}, // args: int; return: nothing {"GetSplashRadius", Entity_GetSplashRadius}, // args: none; return: int {"SetSplashRadius", Entity_SetSplashRadius}, // args: int; return: nothing {"GetSwapname", Entity_GetSwapname}, // args: none; return: string {"SetSwapname", Entity_SetSwapname}, // args: string; return: nothing {"GetTakedamage", Entity_GetTakedamage}, // args: none; return: bool {"SetTakedamage", Entity_SetTakedamage}, // args: bool; return: nothing {"SetTarget", Entity_SetTarget}, // args: string; return: nothing {"GetTargetname2", Entity_GetTargetname2}, // args: none; return: string {"SetTargetname2", Entity_SetTargetname2}, // args: string; return: nothing {"GetTargetShaderName", Entity_GetTargetShaderName}, // args: none; return: string {"SetTargetShaderName", Entity_SetTargetShaderName}, // args: string; return: nothing {"GetTargetShaderNewName", Entity_GetTargetShaderNewName}, // args: none; return: string {"SetTargetShaderNewName", Entity_SetTargetShaderNewName}, // args: string; return: nothing {"GetTargetEnt", Entity_GetTargetEnt}, // args: none; return: ent {"SetTargetEnt", Entity_SetTargetEnt}, // args: ent; return: nothing {"GetTeam", Entity_GetTeam}, // args: none; return: string {"SetTeam", Entity_SetTeam}, // args: string; return nothing {"GetTeamchain", Entity_GetTeamchain}, // args: none; return: ent {"SetTeamchain", Entity_SetTeamchain}, // args: ent; return: nothing {"GetTeammaster", Entity_GetTeammaster}, {"SetTeammaster", Entity_SetTeammaster}, {NULL, NULL} }; /*void dummy(gentity_t *ent) { ent->timestamp; }*/ int Luaopen_Entity(lua_State * L) { luaL_newmetatable(L, "game.entity"); lua_pushstring(L, "__index"); lua_pushvalue(L, -2); lua_settable(L, -3); luaL_register(L, NULL, Entity_meta); luaL_register(L, "entity", Entity_ctor); return 1; } void Lua_PushEntity(lua_State * L, gentity_t * ent) { lent_t *lent; if(!ent || !ent->inuse) lua_pushnil(L); else { lent = (lent_t *)lua_newuserdata(L, sizeof(lent_t)); luaL_getmetatable(L, "game.entity"); lua_setmetatable(L, -2); lent->e = ent; } } lent_t *Lua_GetEntity(lua_State * L, int argNum) { void *ud; ud = luaL_checkudata(L, argNum, "game.entity"); luaL_argcheck(L, ud != NULL, argNum, "\'entity\' expected"); return (lent_t *) ud; } #endif