CommonLibSSE (powerof3)
BSSkyShaderProperty.h
Go to the documentation of this file.
1 #pragma once
2 
4 
5 namespace RE
6 {
8  {
9  public:
10  inline static constexpr auto RTTI = RTTI_BSSkyShaderProperty;
11  inline static auto Ni_RTTI = NiRTTI_BSSkyShaderProperty;
12  inline static auto VTABLE = VTABLE_BSSkyShaderProperty;
13 
14  ~BSSkyShaderProperty() override; // 00
15 
16  // override (BSShaderProperty)
17  const NiRTTI* GetRTTI() const override; // 02
18  NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17
19  void LoadBinary(NiStream& a_stream) override; // 18
20  void LinkObject(NiStream& a_stream) override; // 19
21  bool RegisterStreamables(NiStream& a_stream) override; // 1A
22  void SaveBinary(NiStream& a_stream) override; // 1B
23  bool IsEqual(NiObject* a_object) override; // 1C
24  void PostLinkObject(NiStream& a_stream) override; // 1E
25  RenderPassArray* GetRenderPasses(BSGeometry* a_geometry, std::uint32_t a_arg2, BSShaderAccumulator* a_accumulator) override; // 2A
26  std::int32_t ForEachTexture(ForEachVisitor& a_visitor) override; // 33
27  virtual std::int32_t QShader() override; // 35
28  [[nodiscard]] virtual NiSourceTexture* GetBaseTexture() override; // 37
29 
30  enum SkyObject
31  {
32  SO_SUN = 0x0,
33  SO_SUN_GLARE = 0x1,
35  SO_CLOUDS = 0x3,
36  SO_SKYQUAD = 0x4,
37  SO_STARS = 0x5,
38  SO_MOON = 0x6,
40  };
41 
42  // members
46  std::uint8_t unk0A8[0x10]; // 0A8
47  float fBlendValue; // 0B8
48  std::uint16_t usCloudLayer; // 0BC
49  bool bFadeSecondTexture; // 0BE
51  };
52  static_assert(sizeof(BSSkyShaderProperty) == 0xC8);
53 }
Definition: BSGeometry.h:15
Definition: BSShaderProperty.h:27
Definition: BSShaderProperty.h:17
Definition: BSSkyShaderProperty.h:8
void PostLinkObject(NiStream &a_stream) override
bool IsEqual(NiObject *a_object) override
RE::NiColorA kBlendColor
Definition: BSSkyShaderProperty.h:43
std::uint16_t usCloudLayer
Definition: BSSkyShaderProperty.h:48
bool bFadeSecondTexture
Definition: BSSkyShaderProperty.h:49
std::uint8_t unk0A8[0x10]
Definition: BSSkyShaderProperty.h:46
void LinkObject(NiStream &a_stream) override
NiObject * CreateClone(NiCloningProcess &a_cloning) override
RE::NiSourceTexture * pBaseTexture
Definition: BSSkyShaderProperty.h:44
~BSSkyShaderProperty() override
void SaveBinary(NiStream &a_stream) override
virtual NiSourceTexture * GetBaseTexture() override
bool RegisterStreamables(NiStream &a_stream) override
static auto VTABLE
Definition: BSSkyShaderProperty.h:12
static constexpr auto RTTI
Definition: BSSkyShaderProperty.h:10
virtual std::int32_t QShader() override
static auto Ni_RTTI
Definition: BSSkyShaderProperty.h:11
RE::NiSourceTexture * pBlendTexture
Definition: BSSkyShaderProperty.h:45
float fBlendValue
Definition: BSSkyShaderProperty.h:47
std::int32_t ForEachTexture(ForEachVisitor &a_visitor) override
const NiRTTI * GetRTTI() const override
SkyObject
Definition: BSSkyShaderProperty.h:31
@ SO_SKYQUAD
Definition: BSSkyShaderProperty.h:36
@ SO_STARS
Definition: BSSkyShaderProperty.h:37
@ SO_CLOUDS
Definition: BSSkyShaderProperty.h:35
@ SO_ATMOSPHERE
Definition: BSSkyShaderProperty.h:34
@ SO_SUN
Definition: BSSkyShaderProperty.h:32
@ SO_MOON
Definition: BSSkyShaderProperty.h:38
@ SO_SUN_GLARE
Definition: BSSkyShaderProperty.h:33
@ SO_MOON_SHADOW
Definition: BSSkyShaderProperty.h:39
RenderPassArray * GetRenderPasses(BSGeometry *a_geometry, std::uint32_t a_arg2, BSShaderAccumulator *a_accumulator) override
void LoadBinary(NiStream &a_stream) override
REX::EnumSet< SkyObject, std::uint32_t > uiSkyObjectType
Definition: BSSkyShaderProperty.h:50
Definition: NiCloningProcess.h:10
Definition: NiColor.h:281
Definition: NiObject.h:37
Definition: NiRTTI.h:6
Definition: NiSourceTexture.h:21
Definition: NiStream.h:29
Definition: AbsorbEffect.h:6
constexpr REL::ID NiRTTI_BSSkyShaderProperty(static_cast< std::uint64_t >(528205))
constexpr std::array< REL::ID, 1 > VTABLE_BSSkyShaderProperty
Definition: Offsets_VTABLE.h:9848
constexpr REL::ID RTTI_BSSkyShaderProperty(static_cast< std::uint64_t >(692046))
Definition: BSShaderProperty.h:39