CommonLibSSE (Parapets fork)
RE::MagicItem Class Referenceabstract

#include <MagicItem.h>

Inheritance diagram for RE::MagicItem:
RE::TESBoundObject RE::TESFullName RE::BGSKeywordForm RE::TESObject RE::BaseFormComponent RE::BaseFormComponent RE::TESForm RE::BaseFormComponent RE::AlchemyItem RE::EnchantmentItem RE::IngredientItem RE::SpellItem RE::ScrollItem

Classes

class  Data
 
class  PreloadableVisitor
 
struct  SkillUsageData
 

Public Member Functions

 ~MagicItem () override
 
void InitializeData () override
 
bool Load (TESFile *a_mod) override
 
void InitItemImpl () override
 
bool IsMagicItem () const override
 
void Copy (TESForm *a_srcForm) override
 
bool IsAutoCalc () const override
 
bool HasKeyword (const BGSKeyword *a_keyword) const override
 
virtual MagicSystem::SpellType GetSpellType () const =0
 
virtual void SetCastingType (MagicSystem::CastingType a_type)
 
virtual MagicSystem::CastingType GetCastingType () const =0
 
virtual void SetDelivery (MagicSystem::Delivery a_delivery)
 
virtual MagicSystem::Delivery GetDelivery () const =0
 
virtual bool IsValidDelivery (MagicSystem::Delivery a_delivery)
 
virtual float GetFixedCastDuration () const
 
virtual float GetRange () const
 
virtual bool IgnoresResistance () const
 
virtual bool IgnoreLOS () const
 
virtual bool IsFood () const
 
virtual bool GetNoAbsorb () const
 
virtual bool GetNoDualCastModifications () const
 
virtual bool GetSkillUsageData (SkillUsageData &a_data) const
 
virtual bool IsPoison () const
 
virtual bool IsMedicine () const
 
virtual void AdjustCost (float &a_cost, Actor *a_actor) const
 
virtual float GetChargeTime () const
 
virtual std::uint32_t GetMaxEffectCount () const
 
virtual ActorValue GetAssociatedSkill () const
 
virtual bool IsTwoHanded () const
 
virtual std::uint32_t GetChunkID ()=0
 
virtual void CopyMagicItemData (MagicItem *a_src)=0
 
virtual void LoadMagicItemChunk (TESFile *a_mod, std::uint32_t a_chunkID)
 
virtual void LoadChunkDataPostProcess (TESFile *a_mod)
 
virtual const DataGetData1 () const =0
 
virtual DataGetData2 ()=0
 
virtual std::uint32_t GetDataSize () const =0
 
virtual void InitFromChunk (TESFile *a_mod)=0
 
virtual void InitChunk ()=0
 
float CalculateMagickaCost (Actor *a_caster) const
 
float CalculateTotalGoldValue (Actor *a_caster=nullptr) const
 
EffectGetCostliestEffectItem (MagicSystem::Delivery a_delivery=MagicSystem::Delivery::kNone, bool a_arg2=false)
 
DataGetData ()
 
const DataGetData () const
 
- Public Member Functions inherited from RE::TESBoundObject
 ~TESBoundObject () override
 
void LoadObjectBound (TESFile *a_mod) override
 
bool IsBoundObject () const override
 
bool Activate (TESObjectREFR *a_targetRef, TESObjectREFR *a_activatorRef, std::uint8_t a_arg3, TESBoundObject *a_object, std::int32_t a_targetCount) override
 
NiAVObjectClone3D (TESObjectREFR *a_ref, bool a_arg3) override
 
bool ReplaceModel () override
 
virtual void SetObjectVoiceType (BGSVoiceType *a_voiceType)
 
virtual BGSVoiceTypeGetObjectVoiceType () const
 
virtual NiAVObjectClone3D (TESObjectREFR *a_ref)
 
virtual bool ReplaceModel (const char *a_str)
 
virtual bool GetActivateText (TESObjectREFR *a_activator, BSString &a_dst)
 
virtual bool CalculateDoFavor (Actor *a_activator, bool a_arg2, TESObjectREFR *a_toActivate, float a_arg3)
 
virtual void HandleRemoveItemFromContainer (TESObjectREFR *a_container)
 
virtual void OnRemove3D (NiAVObject *a_obj3D)
 
