diff --git a/include/RE/B/BGSAwakeSoundData.h b/include/RE/B/BGSAwakeSoundData.h index 9451c14f..239d17bd 100644 --- a/include/RE/B/BGSAwakeSoundData.h +++ b/include/RE/B/BGSAwakeSoundData.h @@ -7,7 +7,7 @@ namespace RE class BGSAwakeSoundData { public: - enum class eState : std::uint32_t + enum class State : std::uint32_t { kPlaying = 0x0, kPaused = 0x1, @@ -16,10 +16,10 @@ namespace RE kTotal = 0x3 }; - BSSoundHandle sound; // 00 - std::uint32_t soundFormID; // 08 - float volume; // 0C - BGSAwakeSoundData::eState state; // 10 + BSSoundHandle sound; // 00 + std::uint32_t soundFormID; // 08 + float volume; // 0C + BGSAwakeSoundData::State state; // 10 }; static_assert(sizeof(BGSAwakeSoundData) == 0x14); } diff --git a/include/RE/E/EXTRA_DATA_TYPE.h b/include/RE/E/EXTRA_DATA_TYPE.h index b85da7f8..c3f6f4e8 100644 --- a/include/RE/E/EXTRA_DATA_TYPE.h +++ b/include/RE/E/EXTRA_DATA_TYPE.h @@ -110,7 +110,7 @@ namespace RE kPrimitive, // kOpenCloseActivateRef, // kAnimNoteReceiver, // - kAmmo, // + kAmmo, // ExtraAmmo kPatrolRefData, // kPackageData, // kOcclusionShape, // diff --git a/include/RE/E/ExtraAmmo.h b/include/RE/E/ExtraAmmo.h new file mode 100644 index 00000000..f5ddcd63 --- /dev/null +++ b/include/RE/E/ExtraAmmo.h @@ -0,0 +1,19 @@ +#pragma once + +#include "RE/B/BSExtraData.h" + +namespace RE +{ + class __declspec(novtable) ExtraAmmo : + public BSExtraData // 00 + { + public: + static constexpr auto RTTI{ RTTI::ExtraAmmo }; + static constexpr auto VTABLE{ VTABLE::ExtraAmmo }; + static constexpr auto TYPE{ EXTRA_DATA_TYPE::kAmmo }; + + // members + std::uint32_t count; // 18 + }; + static_assert(sizeof(ExtraAmmo) == 0x20); +} diff --git a/include/RE/F/FavoritesManager.h b/include/RE/F/FavoritesManager.h index a23c2b34..098576b4 100644 --- a/include/RE/F/FavoritesManager.h +++ b/include/RE/F/FavoritesManager.h @@ -74,6 +74,13 @@ namespace RE return func(this, a_quickkeyIndex); } + [[nodiscard]] void ClearCurrentAmmoCount() + { + using func_t = decltype(&FavoritesManager::ClearCurrentAmmoCount); + static REL::Relocation func{ ID::FavoritesManager::ClearCurrentAmmoCount }; + return func(this); + } + // members TESBoundObject* storedFavTypes[12]; // 090 NiPointer bufferedFavGeometries[12]; // 0F0 diff --git a/include/RE/Fallout.h b/include/RE/Fallout.h index eb41a166..05f56c2f 100644 --- a/include/RE/Fallout.h +++ b/include/RE/Fallout.h @@ -645,6 +645,7 @@ #include "RE/E/Explosion.h" #include "RE/E/ExteriorCellSingleton.h" #include "RE/E/ExtraAliasInstanceArray.h" +#include "RE/E/ExtraAmmo.h" #include "RE/E/ExtraBendableSplineParams.h" #include "RE/E/ExtraCellWaterType.h" #include "RE/E/ExtraCharge.h" diff --git a/include/RE/IDs.h b/include/RE/IDs.h index 73335c09..9a7c0dea 100644 --- a/include/RE/IDs.h +++ b/include/RE/IDs.h @@ -973,6 +973,7 @@ namespace RE::ID inline constexpr REL::ID UseQuickkeyItem{ 2248744 }; inline constexpr REL::ID HandleEvent{ 2248740 }; inline constexpr REL::ID Call{ 2248766 }; + inline constexpr REL::ID ClearCurrentAmmoCount{ 2248745 }; } namespace FlatScreenModel @@ -1894,6 +1895,11 @@ namespace RE::ID inline constexpr REL::ID GetEventSource{ 2201848 }; } + namespace TESLocationClearedEvent + { + inline constexpr REL::ID GetEventSource{ 2201849 }; + } + namespace TESMagicEffectApplyEvent { inline constexpr REL::ID GetEventSource{ 2201851 }; diff --git a/include/RE/T/TESLocationClearedEvent.h b/include/RE/T/TESLocationClearedEvent.h index 485a2931..616dee4a 100644 --- a/include/RE/T/TESLocationClearedEvent.h +++ b/include/RE/T/TESLocationClearedEvent.h @@ -5,6 +5,13 @@ namespace RE class TESLocationClearedEvent { public: + [[nodiscard]] static BSTEventSource* GetEventSource() + { + using func_t = decltype(&TESLocationClearedEvent::GetEventSource); + static REL::Relocation func{ ID::TESLocationClearedEvent::GetEventSource }; + return func(); + } + // members const BGSLocation* location; // 00 }; diff --git a/include/RE/T/TESObjectACTI.h b/include/RE/T/TESObjectACTI.h index 9933c392..116e43e0 100644 --- a/include/RE/T/TESObjectACTI.h +++ b/include/RE/T/TESObjectACTI.h @@ -32,6 +32,15 @@ namespace RE static constexpr auto VTABLE{ VTABLE::TESObjectACTI }; static constexpr auto FORM_ID{ ENUM_FORM_ID::kACTI }; + enum class ActiFlags + { + kNoDisplacement = 0x1, + kNoSandbox = 0x2, + kIsProceduralWater = 0x4, + kIsLODWater = 0x8, + kIsRadio = 0x10 + }; + // members BGSSoundDescriptorForm* soundLoop; // 128 BGSSoundDescriptorForm* soundActivate; // 130