CommonLibVR
Effect.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/M/MemoryManager.h"
4 #include "RE/T/TESCondition.h"
5 
6 namespace RE
7 {
8  class EffectSetting;
9 
10  struct Effect
11  {
12  public:
13  struct EffectItem // EFIT
14  {
15  public:
17  ~EffectItem() = default;
18 
19  // members
20  float magnitude; // 0
21  std::uint32_t area; // 4
22  std::uint32_t duration; // 8
23  };
24  static_assert(sizeof(EffectItem) == 0xC);
25 
26  Effect();
27  ~Effect() = default;
28 
30 
31  bool IsMatch(EffectSetting* a_base, float a_mag, std::uint32_t a_area, std::uint32_t a_dur, float a_cost);
32  float GetMagnitude() const;
33  std::uint32_t GetArea() const;
34  std::uint32_t GetDuration() const;
35  bool IsHostile() const;
36 
37  // members
38  EffectItem effectItem; // 00 - EFIT
39  std::uint32_t pad0C; // 0C
40  EffectSetting* baseEffect; // 10 - EFID
41  float cost; // 18
42  std::uint32_t pad1C; // 1C
43  TESCondition conditions; // 20 - CTDA
44  private:
45  KEEP_FOR_RE()
46  };
47  static_assert(sizeof(Effect) == 0x28);
48 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: EffectSetting.h:24
Definition: TESCondition.h:992
Definition: AbsorbEffect.h:6
Definition: Effect.h:14
float magnitude
Definition: Effect.h:20
std::uint32_t area
Definition: Effect.h:21
std::uint32_t duration
Definition: Effect.h:22
Definition: Effect.h:11
std::uint32_t GetArea() const
~Effect()=default
EffectSetting * baseEffect
Definition: Effect.h:40
EffectItem effectItem
Definition: Effect.h:38
std::uint32_t pad0C
Definition: Effect.h:39
std::uint32_t pad1C
Definition: Effect.h:42
TESCondition conditions
Definition: Effect.h:43
float GetMagnitude() const
bool IsHostile() const
float cost
Definition: Effect.h:41
std::uint32_t GetDuration() const
TES_HEAP_REDEFINE_NEW()
bool IsMatch(EffectSetting *a_base, float a_mag, std::uint32_t a_area, std::uint32_t a_dur, float a_cost)