CommonLibSSE (powerof3)
Loading...
Searching...
No Matches
ActorValueList.h
Go to the documentation of this file.
1#pragma once
2
4#include "RE/A/ActorValues.h"
5
6namespace RE
7{
9 {
10 public:
11 [[nodiscard]] static ActorValueList* GetSingleton()
12 {
13 REL::Relocation<ActorValueList**> singleton{ RELOCATION_ID(514139, 400267) };
14 return *singleton;
15 }
16
17 [[nodiscard]] ActorValueInfo* GetActorValue(ActorValue a_actorValue) const;
18 [[nodiscard]] ActorValue LookupActorValueByName(std::string_view a_enumName) const;
19
20 // members
21 std::uint32_t unk00; // 00
22 std::uint32_t pad04; // 04
23 ActorValueInfo* actorValues[stl::to_underlying(ActorValue::kTotal)]; // 08
24 };
25}
26
27namespace fmt
28{
29 template <>
30 struct formatter<RE::ActorValue>
31 {
32 template <class ParseContext>
33 constexpr auto parse(ParseContext& a_ctx)
34 {
35 return a_ctx.begin();
36 }
37
38 template <class FormatContext>
39 auto format(const RE::ActorValue& a_actorValue, FormatContext& a_ctx)
40 {
41 auto* info = RE::ActorValueList::GetSingleton()->GetActorValue(a_actorValue);
42 return fmt::format_to(a_ctx.out(), "{}", info ? info->enumName : "None");
43 }
44 };
45}
46
47#ifdef __cpp_lib_format
48namespace std
49{
50 template <class CharT>
51 struct formatter<RE::ActorValue, CharT> : formatter<std::string_view, CharT>
52 {
53 template <class FormatContext>
54 auto format(RE::ActorValue a_actorValue, FormatContext& a_ctx)
55 {
56 auto* info = RE::ActorValueList::GetSingleton()->GetActorValue(a_actorValue);
57 return formatter<std::string_view, CharT>::format(info ? info->enumName : "None", a_ctx);
58 }
59 };
60}
61#endif
#define RELOCATION_ID(SE, AE)
Definition: PCH.h:711
Definition: ActorValueInfo.h:19
Definition: ActorValueList.h:9
ActorValue LookupActorValueByName(std::string_view a_enumName) const
std::uint32_t unk00
Definition: ActorValueList.h:21
ActorValueInfo * GetActorValue(ActorValue a_actorValue) const
static ActorValueList * GetSingleton()
Definition: ActorValueList.h:11
ActorValueInfo * actorValues[stl::to_underlying(ActorValue::kTotal)]
Definition: ActorValueList.h:23
std::uint32_t pad04
Definition: ActorValueList.h:22
Definition: Relocation.h:875
Definition: AbsorbEffect.h:6
ActorValue
Definition: ActorValues.h:6
constexpr auto to_underlying(Enum a_val) noexcept
Definition: PCH.h:642
Definition: ActorValueList.h:28
Definition: EffectArchetypes.h:65
constexpr auto parse(ParseContext &a_ctx)
Definition: ActorValueList.h:33
auto format(const RE::ActorValue &a_actorValue, FormatContext &a_ctx)
Definition: ActorValueList.h:39