CommonLibSSE (powerof3)
Loading...
Searching...
No Matches
BSWaterShaderProperty.h
Go to the documentation of this file.
1#pragma once
2
4#include "RE/B/BSTArray.h"
5#include "RE/N/NiPlane.h"
6
7namespace RE
8{
10 {
11 public:
12 inline static constexpr auto RTTI = RTTI_BSWaterShaderProperty;
13 inline static constexpr auto Ni_RTTI = NiRTTI_BSWaterShaderProperty;
14 inline static constexpr auto VTABLE = VTABLE_BSWaterShaderProperty;
15
16 enum class WaterFlag
17 {
18 kNone = 0,
19 kUnderwater = 1 << 5,
20 kUseReflections = 1 << 6,
21 kUseCubemapReflections = 1 << 14,
22 kEnableFlowmap = 1 << 15,
23 kBlendNormals = 1 << 16
24 };
25
26 ~BSWaterShaderProperty() override; // 00
27
28 // override (BSShaderProperty)
29 const NiRTTI* GetRTTI() const override; // 02
30 NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17
31 void LoadBinary(NiStream& a_stream) override; // 18
32 void LinkObject(NiStream& a_stream) override; // 19
33 bool RegisterStreamables(NiStream& a_stream) override; // 1A
34 void SaveBinary(NiStream& a_stream) override; // 1B
35 bool IsEqual(NiObject* a_object) override; // 1C - { return false; }
36 void PostLinkObject(NiStream& a_stream) override; // 1E
37 RenderPassArray* GetRenderPasses(BSGeometry* a_geometry, std::uint32_t a_arg2, BSShaderAccumulator* a_accumulator) override; // 2A
38 void Unk_2C(void) override; // 2C // 2C
39 void Unk_2D(void) override; // 2D
40 void Unk_2F(void) override; // 2F
41 std::int32_t ForEachTexture(ForEachVisitor& a_visitor) override; // 33
42 void DoClearRenderPasses() override; // 34
43 std::int32_t QShader() override; // 35 - { return 17; }
44 BSShaderMaterial::Type GetMaterialType() override; // 3E - { return 3; }
45
46 // members
48 std::uint32_t unk8C; // 8C
49 std::uint64_t unk90; // 90
50 std::uint64_t unk98; // 98
52 std::uint64_t unkB0; // B0
53 std::uint8_t unkB8; // B8
54 std::uint8_t padB9; // B9
55 std::uint16_t padBA; // BA
56 std::uint16_t padBC; // BC
59 std::uint64_t unkD0; // D0
61 std::int32_t unkF0; // F0
62 std::uint32_t unkF4; // F4
63 std::uint8_t unkF8; // F8
64 std::uint8_t padF9; // F9
65 std::uint16_t padFA; // FA
66 std::uint16_t padFC; // FC
67 };
68 static_assert(sizeof(BSWaterShaderProperty) == 0x100);
69}
Definition EnumSet.h:9
Definition BSGeometry.h:15
Definition BSRenderPass.h:11
Type
Definition BSShaderMaterial.h:39
Definition BSShaderProperty.h:27
Definition BSShaderProperty.h:17
Definition BSTArray.h:378
Definition BSWaterShaderProperty.h:10
void Unk_2D(void) override
std::uint8_t unkF8
Definition BSWaterShaderProperty.h:63
~BSWaterShaderProperty() override
std::uint32_t unkF4
Definition BSWaterShaderProperty.h:62
BSShaderMaterial::Type GetMaterialType() override
std::uint64_t unk90
Definition BSWaterShaderProperty.h:49
NiPlane plane
Definition BSWaterShaderProperty.h:51
void DoClearRenderPasses() override
static constexpr auto VTABLE
Definition BSWaterShaderProperty.h:14
NiObject * CreateClone(NiCloningProcess &a_cloning) override
std::uint32_t unk8C
Definition BSWaterShaderProperty.h:48
void Unk_2F(void) override
void Unk_2C(void) override
static constexpr auto Ni_RTTI
Definition BSWaterShaderProperty.h:13
std::uint64_t unkB0
Definition BSWaterShaderProperty.h:52
const NiRTTI * GetRTTI() const override
std::int32_t QShader() override
std::uint64_t unk98
Definition BSWaterShaderProperty.h:50
RenderPassArray simpleRenderPassList
Definition BSWaterShaderProperty.h:58
WaterFlag
Definition BSWaterShaderProperty.h:17
BSTArray< void * > unkD8
Definition BSWaterShaderProperty.h:60
std::int32_t unkF0
Definition BSWaterShaderProperty.h:61
std::uint8_t padB9
Definition BSWaterShaderProperty.h:54
bool RegisterStreamables(NiStream &a_stream) override
static constexpr auto RTTI
Definition BSWaterShaderProperty.h:12
std::uint8_t unkB8
Definition BSWaterShaderProperty.h:53
void PostLinkObject(NiStream &a_stream) override
void SaveBinary(NiStream &a_stream) override
std::uint16_t padBA
Definition BSWaterShaderProperty.h:55
bool IsEqual(NiObject *a_object) override
std::uint8_t padF9
Definition BSWaterShaderProperty.h:64
REX::EnumSet< WaterFlag, std::uint32_t > waterFlags
Definition BSWaterShaderProperty.h:47
BSRenderPass * unkC0
Definition BSWaterShaderProperty.h:57
void LinkObject(NiStream &a_stream) override
std::uint16_t padFC
Definition BSWaterShaderProperty.h:66
std::uint16_t padFA
Definition BSWaterShaderProperty.h:65
std::uint64_t unkD0
Definition BSWaterShaderProperty.h:59
RenderPassArray * GetRenderPasses(BSGeometry *a_geometry, std::uint32_t a_arg2, BSShaderAccumulator *a_accumulator) override
std::uint16_t padBC
Definition BSWaterShaderProperty.h:56
void LoadBinary(NiStream &a_stream) override
std::int32_t ForEachTexture(ForEachVisitor &a_visitor) override
Definition NiCloningProcess.h:10
Definition NiObject.h:37
Definition NiPlane.h:8
Definition NiRTTI.h:6
Definition NiStream.h:29
Definition AbsorbEffect.h:6
constexpr REL::ID NiRTTI_BSWaterShaderProperty(static_cast< std::uint64_t >(527905))
constexpr std::array< REL::ID, 1 > VTABLE_BSWaterShaderProperty
Definition Offsets_VTABLE.h:10568
constexpr REL::ID RTTI_BSWaterShaderProperty(static_cast< std::uint64_t >(692031))
Definition BSShaderProperty.h:39