virtual void OnCheckModels ()
 
virtual void OnCopyReference ()
 
virtual void OnFinishScale ()
 
- Public Member Functions inherited from RE::TESObject
 ~TESObject () override
 
bool IsObject () const override
 
std::uint32_t GetRefCount () const override
 
virtual void Unk_3B (void)
 
virtual bool IsBoundAnimObject ()
 
virtual TESWaterFormGetWaterType () const
 
virtual void SetAutoCalc (bool a_autoCalc)
 
virtual void UnClone3D (TESObjectREFR *a_ref)
 
virtual bool IsMarker ()
 
virtual bool IsOcclusionMarker ()
 
virtual std::uint32_t IncRef ()
 
virtual std::uint32_t DecRef ()
 
virtual NiAVObjectLoadGraphics (TESObjectREFR *a_ref)
 
- Public Member Functions inherited from RE::TESForm
 ~TESForm () override
 
void InitializeDataComponent () override
 
void ClearDataComponent () override
 
void CopyComponent (BaseFormComponent *a_rhs) override
 
virtual void ClearData ()
 
virtual bool LoadPartial (TESFile *a_mod)
 
virtual bool LoadEdit (TESFile *a_mod)
 
virtual TESFormCreateDuplicateForm (bool a_createEditorID, void *a_arg2)
 
virtual bool AddChange (std::uint32_t a_changeFlags)
 
virtual void RemoveChange (std::uint32_t a_changeFlags)
 
virtual bool FindInFileFast (TESFile *a_mod)
 
virtual bool CheckSaveGame (BGSSaveFormBuffer *a_buf)
 
virtual void SaveGame (BGSSaveFormBuffer *a_buf)
 
virtual void LoadGame (BGSLoadFormBuffer *a_buf)
 
virtual void InitLoadGame (BGSLoadFormBuffer *a_buf)
 
virtual void FinishLoadGame (BGSLoadFormBuffer *a_buf)
 
virtual void Revert (BGSLoadFormBuffer *a_buf)
 
virtual TESFileGetDescriptionOwnerFile () const
 
virtual FormType GetSavedFormType () const
 
virtual void GetFormDetailedString (char *a_buf, std::uint32_t a_bufLen)
 
virtual bool GetKnown () const
 
virtual bool GetRandomAnim () const
 
virtual bool GetPlayable () const
 
virtual bool IsHeadingMarker () const
 
virtual bool GetDangerous () const
 
virtual bool QHasCurrents () const
 
virtual bool GetObstacle () const
 
virtual bool QIsLODLandObject () const
 
virtual bool GetOnLocalMap () const
 
virtual bool GetMustUpdate () const
 
virtual void SetOnLocalMap (bool a_set)
 
virtual bool GetIgnoredBySandbox () const
 
virtual void SetDelete (bool a_set)
 
virtual void SetAltered (bool a_set)
 
virtual void SaveObjectBound ()
 
virtual bool IsWater () const
 
virtual TESObjectREFRAsReference1 ()
 
virtual const TESObjectREFRAsReference2 () const
 
virtual const char * GetTextForParsedSubTag (const BSFixedString &a_tag) const
 
virtual bool BelongsInGroup (FORM *a_form, bool a_allowParentGroups, bool a_currentOnly)
 
virtual void CreateGroupData (FORM *a_form, FORM_GROUP *a_group)
 
virtual const char * GetFormEditorID () const
 
virtual bool SetFormEditorID (const char *a_str)
 
virtual bool IsParentForm ()
 
virtual bool IsParentFormTree ()
 
virtual bool IsFormTypeChild (FormType a_type)
 
virtual void SetFormID (FormID a_id, bool a_updateFile)
 
virtual const char * GetObjectTypeName () const
 
virtual bool QAvailableInGame () const
 
template<class T >
 requires (std::is_class_v< T >) T *As() noexcept
 
template<class T >
 requires (requires { T::FORMTYPE;}) const T *As() const noexcept
 
template<class T >
 requires (!requires { T::FORMTYPE;}) const T *As() const noexcept
 
TESObjectREFRAsReference ()
 
const TESObjectREFRAsReference () const
 
TESFileGetFile (std::int32_t a_idx=-1) const
 
