CommonLibSSE (powerof3)
BSLight.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSTArray.h"
4 #include "RE/N/NiPoint3.h"
5 #include "RE/N/NiRefObject.h"
6 #include "RE/N/NiSmartPointer.h"
7 
8 namespace RE
9 {
10  class BSCullingProcess;
11  class BSLensFlareRenderData;
12  class BSMultiBoundRoom;
13  class BSPortal;
14  class BSPortalGraph;
15  class BSPortalSharedNode;
16  class BSTriShape;
17  class NiAVObject;
18  class NiLight;
19 
20  class BSLight : public NiRefObject
21  {
22  public:
23  inline static constexpr auto RTTI = RTTI_BSLight;
24  inline static constexpr auto VTABLE = VTABLE_BSLight;
25 
26  struct ShapeData
27  {
28  std::uint64_t unk00; // 00
29  std::uint64_t unk08; // 08
31  };
32  static_assert(sizeof(ShapeData) == 0x18);
33 
34  struct Data
35  {
36  std::uint64_t unk00; // 00
37  std::uint64_t unk08; // 08
38  std::uint32_t unk10; // 10
39  ShapeData* data; // 18
40  };
41  static_assert(sizeof(Data) == 0x20);
42 
43  ~BSLight() override; // 00
44 
45  // add
46  virtual bool SetLight(NiLight* a_light); // 02
47  virtual bool IsShadowLight(); // 03
48 
49  // members
50  float luminance; // 010
51  float lodDimmer; // 014
52  Data unk018; // 018
53  std::uint64_t unk038; // 038
54  std::uint32_t unk040; // 040
55  bool pointLight; // 044
56  bool ambientLight; // 045
57  bool dynamic; // 046
58  bool portalStrict; // 047
61  std::uint32_t frustrumCull; // 05C
62  std::uint8_t unk060; // 060
63  bool affectLand; // 061
64  bool affectWater; // 062
65  bool neverFades; // 063
66  std::uint32_t unk064; // 064
67  std::uint64_t unk068; // 068
68  std::uint8_t unk070[96]; // 070
69  std::uint8_t unk0D0; // 0D0
70  std::uint8_t pad0D1; // 0D1
71  std::uint16_t pad0D2; // 0D2
72  std::uint32_t pad0D4; // 0D4
80  };
81  static_assert(sizeof(BSLight) == 0x140);
82 }
Definition: BSCullingProcess.h:17
Definition: BSLensFlareRenderData.h:11
Definition: BSLight.h:21
std::uint32_t unk040
Definition: BSLight.h:54
NiPointer< NiLight > light
Definition: BSLight.h:59
std::uint32_t pad0D4
Definition: BSLight.h:72
BSTArray< BSPortalSharedNode * > portalSharedNodes
Definition: BSLight.h:75
bool ambientLight
Definition: BSLight.h:56
float luminance
Definition: BSLight.h:50
std::uint16_t pad0D2
Definition: BSLight.h:71
std::uint64_t unk038
Definition: BSLight.h:53
NiPoint3 worldTranslate
Definition: BSLight.h:60
std::uint32_t frustrumCull
Definition: BSLight.h:61
BSLensFlareRenderData * lensFlareData
Definition: BSLight.h:79
bool dynamic
Definition: BSLight.h:57
BSTArray< BSPortal * > portals
Definition: BSLight.h:74
BSTArray< BSMultiBoundRoom * > rooms
Definition: BSLight.h:73
std::uint8_t unk070[96]
Definition: BSLight.h:68
virtual bool IsShadowLight()
std::uint32_t unk064
Definition: BSLight.h:66
virtual bool SetLight(NiLight *a_light)
bool portalStrict
Definition: BSLight.h:58
std::uint8_t unk060
Definition: BSLight.h:62
static constexpr auto RTTI
Definition: BSLight.h:23
std::uint8_t pad0D1
Definition: BSLight.h:70
bool affectLand
Definition: BSLight.h:63
std::uint8_t unk0D0
Definition: BSLight.h:69
std::uint64_t unk068
Definition: BSLight.h:67
bool affectWater
Definition: BSLight.h:64
float lodDimmer
Definition: BSLight.h:51
BSPortalGraph * portalGraph
Definition: BSLight.h:76
Data unk018
Definition: BSLight.h:52
~BSLight() override
static constexpr auto VTABLE
Definition: BSLight.h:24
BSCullingProcess * cullingProcess
Definition: BSLight.h:77
NiPointer< NiAVObject > objectNode
Definition: BSLight.h:78
bool pointLight
Definition: BSLight.h:55
bool neverFades
Definition: BSLight.h:65
Definition: BSPortalGraph.h:17
Definition: NiLight.h:10
Definition: NiPoint3.h:6
Definition: NiSmartPointer.h:9
Definition: NiRefObject.h:8
Definition: AbsorbEffect.h:6
constexpr std::array< REL::ID, 1 > VTABLE_BSLight
Definition: Offsets_VTABLE.h:9199
constexpr REL::ID RTTI_BSLight(static_cast< std::uint64_t >(692063))
Definition: BSLight.h:35
std::uint64_t unk08
Definition: BSLight.h:37
ShapeData * data
Definition: BSLight.h:39
std::uint32_t unk10
Definition: BSLight.h:38
std::uint64_t unk00
Definition: BSLight.h:36
Definition: BSLight.h:27
std::uint64_t unk08
Definition: BSLight.h:29
NiPointer< BSTriShape > fenceShape
Definition: BSLight.h:30
std::uint64_t unk00
Definition: BSLight.h:28