Added Clamp() function to the lua api.
This commit is contained in:
parent
d2d0ffee21
commit
a92cff20ea
@ -82,6 +82,33 @@ static int lua_do_error(lua_State* L, const char * a_pFormat, ...)
|
|||||||
|
|
||||||
|
|
||||||
// Lua bound functions with special return types
|
// Lua bound functions with special return types
|
||||||
|
static int tolua_Clamp(lua_State * tolua_S)
|
||||||
|
{
|
||||||
|
cLuaState LuaState(tolua_S);
|
||||||
|
int NumArgs = lua_gettop(LuaState);
|
||||||
|
if (NumArgs != 3)
|
||||||
|
{
|
||||||
|
return lua_do_error(LuaState, "Error in function call '#funcname#': Requires 3 arguments, got %i", NumArgs);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!lua_isnumber(LuaState, 1) || !lua_isnumber(LuaState, 2) || !lua_isnumber(LuaState, 3))
|
||||||
|
{
|
||||||
|
return lua_do_error(LuaState, "Error in function call '#funcname#': Expected a number for parameters #1, #2 and #3");
|
||||||
|
}
|
||||||
|
|
||||||
|
int Min = (int)tolua_tonumber(LuaState, 1, 0);
|
||||||
|
int Number = (int)tolua_tonumber(LuaState, 2, 0);
|
||||||
|
int Max = (int)tolua_tonumber(LuaState, 3, 0);
|
||||||
|
|
||||||
|
int Result = std::min(std::max(Min, Number), Max);
|
||||||
|
LuaState.Push(Result);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int tolua_StringSplit(lua_State * tolua_S)
|
static int tolua_StringSplit(lua_State * tolua_S)
|
||||||
{
|
{
|
||||||
cLuaState LuaState(tolua_S);
|
cLuaState LuaState(tolua_S);
|
||||||
@ -3103,6 +3130,7 @@ static int tolua_cCompositeChat_UnderlineUrls(lua_State * tolua_S)
|
|||||||
void ManualBindings::Bind(lua_State * tolua_S)
|
void ManualBindings::Bind(lua_State * tolua_S)
|
||||||
{
|
{
|
||||||
tolua_beginmodule(tolua_S, NULL);
|
tolua_beginmodule(tolua_S, NULL);
|
||||||
|
tolua_function(tolua_S, "Clamp", tolua_Clamp);
|
||||||
tolua_function(tolua_S, "StringSplit", tolua_StringSplit);
|
tolua_function(tolua_S, "StringSplit", tolua_StringSplit);
|
||||||
tolua_function(tolua_S, "StringSplitAndTrim", tolua_StringSplitAndTrim);
|
tolua_function(tolua_S, "StringSplitAndTrim", tolua_StringSplitAndTrim);
|
||||||
tolua_function(tolua_S, "LOG", tolua_LOG);
|
tolua_function(tolua_S, "LOG", tolua_LOG);
|
||||||
|
Loading…
Reference in New Issue
Block a user