iw7-mod/src/client/component/ui_scripting.hpp
m 885908ff15
LUI (#126)
* lui scripting + server list

* better hooks

* add hks hook + fix dvars

* add properties util for later

* Add Heatbeats to Dedis (#109)

* Add heatbeats to dedis

* Address review changes

* fix: server browser columns match game (#122)

* fix: server browser columns match game

* chore: remove unused debug logs

---------

Co-authored-by: efinst0rm <efinst0rm@users.noreply.github.com>
Co-authored-by: Liam <lierrmm@gmail.com>
2024-03-07 20:27:06 -06:00

52 lines
1.1 KiB
C++

#pragma once
namespace ui_scripting
{
template <class... Args, std::size_t... I>
auto wrap_function(const std::function<void(Args...)>& f, std::index_sequence<I...>)
{
return [f](const function_arguments& args)
{
f(args[I]...);
return arguments{{}};
};
}
template <class... Args, std::size_t... I>
auto wrap_function(const std::function<arguments(Args...)>& f, std::index_sequence<I...>)
{
return [f](const function_arguments& args)
{
return f(args[I]...);
};
}
template <typename R, class... Args, std::size_t... I>
auto wrap_function(const std::function<R(Args...)>& f, std::index_sequence<I...>)
{
return [f](const function_arguments& args)
{
return arguments{f(args[I]...)};
};
}
template <typename R, class... Args>
auto wrap_function(const std::function<R(Args...)>& f)
{
return wrap_function(f, std::index_sequence_for<Args...>{});
}
template <class F>
auto wrap_function(F f)
{
return wrap_function(std::function(f));
}
table get_globals();
template <typename F>
game::hks::cclosure* convert_function(F f);
bool lui_running();
}