CommonLibSSE (powerof3)
Loading...
Searching...
No Matches
BeamProjectile.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/B/BSTEvent.h"
4#include "RE/F/FormTypes.h"
5#include "RE/P/Projectile.h"
6
7namespace RE
8{
9 class BSProceduralGeomEvent;
10 struct BeamProjectileImpactEvent;
11
13 public Projectile, // 000
14 public BSTEventSource<BeamProjectileImpactEvent>, // 1E0
15 public BSTEventSink<BSProceduralGeomEvent> // 1D8
16 {
17 public:
18 inline static constexpr auto RTTI = RTTI_BeamProjectile;
19 inline static constexpr auto VTABLE = VTABLE_BeamProjectile;
20 inline static constexpr auto FORMTYPE = FormType::ProjectileBeam;
21
23 {
24 enum RecordFlag : std::uint32_t
25 {
26 };
27 };
28
29 ~BeamProjectile() override; // 00
30
31 // override (Projectile)
32 void SaveGame(BGSSaveFormBuffer* a_buf) override; // 0E
33 void LoadGame(BGSLoadFormBuffer* a_buf) override; // 0F
34 void InitLoadGame(BGSLoadFormBuffer* a_buf) override; // 10
35 void FinishLoadGame(BGSLoadFormBuffer* a_buf) override; // 11
36 void Revert(BGSLoadFormBuffer* a_buf) override; // 12
37 bool IsBeamProjectile() override; // A5
38 void Process3D() override; // A9
39 void UpdateImpl(float a_delta) override; // AB
40 bool GetKillOnCollision() override; // B8
41 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
42 void Handle3DLoaded() override; // C0
43 bool ShouldUseDesiredTarget() override; // C1
44
45 // override (BSTEventSink<BSProceduralGeomEvent>)
46 BSEventNotifyControl ProcessEvent(const BSProceduralGeomEvent* a_event, BSTEventSource<BSProceduralGeomEvent>* a_eventSource) override; // 01
47
48 // members
49 std::uint64_t unk238; // 238
50 };
51#ifndef SKYRIM_SUPPORT_AE
52 static_assert(sizeof(BeamProjectile) == 0x240);
53#else
54 static_assert(sizeof(BeamProjectile) == 0x248);
55#endif
56}
Definition BGSLoadFormBuffer.h:11
Definition BGSSaveFormBuffer.h:8
Definition BSTEvent.h:185
Definition BSTEvent.h:19
Definition BeamProjectile.h:16
std::uint64_t unk238
Definition BeamProjectile.h:49
void LoadGame(BGSLoadFormBuffer *a_buf) override
void Handle3DLoaded() override
void SaveGame(BGSSaveFormBuffer *a_buf) 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
bool ShouldUseDesiredTarget() override
BSEventNotifyControl ProcessEvent(const BSProceduralGeomEvent *a_event, BSTEventSource< BSProceduralGeomEvent > *a_eventSource) override
void UpdateImpl(float a_delta) override
void InitLoadGame(BGSLoadFormBuffer *a_buf) override
static constexpr auto RTTI
Definition BeamProjectile.h:18
void FinishLoadGame(BGSLoadFormBuffer *a_buf) override
~BeamProjectile() override
void Process3D() override
static constexpr auto FORMTYPE
Definition BeamProjectile.h:20
static constexpr auto VTABLE
Definition BeamProjectile.h:19
void Revert(BGSLoadFormBuffer *a_buf) override
bool IsBeamProjectile() override
bool GetKillOnCollision() override
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, 5 > VTABLE_BeamProjectile
Definition Offsets_VTABLE.h:10609
constexpr REL::ID RTTI_BeamProjectile(static_cast< std::uint64_t >(687499))
BSEventNotifyControl
Definition BSTEvent.h:12
Definition BeamProjectile.h:23
RecordFlag
Definition BeamProjectile.h:25