45 lines
1.3 KiB
C++
45 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include "RE/B/BSFixedString.h"
|
|
#include "RE/B/BaseFormComponent.h"
|
|
|
|
namespace RE
|
|
{
|
|
class BGSModelMaterialSwap;
|
|
|
|
namespace BSResource
|
|
{
|
|
class ID;
|
|
}
|
|
|
|
class __declspec(novtable) TESModel :
|
|
public BaseFormComponent // 00
|
|
{
|
|
public:
|
|
static constexpr auto RTTI{ RTTI::TESModel };
|
|
static constexpr auto VTABLE{ VTABLE::TESModel };
|
|
|
|
// override (BaseFormComponent)
|
|
void InitializeDataComponent() override; // 02
|
|
void ClearDataComponent() override; // 03
|
|
void CopyComponent(BaseFormComponent*) override; // 06
|
|
|
|
// add
|
|
virtual const char* GetModel() const { return model.c_str(); } // 07
|
|
virtual void SetModel(const char* a_model) { model = a_model; } // 08
|
|
virtual BGSModelMaterialSwap* GetAsModelMaterialSwap() { return nullptr; } // 09
|
|
|
|
// members
|
|
BSFixedString model; // 08
|
|
BSResource::ID* textures; // 10
|
|
BSResource::ID* materials; // 18
|
|
std::uint32_t* addons; // 20
|
|
std::int8_t numTextures; // 28
|
|
std::int8_t numTexturesSRGB; // 29
|
|
std::int8_t numAddons; // 2A
|
|
std::int8_t numMaterials; // 2B
|
|
std::int8_t flags; // 2C
|
|
};
|
|
static_assert(sizeof(TESModel) == 0x30);
|
|
}
|