mirror of
https://github.com/whoahq/whoa.git
synced 2026-02-01 00:02:45 +03:00
68 lines
1.4 KiB
C++
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
|