mirror of
https://github.com/whoahq/whoa.git
synced 2026-02-01 16:22:45 +03:00
feat(component): add item functions
This commit is contained in:
parent
a431b30cf9
commit
794003086b
@ -16,6 +16,7 @@ uint32_t* CCharacterComponent::s_characterFacialHairStylesList;
|
|||||||
st_race* CCharacterComponent::s_chrVarArray;
|
st_race* CCharacterComponent::s_chrVarArray;
|
||||||
uint32_t CCharacterComponent::s_chrVarArrayLength;
|
uint32_t CCharacterComponent::s_chrVarArrayLength;
|
||||||
EGxTexFormat CCharacterComponent::s_gxFormat;
|
EGxTexFormat CCharacterComponent::s_gxFormat;
|
||||||
|
ITEM_FUNC CCharacterComponent::s_itemFunc[];
|
||||||
uint32_t CCharacterComponent::s_mipLevels;
|
uint32_t CCharacterComponent::s_mipLevels;
|
||||||
PREP_FUNC* CCharacterComponent::s_prepFunc[];
|
PREP_FUNC* CCharacterComponent::s_prepFunc[];
|
||||||
CompSectionInfo CCharacterComponent::s_sectionInfo[];
|
CompSectionInfo CCharacterComponent::s_sectionInfo[];
|
||||||
@ -125,7 +126,16 @@ void CCharacterComponent::Initialize(EGxTexFormat textureFormat, uint32_t textur
|
|||||||
CCharacterComponent::s_prepFunc[SECTION_HEAD_UPPER] = &CCharacterComponent::RenderPrepHU;
|
CCharacterComponent::s_prepFunc[SECTION_HEAD_UPPER] = &CCharacterComponent::RenderPrepHU;
|
||||||
CCharacterComponent::s_prepFunc[SECTION_HEAD_LOWER] = &CCharacterComponent::RenderPrepHL;
|
CCharacterComponent::s_prepFunc[SECTION_HEAD_LOWER] = &CCharacterComponent::RenderPrepHL;
|
||||||
|
|
||||||
// TODO
|
CCharacterComponent::s_itemFunc[SECTION_ARM_UPPER] = &CCharacterComponent::UpdateItemAU;
|
||||||
|
CCharacterComponent::s_itemFunc[SECTION_ARM_LOWER] = &CCharacterComponent::UpdateItemAL;
|
||||||
|
CCharacterComponent::s_itemFunc[SECTION_HAND] = &CCharacterComponent::UpdateItemHA;
|
||||||
|
CCharacterComponent::s_itemFunc[SECTION_TORSO_UPPER] = &CCharacterComponent::UpdateItemTU;
|
||||||
|
CCharacterComponent::s_itemFunc[SECTION_TORSO_LOWER] = &CCharacterComponent::UpdateItemTL;
|
||||||
|
CCharacterComponent::s_itemFunc[SECTION_LEG_UPPER] = &CCharacterComponent::UpdateItemLU;
|
||||||
|
CCharacterComponent::s_itemFunc[SECTION_LEG_LOWER] = &CCharacterComponent::UpdateItemLL;
|
||||||
|
CCharacterComponent::s_itemFunc[SECTION_FOOT] = &CCharacterComponent::UpdateItemFO;
|
||||||
|
CCharacterComponent::s_itemFunc[SECTION_HEAD_UPPER] = &CCharacterComponent::UpdateItemHU;
|
||||||
|
CCharacterComponent::s_itemFunc[SECTION_HEAD_LOWER] = &CCharacterComponent::UpdateItemHL;
|
||||||
|
|
||||||
// Clamp mip levels between 6 and 9
|
// Clamp mip levels between 6 and 9
|
||||||
uint32_t mipLevels = std::min(std::max(textureLevel, 6u), 9u);
|
uint32_t mipLevels = std::min(std::max(textureLevel, 6u), 9u);
|
||||||
@ -1161,6 +1171,46 @@ void CCharacterComponent::SetSkinColor(int32_t skinColorID, bool a3, bool a4, co
|
|||||||
this->m_flags &= ~0x8;
|
this->m_flags &= ~0x8;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CCharacterComponent::UpdateItemAL(ITEM_SLOT itemSlot, const ItemDisplayInfoRec* displayRec, bool update) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
void CCharacterComponent::UpdateItemAU(ITEM_SLOT itemSlot, const ItemDisplayInfoRec* displayRec, bool update) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
void CCharacterComponent::UpdateItemFO(ITEM_SLOT itemSlot, const ItemDisplayInfoRec* displayRec, bool update) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
void CCharacterComponent::UpdateItemHA(ITEM_SLOT itemSlot, const ItemDisplayInfoRec* displayRec, bool update) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
void CCharacterComponent::UpdateItemHL(ITEM_SLOT itemSlot, const ItemDisplayInfoRec* displayRec, bool update) {
|
||||||
|
// No item displays for head sections
|
||||||
|
}
|
||||||
|
|
||||||
|
void CCharacterComponent::UpdateItemHU(ITEM_SLOT itemSlot, const ItemDisplayInfoRec* displayRec, bool update) {
|
||||||
|
// No item displays for head sections
|
||||||
|
}
|
||||||
|
|
||||||
|
void CCharacterComponent::UpdateItemLL(ITEM_SLOT itemSlot, const ItemDisplayInfoRec* displayRec, bool update) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
void CCharacterComponent::UpdateItemLU(ITEM_SLOT itemSlot, const ItemDisplayInfoRec* displayRec, bool update) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
void CCharacterComponent::UpdateItemTL(ITEM_SLOT itemSlot, const ItemDisplayInfoRec* displayRec, bool update) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
void CCharacterComponent::UpdateItemTU(ITEM_SLOT itemSlot, const ItemDisplayInfoRec* displayRec, bool update) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
int32_t CCharacterComponent::UpdateItemDisplay(COMPONENT_SECTIONS section, const ItemDisplayInfoRec* newDisplayRec, int32_t priority) {
|
int32_t CCharacterComponent::UpdateItemDisplay(COMPONENT_SECTIONS section, const ItemDisplayInfoRec* newDisplayRec, int32_t priority) {
|
||||||
bool isNPC = this->m_data.flags & 0x1;
|
bool isNPC = this->m_data.flags & 0x1;
|
||||||
|
|
||||||
|
|||||||
@ -15,6 +15,7 @@ struct MipBits;
|
|||||||
struct st_race;
|
struct st_race;
|
||||||
struct TCTEXTUREINFO;
|
struct TCTEXTUREINFO;
|
||||||
|
|
||||||
|
typedef void (CCharacterComponent::*ITEM_FUNC)(ITEM_SLOT itemSlot, const ItemDisplayInfoRec* displayRec, bool update);
|
||||||
typedef void (PREP_FUNC)(CCharacterComponent* component);
|
typedef void (PREP_FUNC)(CCharacterComponent* component);
|
||||||
|
|
||||||
struct CompSectionInfo {
|
struct CompSectionInfo {
|
||||||
@ -35,6 +36,7 @@ class CCharacterComponent {
|
|||||||
static st_race* s_chrVarArray;
|
static st_race* s_chrVarArray;
|
||||||
static uint32_t s_chrVarArrayLength;
|
static uint32_t s_chrVarArrayLength;
|
||||||
static EGxTexFormat s_gxFormat;
|
static EGxTexFormat s_gxFormat;
|
||||||
|
static ITEM_FUNC s_itemFunc[NUM_COMPONENT_SECTIONS];
|
||||||
static uint32_t s_mipLevels;
|
static uint32_t s_mipLevels;
|
||||||
static PREP_FUNC* s_prepFunc[NUM_COMPONENT_SECTIONS];
|
static PREP_FUNC* s_prepFunc[NUM_COMPONENT_SECTIONS];
|
||||||
static CompSectionInfo s_sectionInfo[NUM_COMPONENT_SECTIONS];
|
static CompSectionInfo s_sectionInfo[NUM_COMPONENT_SECTIONS];
|
||||||
@ -98,6 +100,16 @@ class CCharacterComponent {
|
|||||||
void SetHairColor(int32_t hairColorID, bool a3, const char* a4);
|
void SetHairColor(int32_t hairColorID, bool a3, const char* a4);
|
||||||
void SetHairStyle(int32_t hairStyleID, const char* a3);
|
void SetHairStyle(int32_t hairStyleID, const char* a3);
|
||||||
void SetSkinColor(int32_t skinColorID, bool a3, bool a4, const char* a5);
|
void SetSkinColor(int32_t skinColorID, bool a3, bool a4, const char* a5);
|
||||||
|
void UpdateItemAL(ITEM_SLOT itemSlot, const ItemDisplayInfoRec* displayRec, bool update);
|
||||||
|
void UpdateItemAU(ITEM_SLOT itemSlot, const ItemDisplayInfoRec* displayRec, bool update);
|
||||||
|
void UpdateItemFO(ITEM_SLOT itemSlot, const ItemDisplayInfoRec* displayRec, bool update);
|
||||||
|
void UpdateItemHA(ITEM_SLOT itemSlot, const ItemDisplayInfoRec* displayRec, bool update);
|
||||||
|
void UpdateItemHL(ITEM_SLOT itemSlot, const ItemDisplayInfoRec* displayRec, bool update);
|
||||||
|
void UpdateItemHU(ITEM_SLOT itemSlot, const ItemDisplayInfoRec* displayRec, bool update);
|
||||||
|
void UpdateItemLL(ITEM_SLOT itemSlot, const ItemDisplayInfoRec* displayRec, bool update);
|
||||||
|
void UpdateItemLU(ITEM_SLOT itemSlot, const ItemDisplayInfoRec* displayRec, bool update);
|
||||||
|
void UpdateItemTL(ITEM_SLOT itemSlot, const ItemDisplayInfoRec* displayRec, bool update);
|
||||||
|
void UpdateItemTU(ITEM_SLOT itemSlot, const ItemDisplayInfoRec* displayRec, bool update);
|
||||||
int32_t UpdateItemDisplay(COMPONENT_SECTIONS section, const ItemDisplayInfoRec* newDisplayRec, int32_t priority);
|
int32_t UpdateItemDisplay(COMPONENT_SECTIONS section, const ItemDisplayInfoRec* newDisplayRec, int32_t priority);
|
||||||
int32_t VariationsLoaded(int32_t a2);
|
int32_t VariationsLoaded(int32_t a2);
|
||||||
};
|
};
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user