CommonLibVR
NiIntegersExtraData.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_NiIntegersExtraData;
11  inline static constexpr auto Ni_RTTI = NiRTTI_NiIntegersExtraData;
12  inline static constexpr auto VTABLE = VTABLE_NiIntegersExtraData;
13 
14  ~NiIntegersExtraData() 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 NiIntegersExtraData* Create(const BSFixedString& a_name, const std::vector<std::int32_t>& a_integers);
26 
27  [[nodiscard]] std::optional<std::uint32_t> GetIndex(std::int32_t a_element) const;
28  bool Insert(std::int32_t a_element);
29  bool Remove(std::int32_t a_element);
30 
31  // members
32  std::uint32_t size; // 18
33  std::uint32_t pad; // 1C
34  std::int32_t* value; // 20
35  private:
36  KEEP_FOR_RE()
37  };
38  static_assert(sizeof(NiIntegersExtraData) == 0x28);
39 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: NiCloningProcess.h:10
Definition: NiExtraData.h:9
Definition: NiIntegersExtraData.h:8
std::uint32_t size
Definition: NiIntegersExtraData.h:32
static constexpr auto RTTI
Definition: NiIntegersExtraData.h:10
bool Insert(std::int32_t a_element)
static constexpr auto Ni_RTTI
Definition: NiIntegersExtraData.h:11
bool Remove(std::int32_t a_element)
void LoadBinary(NiStream &a_stream) override
~NiIntegersExtraData() override
bool IsEqual(NiObject *a_object) override
static NiIntegersExtraData * Create(const BSFixedString &a_name, const std::vector< std::int32_t > &a_integers)
std::int32_t * value
Definition: NiIntegersExtraData.h:34
NiObject * CreateClone(NiCloningProcess &a_cloning) override
std::optional< std::uint32_t > GetIndex(std::int32_t a_element) const
const NiRTTI * GetRTTI() const override
std::uint32_t pad
Definition: NiIntegersExtraData.h:33
void SaveBinary(NiStream &a_stream) override
void LinkObject(NiStream &a_stream) override
static constexpr auto VTABLE
Definition: NiIntegersExtraData.h:12
bool RegisterStreamables(NiStream &a_stream) override
Definition: NiObject.h:37
Definition: NiRTTI.h:6
Definition: NiStream.h:29
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_NiIntegersExtraData(static_cast< std::uint64_t >(690458))
constexpr REL::ID NiRTTI_NiIntegersExtraData(static_cast< std::uint64_t >(524000))
constexpr std::array< REL::ID, 1 > VTABLE_NiIntegersExtraData
Definition: Offsets_VTABLE.h:12219