1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-02-20 21:09:40 +00:00

Simplify LangLua::Call

This commit is contained in:
Koncord 2016-07-27 17:51:23 +08:00
parent 03c84fd9fe
commit d3414148fc

View file

@ -134,56 +134,8 @@ boost::any LangLua::Call(const char *name, const char *argl, int buf, ...)
va_list vargs;
va_start(vargs, buf);
std::vector<boost::any> args;
try
{
size_t len = strlen(argl);
for (unsigned int i = 0; i < len; ++i)
{
switch (argl[i])
{
case 'i':
args.emplace_back(va_arg(vargs, unsigned int));
break;
case 'q':
args.emplace_back(va_arg(vargs, signed int));
break;
case 'l':
args.emplace_back(va_arg(vargs, unsigned long long));
break;
case 'w':
args.emplace_back(va_arg(vargs, signed long long));
break;
case 'f':
{
args.emplace_back(va_arg(vargs, double));
break;
}
case 'p':
args.emplace_back(va_arg(vargs, void*));
break;
case 's':
args.emplace_back(va_arg(vargs, const char*));
break;
default:
throw runtime_error("PAWN call: Unknown argument identifier " + argl[i]);
}
}
}
catch(...)
{
va_end(vargs);
throw;
}
va_end(vargs);
ScriptFunctions::GetArguments(args, vargs, argl);
return Call(name, argl, args);
}