90 lines
5.7 KiB
C++
90 lines
5.7 KiB
C++
#pragma once
|
|
|
|
#include "RE/N/NiRefObject.h"
|
|
|
|
namespace RE
|
|
{
|
|
class bhkBlendCollisionObject;
|
|
class bhkLimitedHingeConstraint;
|
|
class bhkNiCollisionObject;
|
|
class bhkNPCollisionObject;
|
|
class bhkRigidBody;
|
|
class BSDynamicTriShape;
|
|
class BSFadeNode;
|
|
class BSGeometry;
|
|
class BSLines;
|
|
class BSMultiBoundNode;
|
|
class BSSegmentedTriShape;
|
|
class BSSubIndexTriShape;
|
|
class BSTriShape;
|
|
class NiCloningProcess;
|
|
class NiControllerManager;
|
|
class NiGeometry;
|
|
class NiLight;
|
|
class NiNode;
|
|
class NiObjectGroup;
|
|
class NiParticles;
|
|
class NiParticleSystem;
|
|
class NiRTTI;
|
|
class NiStream;
|
|
class NiSwitchNode;
|
|
class NiTriBasedGeom;
|
|
class NiTriShape;
|
|
class NiTriStrips;
|
|
|
|
class __declspec(novtable) NiObject :
|
|
public NiRefObject // 00
|
|
{
|
|
public:
|
|
static constexpr auto RTTI{ RTTI::NiObject };
|
|
static constexpr auto VTABLE{ VTABLE::NiObject };
|
|
static constexpr auto Ni_RTTI{ Ni_RTTI::NiObject };
|
|
|
|
NiObject() { REX::EMPLACE_VTABLE(this); }
|
|
virtual ~NiObject() = default; // NOLINT(modernize-use-override) 00
|
|
|
|
// add
|
|
virtual const NiRTTI* GetRTTI() const { return nullptr; } // 02
|
|
virtual NiNode* IsNode() { return nullptr; } // 04
|
|
virtual const NiNode* IsNode() const { return nullptr; } // 03
|
|
virtual NiSwitchNode* IsSwitchNode() { return nullptr; } // 05
|
|
virtual BSFadeNode* IsFadeNode() { return nullptr; } // 06
|
|
virtual BSMultiBoundNode* IsMultiBoundNode() { return nullptr; } // 07
|
|
virtual BSGeometry* IsGeometry() { return nullptr; } // 08
|
|
virtual NiTriStrips* IsTriStrips() { return nullptr; } // 09
|
|
virtual BSTriShape* IsTriShape() { return nullptr; } // 0A
|
|
virtual BSDynamicTriShape* IsDynamicTriShape() { return nullptr; } // 0B
|
|
virtual BSSegmentedTriShape* IsSegmentedTriShape() { return nullptr; } // 0C
|
|
virtual BSSubIndexTriShape* IsSubIndexTriShape() { return nullptr; } // 0D
|
|
virtual NiGeometry* IsNiGeometry() { return nullptr; } // 0E
|
|
virtual NiTriBasedGeom* IsNiTriBasedGeom() { return nullptr; } // 0F
|
|
virtual NiTriShape* IsNiTriShape() { return nullptr; } // 10
|
|
virtual NiParticles* IsParticlesGeom() { return nullptr; } // 11
|
|
virtual NiParticleSystem* IsParticleSystem() { return nullptr; } // 12
|
|
virtual BSLines* IsLinesGeom() { return nullptr; } // 13
|
|
virtual NiLight* IsLight() { return nullptr; } // 14
|
|
virtual bhkNiCollisionObject* IsBhkNiCollisionObject() { return nullptr; } // 15
|
|
virtual bhkBlendCollisionObject* IsBhkBlendCollisionObject() { return nullptr; } // 16
|
|
virtual bhkRigidBody* IsBhkRigidBody() { return nullptr; } // 17
|
|
virtual bhkLimitedHingeConstraint* IsBhkLimitedHingeConstraint() { return nullptr; } // 18
|
|
virtual bhkNPCollisionObject* IsbhkNPCollisionObject() { return nullptr; } // 19
|
|
virtual NiObject* CreateClone([[maybe_unused]] NiCloningProcess& a_cloneData) { return nullptr; } // 1A
|
|
virtual void LoadBinary([[maybe_unused]] NiStream& a_stream) { return; } // 1B
|
|
virtual void LinkObject([[maybe_unused]] NiStream& a_stream) { return; } // 1C
|
|
virtual bool RegisterStreamables([[maybe_unused]] NiStream& a_stream) { return false; } // 1D
|
|
virtual void SaveBinary([[maybe_unused]] NiStream& a_stream) { return; } // 1E
|
|
virtual bool IsEqual([[maybe_unused]] NiObject* a_object) { return false; } // 1F
|
|
virtual void ProcessClone([[maybe_unused]] NiCloningProcess& a_cloning) {} // 20
|
|
virtual void PostLinkObject([[maybe_unused]] NiStream& a_stream) { return; } // 21
|
|
virtual bool StreamCanSkip() { return false; } // 22
|
|
virtual const NiRTTI* GetStreamableRTTI() { return GetRTTI(); } // 23
|
|
virtual std::uint32_t GetBlockAllocationSize() const { return 0; } // 24
|
|
virtual NiObjectGroup* GetGroup() const { return nullptr; } // 25
|
|
virtual void SetGroup([[maybe_unused]] NiObjectGroup*) { return; } // 26
|
|
virtual NiControllerManager* IsNiControllerManager() { return nullptr; } // 27
|
|
|
|
F4_HEAP_REDEFINE_NEW(NiObject);
|
|
};
|
|
static_assert(sizeof(NiObject) == 0x10);
|
|
}
|