CommonLibSSE NG
Loading...
Searching...
No Matches
NiStringsExtraData.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/N/NiExtraData.h"
4
5namespace RE
6{
8 {
9 public:
10 inline static constexpr auto RTTI = RTTI_NiStringsExtraData;
11 inline static auto Ni_RTTI = NiRTTI_NiStringsExtraData;
12 inline static constexpr auto VTABLE = VTABLE_NiStringsExtraData;
13
14 ~NiStringsExtraData() 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 NiStringsExtraData* Create(const BSFixedString& a_name, const std::vector<BSFixedString>& a_strings);
26 [[nodiscard]] std::optional<std::uint32_t> GetIndex(const BSFixedString& a_element) const;
27 bool Insert(const BSFixedString& a_element);
28 bool Remove(const BSFixedString& a_element);
29 bool Replace(const BSFixedString& a_from, const BSFixedString& a_to);
30
31 // members
32 std::uint32_t size; // 18
33 std::uint32_t pad1C; // 1C
34 char** value; // 20
35
36 private:
37 static void copy_string(char*& a_value, const BSFixedString& a_string);
38 static void copy_string(char*& a_value, char* a_copyValue);
39 };
40 static_assert(sizeof(NiStringsExtraData) == 0x28);
41}
Definition NiCloningProcess.h:10
Definition NiExtraData.h:9
Definition NiObject.h:37
Definition NiRTTI.h:6
Definition NiStream.h:27
Definition NiStringsExtraData.h:8
static NiStringsExtraData * Create(const BSFixedString &a_name, const std::vector< BSFixedString > &a_strings)
bool IsEqual(NiObject *a_object) override
NiObject * CreateClone(NiCloningProcess &a_cloning) override
bool Replace(const BSFixedString &a_from, const BSFixedString &a_to)
static constexpr auto RTTI
Definition NiStringsExtraData.h:10
void LinkObject(NiStream &a_stream) override
char ** value
Definition NiStringsExtraData.h:34
static auto Ni_RTTI
Definition NiStringsExtraData.h:11
std::uint32_t pad1C
Definition NiStringsExtraData.h:33
const NiRTTI * GetRTTI() const override
void LoadBinary(NiStream &a_stream) override
bool Insert(const BSFixedString &a_element)
bool Remove(const BSFixedString &a_element)
void SaveBinary(NiStream &a_stream) override
~NiStringsExtraData() override
static constexpr auto VTABLE
Definition NiStringsExtraData.h:12
std::uint32_t size
Definition NiStringsExtraData.h:32
bool RegisterStreamables(NiStream &a_stream) override
std::optional< std::uint32_t > GetIndex(const BSFixedString &a_element) const
Definition AbsorbEffect.h:6
constexpr REL::VariantID RTTI_NiStringsExtraData(690423, 398278, 0x1f61e80)
constexpr std::array< REL::VariantID, 1 > VTABLE_NiStringsExtraData
Definition Offsets_VTABLE.h:5530
constexpr REL::VariantID NiRTTI_NiStringsExtraData(523925, 410505, 0x316ad88)