CommonLibSSE NG
Loading...
Searching...
No Matches
NiStream.h
Go to the documentation of this file.
1#pragma once
2
4#include "RE/B/BSTArray.h"
6#include "RE/N/NiTArray.h"
8
9namespace RE
10{
11 class NiBinaryStream;
12 class NiObjectGroup;
13
15 {
16 public:
17 // members
18 std::uint32_t version; // 00
19 char author[64]; // 04
20 char processScript[64]; // 44
21 char exportScript[64]; // 84
22 std::uint32_t padC4; // C4
23 };
24 static_assert(sizeof(BSStreamHeader) == 0xC8);
25
27 {
28 public:
29 inline static constexpr auto RTTI = RTTI_NiStream;
30 inline static constexpr auto VTABLE = VTABLE_NiStream;
31
32 virtual ~NiStream(); // 00
33
34 // add
35 virtual bool Load1(NiBinaryStream* a_stream); // 01
36 virtual bool Load2(char* a_buffer, std::uint64_t a_len); // 02
37 virtual bool Load3(const char* a_path); // 03
38 virtual bool Save1(NiBinaryStream* a_stream); // 04
39 virtual bool Save2(char*& a_path, std::uint64_t& a_len); // 05
40 virtual bool Save3(const char* a_path); // 06
41 virtual void Unk_07(void); // 07 - { return 0; }
42 virtual bool RegisterFixedString(const BSFixedString& a_fixedString); // 08
43 virtual bool RegisterSaveObject(NiObject* a_object); // 09
44 virtual bool ChangeObject(NiObject* a_object); // 0A
45 virtual std::uint32_t GetLinkIDFromObject(const NiObject* a_object); // 0B
46 virtual void SaveLinkID(const NiObject* a_object); // 0C
47 virtual bool LoadHeader(); // 0D
48 virtual void SaveHeader(); // 0E
49 virtual bool LoadStream(); // 0F
50 virtual void SaveStream(); // 10
51 virtual void RegisterObjects(); // 11
52 virtual void LoadTopLevelObjects(); // 12
53 virtual void SaveTopLevelObjects(); // 13
54 virtual bool LoadObject(); // 14
55 virtual std::uint64_t PreSaveObjectSizeTable(); // 15
56 virtual bool SaveObjectSizeTable(std::uint64_t a_size); // 16
57 virtual bool LoadObjectSizeTable(); // 17
58
59 // members
62 std::uint32_t nifMaxVersion; // 100
63 std::uint32_t nifMaxUserDefinedVersion; // 104
64 char inputFilePath[MAX_PATH]; // 108
65 std::uint16_t unk20C; // 20C
66 std::uint16_t unk20E; // 20E
67 std::uint64_t unk210; // 210
74 std::uint32_t linkIndex; // 2A8
75 std::uint32_t linkBlockIndex; // 2AC
77 std::uint16_t niAVObjectFlags; // 2D0
78 std::uint16_t niTimeControllerFlags; // 2D2
79 std::uint16_t niPropertyFlags; // 2D4
80 std::uint32_t unk2D8; // 2D8
81 bool unk2DC; // 2DC
82 std::uint32_t load; // 2E0
83 std::uint32_t link; // 2E4
84 std::uint32_t postLink; // 2E8
85 std::uint64_t unk2F0; // 2F0
86 std::uint64_t unk2F8; // 2F8
87 std::uint32_t unk300; // 300
88 std::uint32_t unk304; // 304
89 std::int32_t unk308; // 308
91 std::uint32_t lastError; // 410
93 char filePath[MAX_PATH]; // 518
94 };
95 static_assert(sizeof(NiStream) == 0x620);
96}
#define MAX_PATH
Definition WinAPI.h:574
Definition BSTArray.h:377
Definition NiBinaryStream.h:6
Definition NiObject.h:37
Definition NiStream.h:27
NiTLargeObjectArray< NiPointer< NiObject > > topObjects
Definition NiStream.h:70
std::uint32_t unk2D8
Definition NiStream.h:80
virtual bool Save2(char *&a_path, std::uint64_t &a_len)
virtual std::uint64_t PreSaveObjectSizeTable()
virtual bool LoadStream()
NiTLargeObjectArray< NiPointer< NiObject > > objects
Definition NiStream.h:68
virtual bool RegisterSaveObject(NiObject *a_object)
std::uint16_t niTimeControllerFlags
Definition NiStream.h:78
virtual bool Save3(const char *a_path)
NiTLargeObjectArray< BSFixedString > fixedStrings
Definition NiStream.h:71
char lastLoadedRTTI[MAX_PATH]
Definition NiStream.h:90
char inputFilePath[MAX_PATH]
Definition NiStream.h:64
std::uint32_t nifMaxVersion
Definition NiStream.h:62
std::uint32_t linkIndex
Definition NiStream.h:74
virtual void SaveHeader()
static constexpr auto RTTI
Definition NiStream.h:29
virtual void RegisterObjects()
static constexpr auto VTABLE
Definition NiStream.h:30
std::uint32_t unk300
Definition NiStream.h:87
virtual void SaveLinkID(const NiObject *a_object)
BSTSmallArray< NiObjectGroup > groups
Definition NiStream.h:61
virtual bool ChangeObject(NiObject *a_object)
virtual bool Load3(const char *a_path)
virtual bool LoadObjectSizeTable()
virtual bool Save1(NiBinaryStream *a_stream)
std::uint32_t nifMaxUserDefinedVersion
Definition NiStream.h:63
virtual bool SaveObjectSizeTable(std::uint64_t a_size)
virtual bool LoadObject()
std::int32_t unk308
Definition NiStream.h:89
std::uint32_t load
Definition NiStream.h:82
virtual void SaveStream()
virtual void SaveTopLevelObjects()
std::uint32_t lastError
Definition NiStream.h:91
virtual bool Load1(NiBinaryStream *a_stream)
NiTPointerMap< NiObject const *, std::uint32_t > registerMap
Definition NiStream.h:76
virtual bool LoadHeader()
std::uint32_t link
Definition NiStream.h:83
NiBinaryStream * oStr
Definition NiStream.h:73
std::uint32_t linkBlockIndex
Definition NiStream.h:75
char lastErrorMessage[MAX_PATH]
Definition NiStream.h:92
std::uint32_t postLink
Definition NiStream.h:84
std::uint32_t unk304
Definition NiStream.h:88
std::uint16_t niPropertyFlags
Definition NiStream.h:79
NiBinaryStream * iStr
Definition NiStream.h:72
virtual bool Load2(char *a_buffer, std::uint64_t a_len)
virtual void Unk_07(void)
virtual ~NiStream()
std::uint16_t niAVObjectFlags
Definition NiStream.h:77
virtual std::uint32_t GetLinkIDFromObject(const NiObject *a_object)
BSStreamHeader header
Definition NiStream.h:60
std::uint64_t unk2F0
Definition NiStream.h:85
std::uint16_t unk20E
Definition NiStream.h:66
virtual void LoadTopLevelObjects()
char filePath[MAX_PATH]
Definition NiStream.h:93
virtual bool RegisterFixedString(const BSFixedString &a_fixedString)
std::uint64_t unk210
Definition NiStream.h:67
std::uint16_t unk20C
Definition NiStream.h:65
bool unk2DC
Definition NiStream.h:81
std::uint64_t unk2F8
Definition NiStream.h:86
NiTLargePrimitiveArray< std::uint32_t > objectSizes
Definition NiStream.h:69
Definition NiTArray.h:262
Definition NiTArray.h:272
Definition NiTPointerMap.h:10
Definition AbsorbEffect.h:6
constexpr REL::VariantID RTTI_NiStream(684798, 392491, 0x1ed9fd8)
constexpr std::array< REL::VariantID, 1 > VTABLE_NiStream
Definition Offsets_VTABLE.h:5510
Definition NiStream.h:15
char exportScript[64]
Definition NiStream.h:21
char processScript[64]
Definition NiStream.h:20
std::uint32_t padC4
Definition NiStream.h:22
std::uint32_t version
Definition NiStream.h:18
char author[64]
Definition NiStream.h:19