CommonLibVR
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 BSPortalGraph;
12  class BSTriShape;
13  class NiAVObject;
14  class BSLensFlareRenderData;
15  class NiLight;
16 
17  class BSLight : public NiRefObject
18  {
19  public:
20  inline static constexpr auto RTTI = RTTI_BSLight;
21  inline static constexpr auto VTABLE = VTABLE_BSLight;
22 
23  struct ShapeData
24  {
25  std::uint64_t unk00; // 00
26  std::uint64_t unk08; // 08
28  };
29  static_assert(sizeof(ShapeData) == 0x18);
30 
31  struct Data
32  {
33  std::uint64_t unk00; // 00
34  std::uint64_t unk08; // 08
35  std::uint32_t unk10; // 10
36  ShapeData* data; // 18
37  };
38  static_assert(sizeof(Data) == 0x20);
39 
40  ~BSLight() override; // 00
41 
42  // add
43  virtual bool SetLight(NiLight* a_light); // 02
44  virtual bool IsShadowLight(); // 03
45 
46  // members
47  float luminance; // 010
48  float lodDimmer; // 014
49  Data unk018; // 018
50  std::uint64_t unk038; // 038
51  std::uint32_t unk040; // 040
52  bool pointLight; // 044
53  bool ambientLight; // 045
54  bool dynamic; // 046
55  bool portalStrict; // 047
58  std::uint32_t frustrumCull; // 05C
59  std::uint8_t unk060; // 060
60  bool affectLand; // 061
61  bool affectWater; // 062
62  bool neverFades; // 063
63  std::uint32_t unk064; // 064
64  std::uint64_t unk068; // 068
65  std::uint8_t unk070[96]; // 070
66  std::uint8_t unk0D0; // 0D0
67  std::uint8_t pad0D1; // 0D1
68  std::uint16_t pad0D2; // 0D2
69  std::uint32_t pad0D4; // 0D4
77  private:
78  KEEP_FOR_RE()
79  };
80  static_assert(sizeof(BSLight) == 0x140);
81 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BSCullingProcess.h:17
Definition: BSLensFlareRenderData.h:11
Definition: BSLight.h:18
std::uint32_t unk040
Definition: BSLight.h:51
NiPointer< NiLight > light
Definition: BSLight.h:56
std::uint32_t pad0D4
Definition: BSLight.h:69
bool ambientLight
Definition: BSLight.h:53
BSTArray< void * > unk108
Definition: BSLight.h:72
float luminance
Definition: BSLight.h:47
std::uint16_t pad0D2
Definition: BSLight.h:68
std::uint64_t unk038
Definition: BSLight.h:50
NiPoint3 worldTranslate
Definition: BSLight.h:57
std::uint32_t frustrumCull
Definition: BSLight.h:58
BSLensFlareRenderData * lensFlareData
Definition: BSLight.h:76
bool dynamic
Definition: BSLight.h:54
BSTArray< void * > unk0D8
Definition: BSLight.h:70
std::uint8_t unk070[96]
Definition: BSLight.h:65
virtual bool IsShadowLight()
std::uint32_t unk064
Definition: BSLight.h:63
virtual bool SetLight(NiLight *a_light)
bool portalStrict
Definition: BSLight.h:55
std::uint8_t unk060
Definition: BSLight.h:59
static constexpr auto RTTI
Definition: BSLight.h:20
BSTArray< void * > unk0F0
Definition: BSLight.h:71
std::uint8_t pad0D1
Definition: BSLight.h:67
bool affectLand
Definition: BSLight.h:60
std::uint8_t unk0D0
Definition: BSLight.h:66
std::uint64_t unk068
Definition: BSLight.h:64
bool affectWater
Definition: BSLight.h:61
float lodDimmer
Definition: BSLight.h:48
BSPortalGraph * portalGraph
Definition: BSLight.h:73
Data unk018
Definition: BSLight.h:49
~BSLight() override
static constexpr auto VTABLE
Definition: BSLight.h:21
BSCullingProcess * cullingProcess
Definition: BSLight.h:74
NiPointer< NiAVObject > objectNode
Definition: BSLight.h:75
bool pointLight
Definition: BSLight.h:52
bool neverFades
Definition: BSLight.h:62
Definition: BSPortalGraph.h:13
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:32
std::uint64_t unk08
Definition: BSLight.h:34
ShapeData * data
Definition: BSLight.h:36
std::uint32_t unk10
Definition: BSLight.h:35
std::uint64_t unk00
Definition: BSLight.h:33
Definition: BSLight.h:24
std::uint64_t unk08
Definition: BSLight.h:26
NiPointer< BSTriShape > fenceShape
Definition: BSLight.h:27
std::uint64_t unk00
Definition: BSLight.h:25