#ifndef COMPONENT_C_CHARACTER_COMPONENT_HPP #define COMPONENT_C_CHARACTER_COMPONENT_HPP #include "component/Types.hpp" #include "gx/Texture.hpp" #include class CM2Model; struct ComponentData { int32_t raceID = 0; int32_t sexID = 0; int32_t classID = 0; int32_t hairColorID = 0; int32_t skinID = 0; int32_t faceID = 0; int32_t facialHairStyleID = 0; int32_t hairStyleID = 0; CM2Model* model = nullptr; uint32_t flags = 0x0; uint8_t byte28 = 0; uint32_t geosets[NUM_GEOSET] = { 001, 101, 201, 301, 401, 501, 601, 702, 801, 901, 1001, 1101, 1201, 1301, 1401, 1501, 1601, 1701, 1801, }; }; class CCharacterComponent { public: // Static functions static CCharacterComponent* AllocComponent(); // Member variables uint32_t m_flags = 0x1 | 0x2 | 0x4; ComponentData m_data; HTEXTURE m_baseTexture = nullptr; // Member functions void CreateBaseTexture(); void GeosRenderPrep(); void Init(ComponentData* data, const char* a3); int32_t ItemsLoaded(int32_t a2); void PrepSections(); int32_t RenderPrep(int32_t a2); void RenderPrepSections(); int32_t VariationsLoaded(int32_t a2); }; #endif