docs: add plugin setup guide

This commit is contained in:
2026-05-30 18:33:24 +12:00
parent f3db41c402
commit b61043a3fe
1776 changed files with 122386 additions and 2 deletions
@@ -0,0 +1,55 @@
#pragma once
namespace RE
{
template <class T>
class BSTAtomicValue
{
public:
static_assert(std::is_integral_v<T>);
using value_type = T;
constexpr BSTAtomicValue() noexcept = default;
explicit constexpr BSTAtomicValue(T a_rhs) noexcept :
_value(a_rhs)
{}
T operator++()
{
REX::TAtomicRef value{ _value };
return ++value;
}
[[nodiscard]] T operator++(int)
{
REX::TAtomicRef value{ _value };
return value++;
}
T operator--()
{
REX::TAtomicRef value{ _value };
return --value;
}
[[nodiscard]] T operator--(int)
{
REX::TAtomicRef value{ _value };
return value--;
}
[[nodiscard]] value_type& load_unchecked() noexcept { return _value; }
[[nodiscard]] const value_type& load_unchecked() const noexcept { return _value; }
private:
// members
value_type _value{ 0 }; // 0
};
extern template class BSTAtomicValue<std::int32_t>;
extern template class BSTAtomicValue<std::uint32_t>;
extern template class BSTAtomicValue<std::int64_t>;
extern template class BSTAtomicValue<std::uint64_t>;
}