diff --git a/cmake/sourcelist.cmake b/cmake/sourcelist.cmake index 6b3cdd065..1271fe107 100644 --- a/cmake/sourcelist.cmake +++ b/cmake/sourcelist.cmake @@ -1656,6 +1656,7 @@ set(SOURCES include/RE/V/VirtualMachine.h include/RE/V/VoiceSpellFireHandler.h include/RE/W/WeaponAnimationGraphManagerHolder.h + include/RE/W/WeaponEnchantmentController.h include/RE/W/WeatherType.h include/RE/W/WerewolfEffect.h include/RE/W/WerewolfFeedEffect.h diff --git a/include/RE/W/WeaponEnchantmentController.h b/include/RE/W/WeaponEnchantmentController.h new file mode 100644 index 000000000..5012d594f --- /dev/null +++ b/include/RE/W/WeaponEnchantmentController.h @@ -0,0 +1,48 @@ +#pragma once + +#include "RE/N/NiSmartPointer.h" + +namespace RE +{ + class Actor; + class ActorMagicCaster; + class TESObjectWEAP; + + class WeaponEnchantmentController : public ReferenceEffectController + { + public: + inline static constexpr auto RTTI = RTTI_WeaponEnchantmentController; + inline static constexpr auto VTABLE = VTABLE_WeaponEnchantmentController; + + virtual ~WeaponEnchantmentController() = default; // 00 + + // override + RE::TESObjectREFR* GetTargetReference() override; // 0B + RE::BGSArtObject* GetHitEffectArt() override; // 0C + RE::TESEffectShader* GetHitEffectShader() override; // 0D + bool GetManagerHandlesSaveLoad() override; // 0E + RE::NiAVObject* GetAttachRoot() override; // 0F + float GetParticleAttachExtent() override; // 10 + bool GetUseParticleAttachExtent() override; // 11 + bool GetDoParticles() override; // 12 + bool GetParticlesUseLocalSpace() override; // 13 + bool GetUseRootWorldRotate() override; // 14 + bool GetIsRootActor() override; // 15 + bool GetShaderUseParentCell() override; // 19 + bool GetAllowTargetRoot() override; // 2C + bool IsReadyForAttach() override; // 1D + + // members + ActorMagicCaster* caster; // 08 + Actor* target; // 10 + TESEffectShader* shader; // 18 + BGSArtObject* art; // 20 + NiPointer attachRoot; // 28 + TESObjectWEAP* lastWeapon; // 30 + bool firstPerson; // 38 + std::uint8_t pad39; // 39 + std::uint16_t pad3A; // 3A + std::uint32_t pad3C; // 3C + }; + static_assert(sizeof(WeaponEnchantmentController) == 0x40); +}