From 03c2573a9a20e141fb8d2c3aec0e025d60acf0d3 Mon Sep 17 00:00:00 2001 From: Walter Julius Hennecke Date: Sat, 13 Apr 2013 18:48:32 +0200 Subject: [PATCH] Updated some lua functions --- code/game/lua_entity.c | 50 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 41 insertions(+), 9 deletions(-) diff --git a/code/game/lua_entity.c b/code/game/lua_entity.c index 0fcf8a2..7d08acf 100644 --- a/code/game/lua_entity.c +++ b/code/game/lua_entity.c @@ -390,14 +390,18 @@ static int Entity_Print(lua_State * L) 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) { - return luaL_error(L, "\'Print\' must be called on an client entity."); + LUA_DEBUG("ERROR - entity.Print - entity NULL"); + return 1; } if(lent->e->client == NULL) { - return luaL_error(L, "\'Print\' must be called on an client entity."); + LUA_DEBUG("ERROR - entity.Print - entity is not a client"); + return 1; } memset(buf, 0, sizeof(buf)); @@ -413,7 +417,8 @@ static int Entity_Print(lua_State * L) s = lua_tostring(L, -1); if(s == NULL) { - return luaL_error(L, "\'tostring\' must return a string to \'print\'"); + LUA_DEBUG("ERROR - entity.Print - string NULL"); + return 1; } Q_strcat(buf, sizeof(buf), s); @@ -422,6 +427,7 @@ static int Entity_Print(lua_State * L) } trap_SendServerCommand(lent->e - g_entities, va("print \"%s\n\"", buf)); + LUA_DEBUG("END - entity.Print"); return 1; } @@ -432,14 +438,18 @@ static int Entity_CenterPrint(lua_State * L) 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) { - return luaL_error(L, "\'CenterPrint\' must be used with a client entity"); + LUA_DEBUG("ERROR - entity.CenterPrint - entity NULL"); + return 1; } if(lent->e->client == NULL) { - return luaL_error(L, "\'CenterPrint\' must be used with a client entity"); + LUA_DEBUG("ERROR - entity.CenterPrint - entity is not a client"); + return 1; } memset(buf, 0, sizeof(buf)); @@ -454,8 +464,10 @@ static int Entity_CenterPrint(lua_State * L) lua_call(L, 1, 1); s = lua_tostring(L, -1); - if(s == NULL) - return luaL_error(L, "\'tostring\' must return a string to \'print\'"); + if(s == NULL) { + LUA_DEBUG("ERROR - entity.CenterPrint - string NULL"); + return 1; + } Q_strcat(buf, sizeof(buf), s); @@ -463,7 +475,7 @@ static int Entity_CenterPrint(lua_State * L) } trap_SendServerCommand(lent->e - g_entities, va("cp \"" S_COLOR_WHITE "%s\n\"", buf)); - + LUA_DEBUG("END - entity.CenterPrint"); return 1; } @@ -475,16 +487,31 @@ static int Entity_SetKeyValue(lua_State * L) { 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 || key == NULL || value == NULL) { + 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; } @@ -494,13 +521,18 @@ 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; }