CommonLibSSE NG
NiFloatsExtraData.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/N/NiExtraData.h"
4 
5 namespace RE
6 {
8  {
9  public:
10  inline static constexpr auto RTTI = RTTI_NiFloatsExtraData;
11  inline static auto Ni_RTTI = NiRTTI_NiFloatsExtraData;
12  inline static constexpr auto VTABLE = VTABLE_NiFloatsExtraData;
13 
14  ~NiFloatsExtraData() override; // 00
15 
16  // override (NiExtraData)
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 - { NiExtraData::LinkObject(a_stream); }
21  bool RegisterStreamables(NiStream& a_stream) override; // 1A - { return NiExtraData::RegisterStreamables(a_stream); }
22  void SaveBinary(NiStream& a_stream) override; // 1B
23  bool IsEqual(NiObject* a_object) override; // 1C
24 
25  static NiFloatsExtraData* Create(const BSFixedString& a_name, const std::vector<float>& a_Floats);
26 
27  [[nodiscard]] std::optional<std::uint32_t> GetIndex(float a_element) const;
28  bool Insert(float a_element);
29  bool Remove(float a_element);
30 
31  // members
32  std::uint32_t size; // 18
33  std::uint32_t pad; // 1C
34  float* value; // 20
35  };
36  static_assert(sizeof(NiFloatsExtraData) == 0x28);
37 }
Definition: NiCloningProcess.h:10
Definition: NiExtraData.h:9
Definition: NiFloatsExtraData.h:8
std::optional< std::uint32_t > GetIndex(float a_element) const
void SaveBinary(NiStream &a_stream) override
std::uint32_t size
Definition: NiFloatsExtraData.h:32
void LoadBinary(NiStream &a_stream) override
bool RegisterStreamables(NiStream &a_stream) override
static auto Ni_RTTI
Definition: NiFloatsExtraData.h:11
float * value
Definition: NiFloatsExtraData.h:34
~NiFloatsExtraData() override
bool IsEqual(NiObject *a_object) override
NiObject * CreateClone(NiCloningProcess &a_cloning) override
static constexpr auto RTTI
Definition: NiFloatsExtraData.h:10
bool Remove(float a_element)
std::uint32_t pad
Definition: NiFloatsExtraData.h:33
bool Insert(float a_element)
static NiFloatsExtraData * Create(const BSFixedString &a_name, const std::vector< float > &a_Floats)
static constexpr auto VTABLE
Definition: NiFloatsExtraData.h:12
const NiRTTI * GetRTTI() const override
void LinkObject(NiStream &a_stream) override
Definition: NiObject.h:37
Definition: NiRTTI.h:6
Definition: NiStream.h:29
Definition: AbsorbEffect.h:6
constexpr REL::VariantID RTTI_NiFloatsExtraData(690455, 398310, 0x1f62420)
constexpr REL::VariantID NiRTTI_NiFloatsExtraData(523996, 410576, 0x316c1b8)
constexpr std::array< REL::VariantID, 1 > VTABLE_NiFloatsExtraData
Definition: Offsets_VTABLE.h:5566