std::uint32_t GetFormFlags () const noexcept
 
FormID GetFormID () const noexcept
 
FormType GetFormType () const noexcept
 
std::int32_t GetGoldValue () const
 
const char * GetName () const
 
float GetWeight () const
 
bool HasVMAD () const
 
bool HasWorldModel () const noexcept
 
void InitItem ()
 
bool Is (FormType a_type) const noexcept
 
template<class... Args>
bool Is (Args... a_args) const noexcept requires(std
 
bool IsAmmo () const noexcept
 
bool IsArmor () const noexcept
 
bool IsBook () const noexcept
 
bool IsDeleted () const noexcept
 
bool IsDynamicForm () const noexcept
 
bool IsGold () const noexcept
 
bool IsIgnored () const noexcept
 
bool IsInitialized () const noexcept
 
bool IsKey () const noexcept
 
bool IsLockpick () const noexcept
 
bool IsNot (FormType a_type) const noexcept
 
template<class... Args>
bool IsNot (Args... a_args) const noexcept requires(std
 
bool IsNote () const noexcept
 
bool IsPlayer () const noexcept
 
bool IsPlayerRef () const noexcept
 
bool IsSoulGem () const noexcept
 
bool IsWeapon () const noexcept
 
- Public Member Functions inherited from RE::BaseFormComponent
virtual ~BaseFormComponent ()
 
 TES_HEAP_REDEFINE_NEW ()
 
- Public Member Functions inherited from RE::TESFullName
 ~TESFullName () override
 
void InitializeDataComponent () override
 
void ClearDataComponent () override
 
void CopyComponent (BaseFormComponent *a_rhs) override
 
virtual std::uint32_t GetFullNameLength () const
 
virtual const char * GetFullName () const
 
- Public Member Functions inherited from RE::BGSKeywordForm
 ~BGSKeywordForm () override
 
void InitializeDataComponent () override
 
void ClearDataComponent () override
 
void CopyComponent (BaseFormComponent *a_rhs) override
 
virtual BGSKeywordGetDefaultKeyword () const
 
bool HasKeyword (FormID a_formID) const
 
std::optional< BGSKeyword * > GetKeywordAt (std::uint32_t a_idx) const
 
std::uint32_t GetNumKeywords () const
 

Public Attributes

BSTArray< Effect * > effects
 
std::int32_t hostileCount
 
std::uint32_t pad74
 
EffectSettingavEffectSetting
 
std::uint32_t preloadCount
 
std::uint32_t pad84
 
BSTSmartPointer< QueuedFile > preloadedItem
 
- Public Attributes inherited from RE::TESBoundObject
BOUND_DATA boundData
 
std::uint32_t pad2C
 
- Public Attributes inherited from RE::TESForm
TESFileContainer sourceFiles
 
std::uint32_t formFlags
 
FormID formID
 
stl::enumeration< InGameFormFlag, std::uint16_t > inGameFormFlags
 
stl::enumeration< FormType, std::uint8_t > formType
 
std::uint8_t pad1B
 
std::uint32_t pad1C
 
- Public Attributes inherited from RE::TESFullName
BSFixedString fullName
 
- Public Attributes inherited from RE::BGSKeywordForm
BGSKeyword ** keywords
 
std::uint32_t numKeywords
 
std::uint32_t pad14
 

Static Public Attributes

static constexpr auto RTTI = RTTI_MagicItem
 
- Static Public Attributes inherited from RE::TESBoundObject
static constexpr auto RTTI = RTTI_TESBoundObject
 
- Static Public Attributes inherited from RE::TESObject
static constexpr auto RTTI = RTTI_TESObject
 
- Static Public Attributes inherited from RE::TESForm
static constexpr auto RTTI = RTTI_TESForm
 
static constexpr auto FORMTYPE = FormType::None
 
- Static Public Attributes inherited from RE::BaseFormComponent
static constexpr auto RTTI = RTTI_BaseFormComponent
 
- Static Public Attributes inherited from RE::TESFullName
static constexpr auto RTTI = RTTI_TESFullName
 
- Static Public Attributes inherited from RE::BGSKeywordForm
static constexpr auto RTTI = RTTI_BGSKeywordForm
 

Protected Member Functions

float CalculateCost (Actor *a_caster) const
 

Additional Inherited Members

- Public Types inherited from RE::TESForm
enum class  InGameFormFlag {
  kNone = 0 , kWantsDelete = 1 << 0 , kForcedPersistent = 1 << 1 , kNoFavorAllowed = 1 << 4 ,
  kIsSkyObject = 1 << 5 , kRefOriginalPersistent = 1 << 6 , kRefPermanentlyDeleted = 1 << 7
}
 
- Static Public Member Functions inherited from RE::TESForm
static void AddCompileIndex (FormID &a_id, TESFile *a_file)
 
static auto GetAllForms () -> std::pair< BSTHashMap< FormID, TESForm * > *, std::reference_wrapper< BSReadWriteLock >>
 
static auto GetAllFormsByEditorID () -> std::pair< BSTHashMap< BSFixedString, TESForm * > *, std::reference_wrapper< BSReadWriteLock >>
 
static TESFormLookupByID (FormID a_formID)
 
template<class T >
static T * LookupByID (FormID a_formID)
 
static TESFormLookupByEditorID (const std::string_view &a_editorID)
 
template<class T >
static T * LookupByEditorID (const std::string_view &a_editorID)
 

Constructor & Destructor Documentation

◆ ~MagicItem()

RE::MagicItem::~MagicItem ( )
override

Member Function Documentation

◆ AdjustCost()

virtual void RE::MagicItem::AdjustCost ( float &  a_cost,
Actor a_actor 
) const
virtual

Reimplemented in RE::SpellItem.

◆ CalculateCost()

float RE::MagicItem::CalculateCost ( Actor a_caster) const
protected

◆ CalculateMagickaCost()

float RE::MagicItem::CalculateMagickaCost ( Actor a_caster) const

◆ CalculateTotalGoldValue()

float RE::MagicItem::CalculateTotalGoldValue ( Actor a_caster = nullptr) const

◆ Copy()

void RE::MagicItem::Copy ( TESForm a_srcForm)
overridevirtual

Reimplemented from RE::TESForm.

◆ CopyMagicItemData()

virtual void RE::MagicItem::CopyMagicItemData ( MagicItem a_src)
pure virtual

◆ GetAssociatedSkill()

virtual ActorValue RE::MagicItem::GetAssociatedSkill ( ) const
virtual

◆ GetCastingType()

virtual MagicSystem::CastingType RE::MagicItem::GetCastingType ( ) const
pure virtual

◆ GetChargeTime()

virtual float RE::MagicItem::GetChargeTime ( ) const
virtual

Reimplemented in RE::SpellItem, and RE::EnchantmentItem.

◆ GetChunkID()

virtual std::uint32_t RE::MagicItem::GetChunkID ( )
pure virtual

◆ GetCostliestEffectItem()

Effect* RE::MagicItem::GetCostliestEffectItem ( MagicSystem::Delivery  a_delivery = MagicSystem::Delivery::kNone,
bool  a_arg2 = false 
)

◆ GetData() [1/2]

Data* RE::MagicItem::GetData ( )

◆ GetData() [2/2]

const Data* RE::MagicItem::GetData ( ) const

◆ GetData1()

virtual const Data* RE::MagicItem::GetData1 ( ) const
pure virtual

◆ GetData2()

virtual Data* RE::MagicItem::GetData2 ( )
pure virtual

◆ GetDataSize()

virtual std::uint32_t RE::MagicItem::GetDataSize ( ) const
pure virtual

◆ GetDelivery()

virtual MagicSystem::Delivery RE::MagicItem::GetDelivery ( ) const
pure virtual

◆ GetFixedCastDuration()

virtual float RE::MagicItem::GetFixedCastDuration ( ) const
virtual

Reimplemented in RE::SpellItem.

◆ GetMaxEffectCount()

virtual std::uint32_t RE::MagicItem::GetMaxEffectCount ( ) const
virtual

Reimplemented in RE::IngredientItem.

◆ GetNoAbsorb()

virtual bool RE::MagicItem::GetNoAbsorb ( ) const
virtual

Reimplemented in RE::SpellItem.

◆ GetNoDualCastModifications()

virtual bool RE::MagicItem::GetNoDualCastModifications ( ) const
virtual

Reimplemented in RE::SpellItem.

◆ GetRange()

virtual float RE::MagicItem::GetRange ( ) const
virtual

Reimplemented in RE::SpellItem.

◆ GetSkillUsageData()

virtual bool RE::MagicItem::GetSkillUsageData ( SkillUsageData a_data) const
virtual

◆ GetSpellType()

virtual MagicSystem::SpellType RE::MagicItem::GetSpellType ( ) const
pure virtual

◆ HasKeyword()

bool RE::MagicItem::HasKeyword ( const BGSKeyword a_keyword) const
overridevirtual

Reimplemented from RE::BGSKeywordForm.

◆ IgnoreLOS()

virtual bool RE::MagicItem::IgnoreLOS ( ) const
virtual

Reimplemented in RE::SpellItem.

◆ IgnoresResistance()

virtual bool RE::MagicItem::IgnoresResistance ( ) const
virtual

Reimplemented in RE::SpellItem.

◆ InitChunk()

virtual void RE::MagicItem::InitChunk ( )
pure virtual

◆ InitFromChunk()

virtual void RE::MagicItem::InitFromChunk ( TESFile a_mod)
pure virtual

◆ InitializeData()

void RE::MagicItem::InitializeData ( )
overridevirtual

Reimplemented from RE::TESForm.

Reimplemented in RE::SpellItem.

◆ InitItemImpl()

void RE::MagicItem::InitItemImpl ( )
overridevirtual

Reimplemented from RE::TESForm.

Reimplemented in RE::SpellItem, and RE::ScrollItem.

◆ IsAutoCalc()

bool RE::MagicItem::IsAutoCalc ( ) const
overridevirtual

Reimplemented from RE::TESObject.

◆ IsFood()

virtual bool RE::MagicItem::IsFood ( ) const
virtual

Reimplemented in RE::IngredientItem, and RE::AlchemyItem.

◆ IsMagicItem()

bool RE::MagicItem::IsMagicItem ( ) const
overridevirtual

Reimplemented from RE::TESForm.

◆ IsMedicine()

virtual bool RE::MagicItem::IsMedicine ( ) const
virtual

Reimplemented in RE::AlchemyItem.

◆ IsPoison()

virtual bool RE::MagicItem::IsPoison ( ) const
virtual

Reimplemented in RE::AlchemyItem.

◆ IsTwoHanded()

virtual bool RE::MagicItem::IsTwoHanded ( ) const
virtual

Reimplemented in RE::SpellItem.

◆ IsValidDelivery()

virtual bool RE::MagicItem::IsValidDelivery ( MagicSystem::Delivery  a_delivery)
virtual

◆ Load()

bool RE::MagicItem::Load ( TESFile a_mod)
overridevirtual

Reimplemented from RE::TESForm.

◆ LoadChunkDataPostProcess()

virtual void RE::MagicItem::LoadChunkDataPostProcess ( TESFile a_mod)
virtual

Reimplemented in RE::SpellItem.

◆ LoadMagicItemChunk()

virtual void RE::MagicItem::LoadMagicItemChunk ( TESFile a_mod,
std::uint32_t  a_chunkID 
)
virtual

◆ SetCastingType()

virtual void RE::MagicItem::SetCastingType ( MagicSystem::CastingType  a_type)
virtual

Reimplemented in RE::SpellItem, and RE::EnchantmentItem.

◆ SetDelivery()

virtual void RE::MagicItem::SetDelivery ( MagicSystem::Delivery  a_delivery)
virtual

Reimplemented in RE::SpellItem, and RE::EnchantmentItem.

Member Data Documentation

◆ avEffectSetting

EffectSetting* RE::MagicItem::avEffectSetting

◆ effects

BSTArray<Effect*> RE::MagicItem::effects

◆ hostileCount

std::int32_t RE::MagicItem::hostileCount

◆ pad74

std::uint32_t RE::MagicItem::pad74

◆ pad84

std::uint32_t RE::MagicItem::pad84

◆ preloadCount

std::uint32_t RE::MagicItem::preloadCount

◆ preloadedItem

BSTSmartPointer<QueuedFile> RE::MagicItem::preloadedItem

◆ RTTI

constexpr auto RE::MagicItem::RTTI = RTTI_MagicItem
inlinestaticconstexpr

The documentation for this class was generated from the following file: