Scripting WIP
[oweals/minetest.git] / src / script.cpp
index 0059683b7de17db2ceb06cc9809e1716d8452c5f..167f81c77805eaa9fea672173005a173b3152602 100644 (file)
@@ -41,68 +41,6 @@ void script_error(lua_State *L, const char *fmt, ...)
        exit(EXIT_FAILURE);
 }
 
-void script_call_va(lua_State *L, const char *func, const char *sig, ...)
-{
-       va_list vl;
-       int narg, nres; /* number of arguments and results */
-
-       va_start(vl, sig);
-       lua_getglobal(L, func); /* push function */
-
-       for (narg = 0; *sig; narg++) {
-               /* repeat for each argument */
-               /* check stack space */
-               luaL_checkstack(L, 1, "too many arguments");
-               switch (*sig++) {
-               case 'd': /* double argument */
-                       lua_pushnumber(L, va_arg(vl, double));
-                       break;
-               case 'i': /* int argument */
-                       lua_pushinteger(L, va_arg(vl, int));
-                       break;
-               case 's': /* string argument */
-                       lua_pushstring(L, va_arg(vl, char *));
-                       break;
-               case '>': /* end of arguments */
-                       goto endargs;
-               default:
-                       script_error(L, "invalid option (%c)", *(sig - 1));
-               }
-       }
-endargs:
-
-       nres = strlen(sig); /* number of expected results */
-
-       if (lua_pcall(L, narg, nres, 0) != 0) /* do the call */
-               script_error(L, "error calling '%s': %s", func, lua_tostring(L, -1));
-       
-       nres = -nres; /* stack index of first result */
-       while (*sig) { /* repeat for each result */
-               switch (*sig++) {
-               case 'd': /* double result */
-                       if (!lua_isnumber(L, nres))
-                       script_error(L, "wrong result type");
-                       *va_arg(vl, double *) = lua_tonumber(L, nres);
-                       break;
-               case 'i': /* int result */
-                       if (!lua_isnumber(L, nres))
-                       script_error(L, "wrong result type");
-                       *va_arg(vl, int *) = lua_tointeger(L, nres);
-                       break;
-               case 's': /* string result */
-                       if (!lua_isstring(L, nres))
-                       script_error(L, "wrong result type");
-                       *va_arg(vl, const char **) = lua_tostring(L, nres);
-                       break;
-               default:
-                       script_error(L, "invalid option (%c)", *(sig - 1));
-               }
-               nres++;
-       }
-
-       va_end(vl);
-}
-
 bool script_load(lua_State *L, const char *path)
 {
        infostream<<"Loading and running script from "<<path<<std::endl;