CommonLibSSE NG
BSTerrainEffect.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSPointerHandle.h"
4 #include "RE/B/BSTEvent.h"
5 #include "RE/B/BSTempEffect.h"
6 #include "RE/N/NiQuaternion.h"
7 #include "RE/N/NiSmartPointer.h"
8 
9 namespace RE
10 {
11  class bhkWorld;
12  class NiAVObject;
13  struct PositionPlayerEvent;
14 
16  public BSTempEffect, // 00
17  public BSTEventSink<PositionPlayerEvent> // 30
18  {
19  public:
20  inline static constexpr auto RTTI = RTTI_BSTerrainEffect;
21  inline static constexpr auto TYPE = TEMP_EFFECT_TYPE::kTerrain;
22 
23  ~BSTerrainEffect() override; // 00
24 
25  // override (BSTempEffect)
26  bool Update(float a_arg1) override; // 28
27  [[nodiscard]] bool GetManagerHandlesSaveLoad() const override; // 2A
28  [[nodiscard]] TEMP_EFFECT_TYPE GetType() const override; // 2C - { return 0; }
29  void SaveGame(BGSSaveGameBuffer* a_buf) override; // 2D
30  void LoadGame(BGSLoadGameBuffer* a_buf) override; // 2E
31 
32  // add
33  virtual bool SetupTerrainEffect(const char* a_modelName, ObjectRefHandle& a_handle, std::uint32_t a_collisionFilter);
34 
35  // override (BSTEventSink<PositionPlayerEvent>)
36  BSEventNotifyControl ProcessEvent(const PositionPlayerEvent* a_event, BSTEventSource<PositionPlayerEvent>* a_eventSource) override; // 01 - { return BSEventNotifyControl::kContinue; }
37 
38  // members;
41  std::uint32_t unk54; // 54
45  NiPoint3 unk90; // 90
48  std::uint32_t collisionFilter; // A8
49  std::uint32_t unkAC; // AC
51  };
52  static_assert(sizeof(BSTerrainEffect) == 0xB8);
53 }
Definition: BGSLoadGameBuffer.h:6
Definition: BGSSaveGameBuffer.h:10
Definition: BSTEvent.h:143
Definition: BSTempEffect.h:29
Definition: BSTerrainEffect.h:18
virtual bool SetupTerrainEffect(const char *a_modelName, ObjectRefHandle &a_handle, std::uint32_t a_collisionFilter)
static constexpr auto RTTI
Definition: BSTerrainEffect.h:20
~BSTerrainEffect() override
NiPoint3 location
Definition: BSTerrainEffect.h:40
bool Update(float a_arg1) override
TEMP_EFFECT_TYPE GetType() const override
std::uint32_t collisionFilter
Definition: BSTerrainEffect.h:48
std::uint32_t unkAC
Definition: BSTerrainEffect.h:49
ObjectRefHandle unk9C
Definition: BSTerrainEffect.h:46
NiPoint3 unk90
Definition: BSTerrainEffect.h:45
NiPointer< bhkWorld > physicsWorld
Definition: BSTerrainEffect.h:47
static constexpr auto TYPE
Definition: BSTerrainEffect.h:21
NiPointer< NiAVObject > followNode
Definition: BSTerrainEffect.h:50
bool GetManagerHandlesSaveLoad() const override
NiPointer< NiAVObject > effectModel
Definition: BSTerrainEffect.h:44
std::uint32_t unk54
Definition: BSTerrainEffect.h:41
BSTArray< void * > unk70
Definition: BSTerrainEffect.h:43
BSTArray< void * > unk58
Definition: BSTerrainEffect.h:42
void SaveGame(BGSSaveGameBuffer *a_buf) override
NiQuaternion orientation
Definition: BSTerrainEffect.h:39
BSEventNotifyControl ProcessEvent(const PositionPlayerEvent *a_event, BSTEventSource< PositionPlayerEvent > *a_eventSource) override
void LoadGame(BGSLoadGameBuffer *a_buf) override
Definition: NiPoint3.h:6
Definition: NiSmartPointer.h:9
Definition: NiQuaternion.h:6
Definition: AbsorbEffect.h:6
TEMP_EFFECT_TYPE
Definition: BSTempEffect.h:13
constexpr REL::VariantID RTTI_BSTerrainEffect(686060, 393869, 0x1ef52e8)
BSEventNotifyControl
Definition: BSTEvent.h:12
Definition: PositionPlayerEvent.h:7