CommonLibSSE (powerof3)
Loading...
Searching...
No Matches
GrenadeProjectile.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/F/FormTypes.h"
4#include "RE/P/Projectile.h"
5
6namespace RE
7{
8 struct BGSDecalGroup;
9
11 {
12 public:
13 inline static constexpr auto RTTI = RTTI_GrenadeProjectile;
14 inline static constexpr auto VTABLE = VTABLE_GrenadeProjectile;
15 inline static constexpr auto FORMTYPE = FormType::ProjectileGrenade;
16
18 {
19 enum RecordFlag : std::uint32_t
20 {
21 };
22 };
23
24 ~GrenadeProjectile() override; // 00
25
26 // override (Projectile)
27 void SaveGame(BGSSaveFormBuffer* a_buf) override; // 0E
28 void LoadGame(BGSLoadFormBuffer* a_buf) override; // 0F
29 void InitLoadGame(BGSLoadFormBuffer* a_buf) override; // 10
30 void FinishLoadGame(BGSLoadFormBuffer* a_buf) override; // 11
31 void Revert(BGSLoadFormBuffer* a_buf) override; // 12
32 BGSDecalGroup* GetDecalGroup() const override; // 9F - { return decalGroup; }
33 bool IsGrenadeProjectile() override; // A3 - { return 1; }
34 void OnKill() override; // A8
35 void Process3D() override; // A9
36 void UpdateImpl(float a_delta) override; // AB
37 void Unk_AE(void) override; // AE
38 void ReportHavokDeactivation() override; // B2
39 bool TurnOff(Actor* a_owner, bool a_noDeactivateSound) override; // B3
40 bool IsPermanent() const override; // B4
41 bool TargetsWholeBody() override; // BA - { return 1; }
42 std::uint32_t GetCollisionGroup() override; // BB
43 void AddImpact(TESObjectREFR* a_ref, const NiPoint3& a_targetLoc, const NiPoint3& a_velocity, hkpCollidable* a_collidable, std::int32_t a_arg6, std::uint32_t a_arg7) override; // BD
44 void OnTriggerEnter() override; // BF - { flags |= 1 << 30; }
45 void Handle3DLoaded() override; // C0
46
47 // members
50 std::uint8_t pad1E1; // 1E1
51 std::uint16_t pad1E2; // 1E2
52 std::uint32_t pad1E4; // 1E4
53 };
54#ifndef SKYRIM_SUPPORT_AE
55 static_assert(sizeof(GrenadeProjectile) == 0x1E8);
56#else
57 static_assert(sizeof(GrenadeProjectile) == 0x1F0);
58#endif
59}
Definition Actor.h:133
Definition BGSLoadFormBuffer.h:11
Definition BGSSaveFormBuffer.h:8
Definition GrenadeProjectile.h:11
void SaveGame(BGSSaveFormBuffer *a_buf) override
std::uint16_t pad1E2
Definition GrenadeProjectile.h:51
void InitLoadGame(BGSLoadFormBuffer *a_buf) override
void LoadGame(BGSLoadFormBuffer *a_buf) override
bool IsGrenadeProjectile() override
~GrenadeProjectile() override
void AddImpact(TESObjectREFR *a_ref, const NiPoint3 &a_targetLoc, const NiPoint3 &a_velocity, hkpCollidable *a_collidable, std::int32_t a_arg6, std::uint32_t a_arg7) override
void Process3D() override
bool collisionGroupReset
Definition GrenadeProjectile.h:49
std::uint32_t GetCollisionGroup() override
void OnKill() override
BGSDecalGroup * GetDecalGroup() const override
bool IsPermanent() const override
bool TargetsWholeBody() override
BGSDecalGroup * decalGroup
Definition GrenadeProjectile.h:48
std::uint32_t pad1E4
Definition GrenadeProjectile.h:52
bool TurnOff(Actor *a_owner, bool a_noDeactivateSound) override
void UpdateImpl(float a_delta) override
static constexpr auto RTTI
Definition GrenadeProjectile.h:13
void FinishLoadGame(BGSLoadFormBuffer *a_buf) override
void ReportHavokDeactivation() override
static constexpr auto VTABLE
Definition GrenadeProjectile.h:14
void Revert(BGSLoadFormBuffer *a_buf) override
std::uint8_t pad1E1
Definition GrenadeProjectile.h:50
void Unk_AE(void) override
void OnTriggerEnter() override
void Handle3DLoaded() override
static constexpr auto FORMTYPE
Definition GrenadeProjectile.h:15
Definition NiPoint3.h:6
Definition Projectile.h:30
Definition TESObjectREFR.h:114
Definition hkpCollidable.h:13
Definition AbsorbEffect.h:6
constexpr std::array< REL::ID, 4 > VTABLE_GrenadeProjectile
Definition Offsets_VTABLE.h:11723
constexpr REL::ID RTTI_GrenadeProjectile(static_cast< std::uint64_t >(687506))
Definition BGSDecalGroup.h:61
Definition GrenadeProjectile.h:18
RecordFlag
Definition GrenadeProjectile.h:20