#include "Extension/Profile/profile_internal.h" #include #include #include namespace dingosdk::profile { using namespace detail; std::uint32_t noclip_binding(const Snapshot& s) { const auto bindings = s.settings.find("bindings"); if (bindings == s.settings.end()) return 0; require(bindings->is_object(), "Bindings must be an object"); const auto value = bindings->find("noclip"); if (value == bindings->end()) return 0; require(value->is_number_unsigned() || (value->is_number_integer() && value->get() >= 0), "Noclip binding must be a nonnegative integer"); const auto mask = value->get(); require(mask <= controller_button_mask && valid_controller_combo(static_cast(mask)), "Unsupported controller buttons in Noclip binding"); return static_cast(mask); } std::uint32_t forward_velocity_binding(const Snapshot& s) { const auto bindings = s.settings.find("bindings"); if (bindings == s.settings.end()) return 0; require(bindings->is_object(), "Bindings must be an object"); const auto value = bindings->find("forward_velocity"); if (value == bindings->end()) return 0; require(value->is_number_unsigned() || (value->is_number_integer() && value->get() >= 0), "Forward velocity binding must be a nonnegative integer"); const auto mask = value->get(); require(mask <= controller_button_mask && valid_controller_combo(static_cast(mask)), "Unsupported controller buttons in Forward Boost binding"); return static_cast(mask); } std::uint32_t up_velocity_binding(const Snapshot& s) { const auto bindings = s.settings.find("bindings"); if (bindings == s.settings.end()) return 0; require(bindings->is_object(), "Bindings must be an object"); const auto value = bindings->find("up_velocity"); if (value == bindings->end()) return 0; require(value->is_number_unsigned() || (value->is_number_integer() && value->get() >= 0), "Up velocity binding must be a nonnegative integer"); const auto mask = value->get(); require(mask <= controller_button_mask && valid_controller_combo(static_cast(mask)), "Unsupported controller buttons in Up Boost binding"); return static_cast(mask); } }