CommonLibSSE NG
CombatInventoryItemMagic.h
Go to the documentation of this file.
1 #pragma once
2 
4 
5 namespace RE
6 {
7  class MagicItem;
8 
9  struct Effect;
10 
12  {
13  public:
14  inline static constexpr auto RTTI = RTTI_CombatInventoryItemMagic;
15  inline static constexpr auto VTABLE = VTABLE_CombatInventoryItemMagic;
16 
17  ~CombatInventoryItemMagic() override; // 00
18 
19  // override (CombatInventoryItem)
20  void SaveGame(BGSSaveGameBuffer* a_buf) override; // 03
21  void LoadGame(BGSLoadGameBuffer* a_buf) override; // 04
22  float GetMinRange() override; // 05 - { return minRange; }
23  float GetMaxRange() override; // 06 - { return maxRange; }
24  float GetOptimalRange() override; // 07 - { return ((maxRange - minRange) * fCombatInventoryOptimalRangePercent) + minRange; }
25  float GetEquipRange() override; // 08
26  TYPE GetType() override; // 09 - { return 4; }
27  TYPE GetEquipType(BGSEquipSlot a_slot) override; // 0A
28  float CalculateScore(CombatController* a_controller) override; // 0C
29  bool CheckBusy(CombatController* a_controller) override; // 0E
30  bool CheckShouldEquip(CombatController* a_controller) override; // 0F - { return true; }
31  bool GetResource(CombatInventoryItemResource& a_resource) override; // 10
32  bool IsValid() override; // 12 - { return item && effect; }
33 
34  //add
35  virtual void* CreateCaster() = 0; // 15
36  virtual MagicItem* GetMagic(); // 16 - { return unk10; };
37 
38  // members
39  float minRange; // 30
40  float maxRange; // 34
41  float tacticalDuration; // 38
42  float power; // 3C
43  float currentAV; // 40
44  Effect* effect; // 48
45  };
46  static_assert(sizeof(CombatInventoryItemMagic) == 0x50);
47 }
Definition: BGSEquipSlot.h:10
Definition: BGSLoadGameBuffer.h:6
Definition: BGSSaveGameBuffer.h:10
Definition: CombatController.h:23
Definition: CombatInventoryItemMagic.h:12
float GetMaxRange() override
float GetEquipRange() override
float tacticalDuration
Definition: CombatInventoryItemMagic.h:41
static constexpr auto RTTI
Definition: CombatInventoryItemMagic.h:14
static constexpr auto VTABLE
Definition: CombatInventoryItemMagic.h:15
virtual MagicItem * GetMagic()
bool CheckBusy(CombatController *a_controller) override
float GetOptimalRange() override
void LoadGame(BGSLoadGameBuffer *a_buf) override
float maxRange
Definition: CombatInventoryItemMagic.h:40
float currentAV
Definition: CombatInventoryItemMagic.h:43
Effect * effect
Definition: CombatInventoryItemMagic.h:44
void SaveGame(BGSSaveGameBuffer *a_buf) override
float minRange
Definition: CombatInventoryItemMagic.h:39
bool CheckShouldEquip(CombatController *a_controller) override
float GetMinRange() override
virtual void * CreateCaster()=0
float CalculateScore(CombatController *a_controller) override
float power
Definition: CombatInventoryItemMagic.h:42
bool GetResource(CombatInventoryItemResource &a_resource) override
TYPE GetEquipType(BGSEquipSlot a_slot) override
Definition: CombatInventoryItem.h:33
TYPE
Definition: CombatInventoryItem.h:38
Definition: MagicItem.h:30
Definition: AbsorbEffect.h:6
constexpr REL::VariantID RTTI_CombatInventoryItemMagic(687597, 395467, 0x1f1d308)
constexpr std::array< REL::VariantID, 1 > VTABLE_CombatInventoryItemMagic
Definition: Offsets_VTABLE.h:2891
Definition: CombatInventoryItem.h:15
Definition: Effect.h:11