CommonLibSSE (Parapets fork)
EffectArchetypes.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/A/ActorValues.h"
4 #include "RE/F/FormTypes.h"
5 
6 namespace RE
7 {
9  {
10  enum class ArchetypeID
11  {
12  kNone = static_cast<std::underlying_type_t<ArchetypeID>>(-1),
13  kValueModifier = 0,
14  kScript = 1,
15  kDispel = 2,
16  kCureDisease = 3,
17  kAbsorb = 4,
18  kDualValueModifier = 5,
19  kCalm = 6,
20  kDemoralize = 7,
21  kFrenzy = 8,
22  kDisarm = 9,
23  kCommandSummoned = 10,
24  kInvisibility = 11,
25  kLight = 12,
26  kDarkness = 13,
27  kNightEye = 14,
28  kLock = 15,
29  kOpen = 16,
30  kBoundWeapon = 17,
31  kSummonCreature = 18,
32  kDetectLife = 19,
33  kTelekinesis = 20,
34  kParalysis = 21,
35  kReanimate = 22,
36  kSoulTrap = 23,
37  kTurnUndead = 24,
38  kGuide = 25,
39  kWerewolfFeed = 26,
40  kCureParalysis = 27,
41  kCureAddiction = 28,
42  kCurePoison = 29,
43  kConcussion = 30,
44  kValueAndParts = 31,
45  kAccumulateMagnitude = 32,
46  kStagger = 33,
47  kPeakValueModifier = 34,
48  kCloak = 35,
49  kWerewolf = 36,
50  kSlowTime = 37,
51  kRally = 38,
52  kEnhanceWeapon = 39,
53  kSpawnHazard = 40,
54  kEtherealize = 41,
55  kBanish = 42,
56  kSpawnScriptedRef = 43,
57  kDisguise = 44,
58  kGrabActor = 45,
59  kVampireLord = 46
60  };
61 
62  enum class Flags : std::uint32_t
63  {
64  kNone = 0,
65  kHiddenInEditor = 1 << 0,
66  kIsActorValueUsed = 1 << 1,
67  kIsFormUsed = 1 << 2,
68  kUnk3 = 1 << 3,
69  kAllowStacking = 1 << 4,
70  kCannotMultiCast = 1 << 5,
71  kCreatesRef = 1 << 6,
72  kCustomSkillUse = 1 << 7,
74  kAddsEffectToCaster = 1 << 9
75  };
76 
77  struct ArchetypeDef
78  {
79  const char* name; // 00
83  std::uint32_t pad14; // 14
84  };
85  static_assert(sizeof(ArchetypeDef) == 0x18);
86 
87  [[nodiscard]] static ArchetypeDef& GetArchetypeDef(ArchetypeID a_id);
88  [[nodiscard]] static const char* GetArchetypeName(ArchetypeID a_id);
89  [[nodiscard]] static FormType GetAssociatedFormType(ArchetypeID a_id);
90  [[nodiscard]] static ActorValue GetFixedActorValue(ArchetypeID a_id);
91  [[nodiscard]] static bool IsFlagSet(ArchetypeID a_id, Flags a_flag);
92  };
93 }
Definition: AbsorbEffect.h:6
ActorValue
Definition: ActorValues.h:6
FormType
Definition: FormTypes.h:139
Definition: EffectArchetypes.h:78
const char * name
Definition: EffectArchetypes.h:79
ActorValue fixedActorValue
Definition: EffectArchetypes.h:81
stl::enumeration< Flags, std::uint32_t > flags
Definition: EffectArchetypes.h:80
std::uint32_t pad14
Definition: EffectArchetypes.h:83
FormType associatedFormType
Definition: EffectArchetypes.h:82
Definition: EffectArchetypes.h:9
static bool IsFlagSet(ArchetypeID a_id, Flags a_flag)
static FormType GetAssociatedFormType(ArchetypeID a_id)
static const char * GetArchetypeName(ArchetypeID a_id)
ArchetypeID
Definition: EffectArchetypes.h:11
Flags
Definition: EffectArchetypes.h:63
static ActorValue GetFixedActorValue(ArchetypeID a_id)
static ArchetypeDef & GetArchetypeDef(ArchetypeID a_id)