diff --git a/include/RE/E/Explosion.h b/include/RE/E/Explosion.h index 35d04b6db..9faec6cc9 100644 --- a/include/RE/E/Explosion.h +++ b/include/RE/E/Explosion.h @@ -1,5 +1,6 @@ #pragma once +#include "RE/B/BSResourceHandle.h" #include "RE/B/BSSoundHandle.h" #include "RE/F/FormTypes.h" #include "RE/M/MagicSystem.h" @@ -51,32 +52,32 @@ namespace RE virtual void FindTargets(); // A4 // members - std::uint64_t unk98; // 098 - float startKeyTime; // 0A0 - float endKeyTime; // 0A4 - float hitKeyTime; // 0A8 - float radius; // 0AC - float imodRadius; // 0B0 - float unkB4; // 0B4 - bhkSimpleShapePhantom* unkB8; // 0B8 - std::uint64_t unkC0; // 0C0 - std::uint64_t unkC8; // 0C8 - BSSoundHandle sound01; // 0D0 - BSSoundHandle sound02; // 0DC - NiPointer light; // 0E8 - ActorHandle actorOwner; // 0F0 - ActorHandle unkF4; // 0F4 - std::uint32_t unkF8; // 0F8 - std::uint32_t padFC; // 0FC - NiPointer actorCause; // 100 - NonActorMagicCaster* magicCaster; // 108 - TESObjectWEAP* weaponSource; // 110 - std::uint32_t unk118; // 118 - NiPoint3 unk11C; // 11C - NiPoint3 negativeVelocity; // 128 - float damage; // 134 - float unk138; // 138 - stl::enumeration flags; // 13C + ModelDBHandle explosionDBHandle; // 098 + float startKeyTime; // 0A0 + float endKeyTime; // 0A4 + float hitKeyTime; // 0A8 + float radius; // 0AC + float imodRadius; // 0B0 + float unkB4; // 0B4 + bhkSimpleShapePhantom* unkB8; // 0B8 + std::uint64_t unkC0; // 0C0 + std::uint64_t unkC8; // 0C8 + BSSoundHandle sound01; // 0D0 + BSSoundHandle sound02; // 0DC + NiPointer light; // 0E8 + ActorHandle actorOwner; // 0F0 + ActorHandle unkF4; // 0F4 + std::uint32_t unkF8; // 0F8 + std::uint32_t padFC; // 0FC + NiPointer actorCause; // 100 + NonActorMagicCaster* magicCaster; // 108 + TESObjectWEAP* weaponSource; // 110 + std::uint32_t unk118; // 118 + NiPoint3 unk11C; // 11C + NiPoint3 negativeVelocity; // 128 + float damage; // 134 + float unk138; // 138 + stl::enumeration flags; // 13C }; #ifndef SKYRIM_SUPPORT_AE static_assert(sizeof(Explosion) == 0x140); diff --git a/include/RE/H/Hazard.h b/include/RE/H/Hazard.h index c5519324a..a6407c774 100644 --- a/include/RE/H/Hazard.h +++ b/include/RE/H/Hazard.h @@ -1,6 +1,7 @@ #pragma once #include "RE/B/BSPointerHandle.h" +#include "RE/B/BSResourceHandle.h" #include "RE/B/BSSoundHandle.h" #include "RE/F/FormTypes.h" #include "RE/N/NiSmartPointer.h" @@ -47,7 +48,7 @@ namespace RE virtual bool IsPermanent() const; // A4 - { return TESDataHandler::GetSingleton()->IsGeneratedFormID(formID) == 0; } // members - void* hazardDBHandle; // 98 + ModelDBHandle hazardDBHandle; // 98 ActorHandle ownerActor; // A0 float age; // A4 float lifetime; // A8 diff --git a/include/RE/P/Projectile.h b/include/RE/P/Projectile.h index 86f2ff931..83011a10c 100644 --- a/include/RE/P/Projectile.h +++ b/include/RE/P/Projectile.h @@ -3,6 +3,7 @@ #include "RE/B/BGSProjectile.h" #include "RE/B/BSAtomic.h" #include "RE/B/BSPointerHandle.h" +#include "RE/B/BSResourceHandle.h" #include "RE/B/BSSoundHandle.h" #include "RE/B/BSTList.h" #include "RE/B/BSTSingleton.h" @@ -235,49 +236,49 @@ namespace RE static ProjectileHandle* LaunchArrow(ProjectileHandle* a_result, Actor* a_shooter, TESAmmo* a_ammo, TESObjectWEAP* a_weap) noexcept; // members - BSSimpleList impacts; // 098 - NiTransform unk0A8; // 0A8 - float unk0DC; // 0DC - bhkSimpleShapePhantom* unk0E0; // 0E0 - smart ptr - mutable BSSpinLock unk0E8; // 0E8 - NiPoint3 velocity; // 0F0 - NiPoint3 linearVelocity; // 0FC - NiPointer light; // 108 - smart ptr - void* unk110; // 110 - smart ptr - NiPointer actorCause; // 118 - ObjectRefHandle shooter; // 120 - ObjectRefHandle desiredTarget; // 124 - BSSoundHandle sndHandle; // 128 - BSSoundHandle sndCountdown; // 134 - std::uint32_t* unk140; // 140 - InventoryEntryData* unk148; // 148 - BGSExplosion* explosion; // 150 - MagicItem* spell; // 158 - MagicSystem::CastingSource castingSource; // 160 - std::uint32_t pad164; // 164 - EffectSetting* avEffect; // 168 - NiPointer projectileDBFiles; // 170 - std::uint64_t unk178; // 178 - DBHandle - std::uint64_t unk180; // 180 - float power; // 188 - float speedMult; // 18C - float range; // 190 - float livingTime; // 194 - float weaponDamage; // 198 - float transparency; // 19C - for beam disappearing - float ExplosionTimer; // 1A0 - std::uint32_t unk1A4; // 1A4 - float unk1A8; // 1A8 - 0.0f - float unk1AC; // 1AC - 0.0f - TESObjectWEAP* weaponSource; // 1B0 - TESAmmo* ammoSource; // 1B8 - float distanceMoved; // 1C0 - std::uint32_t pad_1C4; // 1C4 - float scale; // 1C8 - for double cast model scale - stl::enumeration flags; // 1CC - bool unk1D0; // 1D0 - bool unk1D1; // 1D0 - char unk1D2[6]; // 1D2 + BSSimpleList impacts; // 098 + NiTransform unk0A8; // 0A8 + float unk0DC; // 0DC + bhkSimpleShapePhantom* unk0E0; // 0E0 - smart ptr + mutable BSSpinLock unk0E8; // 0E8 + NiPoint3 velocity; // 0F0 + NiPoint3 linearVelocity; // 0FC + NiPointer light; // 108 - smart ptr + void* unk110; // 110 - smart ptr + NiPointer actorCause; // 118 + ObjectRefHandle shooter; // 120 + ObjectRefHandle desiredTarget; // 124 + BSSoundHandle sndHandle; // 128 + BSSoundHandle sndCountdown; // 134 + std::uint32_t* unk140; // 140 + InventoryEntryData* unk148; // 148 + BGSExplosion* explosion; // 150 + MagicItem* spell; // 158 + MagicSystem::CastingSource castingSource; // 160 + std::uint32_t pad164; // 164 + EffectSetting* avEffect; // 168 + NiPointer projectileDBFiles; // 170 + ModelDBHandle muzzleFlashDBHandle; // 178 + std::uint64_t unk180; // 180 + float power; // 188 + float speedMult; // 18C + float range; // 190 + float livingTime; // 194 + float weaponDamage; // 198 + float transparency; // 19C - for beam disappearing + float explosionTimer; // 1A0 + std::uint32_t unk1A4; // 1A4 + float unk1A8; // 1A8 - 0.0f + float unk1AC; // 1AC - 0.0f + TESObjectWEAP* weaponSource; // 1B0 + TESAmmo* ammoSource; // 1B8 + float distanceMoved; // 1C0 + std::uint32_t pad_1C4; // 1C4 + float scale; // 1C8 - for double cast model scale + stl::enumeration flags; // 1CC + bool unk1D0; // 1D0 + bool unk1D1; // 1D0 + char unk1D2[6]; // 1D2 }; #ifndef SKYRIM_SUPPORT_AE static_assert(sizeof(Projectile) == 0x1D8);