Files
ReSkate/Engine/Game/Multiplayer/tick_settings.h
T
2026-10-02 14:40:41 -05:00

22 lines
831 B
C++

#pragma once
#include <array>
#include <cstdint>
namespace dingosdk {
inline constexpr std::array<unsigned, 4> multiplayer_tick_rates{20, 30, 60, 120};
inline constexpr unsigned multiplayer_default_tps = 30;
constexpr bool valid_multiplayer_tps(unsigned tps) noexcept {
for (const auto rate : multiplayer_tick_rates) if (rate == tps) return true;
return false;
}
constexpr std::uint32_t multiplayer_pose_interval(unsigned tps) noexcept {
return 1000000U / (valid_multiplayer_tps(tps) ? tps : multiplayer_default_tps);
}
constexpr bool valid_pose_interval(std::uint32_t interval) noexcept {
if (interval == 100000 || interval == 200000) return true;
for (const auto rate : multiplayer_tick_rates)
if (interval == multiplayer_pose_interval(rate)) return true;
return false;
}
} // namespace dingosdk