fix slow motion killcams
This commit is contained in:
parent
914180f9ad
commit
9f1d2379f8
@ -10,6 +10,20 @@
|
|||||||
|
|
||||||
namespace slowmotion
|
namespace slowmotion
|
||||||
{
|
{
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
template <typename T, typename T2>
|
||||||
|
T get_timescale_safe(const scripting::value_wrap& arg)
|
||||||
|
{
|
||||||
|
if (arg.is<T>())
|
||||||
|
{
|
||||||
|
return arg.as<T>();
|
||||||
|
}
|
||||||
|
|
||||||
|
return static_cast<T>(arg.as<T2>());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class component final : public component_interface
|
class component final : public component_interface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -28,8 +42,8 @@ namespace slowmotion
|
|||||||
}
|
}
|
||||||
|
|
||||||
const auto start = args[0].as<float>();
|
const auto start = args[0].as<float>();
|
||||||
const auto end = (args.size() > 0 ? args[1].as<float>() : 1.0f);
|
const auto end = (args.size() > 0 ? get_timescale_safe<float, int>(args[1]) : 1.0f);
|
||||||
const auto duration = (args.size() > 1 ? args[2].as<int>() : 1) * 1000;
|
const auto duration = (args.size() > 1 ? get_timescale_safe<int, float>(args[2]) : 1) * 1000;
|
||||||
|
|
||||||
game::SV_SetConfigstring(10, utils::string::va("%i %i %g %g", *game::mp::gameTime, duration, start, end));
|
game::SV_SetConfigstring(10, utils::string::va("%i %i %g %g", *game::mp::gameTime, duration, start, end));
|
||||||
game::Com_SetSlowMotion(start, end, duration);
|
game::Com_SetSlowMotion(start, end, duration);
|
||||||
|
Loading…
Reference in New Issue
Block a user