docs: add plugin setup guide
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
#pragma once
|
||||
|
||||
namespace RE
|
||||
{
|
||||
class ActiveEffectList;
|
||||
|
||||
class __declspec(novtable) MagicTarget
|
||||
{
|
||||
public:
|
||||
static constexpr auto RTTI{ RTTI::MagicTarget };
|
||||
static constexpr auto VTABLE{ VTABLE::MagicTarget };
|
||||
|
||||
class AddTargetData;
|
||||
class SpellDispelData;
|
||||
|
||||
// members
|
||||
virtual ~MagicTarget(); // 00
|
||||
|
||||
// add
|
||||
virtual bool AddTarget(AddTargetData& a_data); // 01
|
||||
virtual TESObjectREFR* GetTargetStatsObject() { return nullptr; } // 02
|
||||
virtual bool MagicTargetIsActor() { return false; } // 03
|
||||
virtual bool IsInvulnerable() const { return false; } // 04
|
||||
virtual void InvalidateCommandedActorEffect([[maybe_unused]] ActiveEffect* a_effect) { return; } // 05
|
||||
virtual bool CanAddActiveEffect() const = 0; // 06
|
||||
virtual ActiveEffectList* GetActiveEffectList() = 0; // 07
|
||||
virtual float CheckResistance([[maybe_unused]] MagicItem* a_spell, [[maybe_unused]] EffectItem* a_effect, [[maybe_unused]] TESBoundObject* a_source) const { return 1.0F; } // 08
|
||||
virtual void EffectAdded([[maybe_unused]] ActiveEffect* a_effect) { return; } // 09
|
||||
virtual void EffectRemoved([[maybe_unused]] ActiveEffect* a_effect) { return; } // 0A
|
||||
virtual void EffectActiveStatusChanged([[maybe_unused]] ActiveEffect* a_effect) { return; } // 0B
|
||||
virtual bool CheckAbsorb([[maybe_unused]] Actor* a_caster, [[maybe_unused]] MagicItem* a_spell, [[maybe_unused]] const EffectItem* a_effectItem) { return false; } // 0C
|
||||
|
||||
[[nodiscard]] bool IsTakingHealthDamageFromActiveEffect()
|
||||
{
|
||||
using func_t = decltype(&MagicTarget::IsTakingHealthDamageFromActiveEffect);
|
||||
static REL::Relocation<func_t> func{ ID::MagicTarget::IsTakingHealthDamageFromActiveEffect };
|
||||
return func(this);
|
||||
}
|
||||
|
||||
[[nodiscard]] bool IsTakingRadDamageFromActiveEffect()
|
||||
{
|
||||
using func_t = decltype(&MagicTarget::IsTakingRadDamageFromActiveEffect);
|
||||
static REL::Relocation<func_t> func{ ID::MagicTarget::IsTakingRadDamageFromActiveEffect };
|
||||
return func(this);
|
||||
}
|
||||
|
||||
// members
|
||||
SpellDispelData* postUpdateDispelList; // 08
|
||||
std::int8_t flags; // 10
|
||||
};
|
||||
static_assert(sizeof(MagicTarget) == 0x18);
|
||||
}
|
||||
Reference in New Issue
Block a user