CommonLibVR
BSTextureSet.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/N/NiObject.h"
4 #include "RE/N/NiSourceTexture.h"
5 
6 namespace RE
7 {
8  class BSTextureSet : public NiObject
9  {
10  public:
11  inline static constexpr auto RTTI = RTTI_BSTextureSet;
12  inline static constexpr auto Ni_RTTI = NiRTTI_BSTextureSet;
13  inline static constexpr auto VTABLE = VTABLE_BSTextureSet;
14 
15  struct Textures
16  {
17  enum Texture : std::uint32_t
18  {
19  kDiffuse = 0,
33 
34  kTotal
35  };
36  };
38 
39  ~BSTextureSet() override; // 00
40 
41  // override (NiObject)
42  const NiRTTI* GetRTTI() const override; // 02
43  void LoadBinary(NiStream& a_stream) override; // 18
44  void LinkObject(NiStream& a_stream) override; // 19
45  bool RegisterStreamables(NiStream& a_stream) override; // 1A
46  void SaveBinary(NiStream& a_stream) override; // 1B
47  bool IsEqual(NiObject* a_object) override; // 1C
48 
49  // add
50  virtual const char* GetTexturePath(Texture a_texture) = 0; // 25
51  virtual void SetTexture(Texture a_texture, NiSourceTexture* a_srcTexture) = 0; // 26
52  virtual void SetTexturePath(Texture a_texture, const char* a_path) = 0; // 27
53  private:
54  KEEP_FOR_RE()
55  };
56  static_assert(sizeof(BSTextureSet) == 0x10);
57 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BSTextureSet.h:9
void SaveBinary(NiStream &a_stream) override
static constexpr auto VTABLE
Definition: BSTextureSet.h:13
virtual const char * GetTexturePath(Texture a_texture)=0
const NiRTTI * GetRTTI() const override
virtual void SetTexturePath(Texture a_texture, const char *a_path)=0
static constexpr auto Ni_RTTI
Definition: BSTextureSet.h:12
void LoadBinary(NiStream &a_stream) override
bool RegisterStreamables(NiStream &a_stream) override
void LinkObject(NiStream &a_stream) override
~BSTextureSet() override
bool IsEqual(NiObject *a_object) override
static constexpr auto RTTI
Definition: BSTextureSet.h:11
virtual void SetTexture(Texture a_texture, NiSourceTexture *a_srcTexture)=0
Definition: NiObject.h:37
Definition: NiRTTI.h:6
Definition: NiSourceTexture.h:21
Definition: NiStream.h:29
Definition: AbsorbEffect.h:6
constexpr std::array< REL::ID, 1 > VTABLE_BSTextureSet
Definition: Offsets_VTABLE.h:10550
constexpr REL::ID NiRTTI_BSTextureSet(static_cast< std::uint64_t >(528103))
constexpr REL::ID RTTI_BSTextureSet(static_cast< std::uint64_t >(685302))
Definition: BSTextureSet.h:16
Texture
Definition: BSTextureSet.h:18
@ kMultilayer
Definition: BSTextureSet.h:28
@ kSubsurfaceTint
Definition: BSTextureSet.h:23
@ kHeight
Definition: BSTextureSet.h:26
@ kDetailMap
Definition: BSTextureSet.h:25
@ kEnvironmentMask
Definition: BSTextureSet.h:22
@ kTotal
Definition: BSTextureSet.h:34
@ kEnvironment
Definition: BSTextureSet.h:27
@ kBacklightMask
Definition: BSTextureSet.h:29
@ kDiffuse
Definition: BSTextureSet.h:19
@ kGlowMap
Definition: BSTextureSet.h:24
@ kUnused08
Definition: BSTextureSet.h:31
@ kNormal
Definition: BSTextureSet.h:20
@ kGloss
Definition: BSTextureSet.h:21
@ kUsedTotal
Definition: BSTextureSet.h:32
@ kSpecular
Definition: BSTextureSet.h:30