whoa/src/component/CCharacterComponent.hpp

68 lines
1.4 KiB
C++

#ifndef COMPONENT_C_CHARACTER_COMPONENT_HPP
#define COMPONENT_C_CHARACTER_COMPONENT_HPP
#include "component/Types.hpp"
#include "gx/Texture.hpp"
#include <cstdint>
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