CommonLibSSE (Parapets fork)
Loading...
Searching...
No Matches
IFormFactory.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/F/FormTypes.h"
4
5namespace RE
6{
7 template <class T, FormType>
8 class ConcreteFormFactory;
9
10 enum class OBJECT_TYPE
11 {
12 };
13
15 {
16 };
17
19 {
20 public:
21 inline static constexpr auto RTTI = RTTI_IFormFactory;
22
23 virtual ~IFormFactory(); // 00
24
25 protected:
26 // add
27 virtual TESForm* CreateImpl() = 0; // 01
28
29 public:
30 [[nodiscard]] virtual const char* GetFormName() const = 0; // 02
31 [[nodiscard]] virtual FormType GetFormType() const = 0; // 03
32 [[nodiscard]] virtual const char* GetObjectName() const; // 04 - { return 0; }
33 [[nodiscard]] virtual OBJECT_TYPE GetObjectType() const; // 05 - { return 106; }
34 [[nodiscard]] virtual OBJECT_CATEGORY_TYPE GetObjectCategory() const; // 06 - { return 9; }
35
36 static std::pair<IFormFactory**, bool> GetFormFactories();
38
39 template <class T>
41
43 };
44 static_assert(sizeof(IFormFactory) == 0x8);
45}
Definition: ConcreteFormFactory.h:10
Definition: IFormFactory.h:19
virtual const char * GetFormName() const =0
static constexpr auto RTTI
Definition: IFormFactory.h:21
static IFormFactory * GetFormFactoryByType(FormType a_formType)
virtual OBJECT_CATEGORY_TYPE GetObjectCategory() const
virtual TESForm * CreateImpl()=0
virtual ~IFormFactory()
virtual const char * GetObjectName() const
virtual OBJECT_TYPE GetObjectType() const
static ConcreteFormFactory< T, T::FORMTYPE > * GetConcreteFormFactoryByType()
Definition: ConcreteFormFactory.h:34
static std::pair< IFormFactory **, bool > GetFormFactories()
TESForm * Create()
virtual FormType GetFormType() const =0
Definition: TESForm.h:34
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_IFormFactory
Definition: Offsets_RTTI.h:4944
OBJECT_TYPE
Definition: IFormFactory.h:11
OBJECT_CATEGORY_TYPE
Definition: IFormFactory.h:15
FormType
Definition: FormTypes.h:139