diff --git a/include/RE/T/TESActorBaseData.h b/include/RE/T/TESActorBaseData.h index 566453c..d6bc494 100644 --- a/include/RE/T/TESActorBaseData.h +++ b/include/RE/T/TESActorBaseData.h @@ -16,10 +16,27 @@ namespace RE inline static constexpr auto RTTI = RTTI::TESActorBaseData; inline static constexpr auto VTABLE = VTABLE::TESActorBaseData; + [[nodiscard]] bool IsEssential() const noexcept; + void SetEssential(bool a_value) noexcept; + // members ACTOR_BASE_DATA actorData; // 08 TESLevItem* deathItem; // 18 BSSimpleList factions; // 20 }; static_assert(sizeof(TESActorBaseData) == 0x30); + + inline bool TESActorBaseData::IsEssential() const noexcept + { + return actorData.actorBaseFlags.any(ACTOR_BASE_DATA::Flags::Essential); + } + + inline void TESActorBaseData::SetEssential(bool a_value) noexcept + { + if (a_value) { + actorData.actorBaseFlags.set(ACTOR_BASE_DATA::Flags::Essential); + } else { + actorData.actorBaseFlags.reset(ACTOR_BASE_DATA::Flags::Essential); + } + } }