From 7cc8da4ac1b9a9288b27feb0b0042b8b2dc8b5ef Mon Sep 17 00:00:00 2001 From: fallenoak Date: Tue, 28 Oct 2025 16:30:02 -0500 Subject: [PATCH] feat(component): implement CCharacterComponent::ReplaceExtraSkinTexture --- src/component/CCharacterComponent.cpp | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/component/CCharacterComponent.cpp b/src/component/CCharacterComponent.cpp index 4450b34..f09da37 100644 --- a/src/component/CCharacterComponent.cpp +++ b/src/component/CCharacterComponent.cpp @@ -866,7 +866,31 @@ void CCharacterComponent::RenderPrepSections() { } void CCharacterComponent::ReplaceExtraSkinTexture(const char* a2) { - // TODO + if (!ComponentValidateBase( + CCharacterComponent::s_chrVarArray, + this->m_data.raceID, + this->m_data.sexID, + VARIATION_SKIN, + 0, + this->m_data.hairColorID + )) { + return; + } + + auto sectionsRec = this->GetSectionsRecord(VARIATION_SKIN, 0, this->m_data.skinColorID, nullptr); + + if (!*sectionsRec->m_textureName[1]) { + return; + } + + SStrCopy(s_pathEnd, sectionsRec->m_textureName[1]); + + auto extraSkinTexture = CCharacterComponent::CreateTexture(s_path, &s_status); + + if (extraSkinTexture) { + this->m_data.model->ReplaceTexture(8, extraSkinTexture); + HandleClose(extraSkinTexture); + } } void CCharacterComponent::ReplaceHairTexture(int32_t hairStyleID, const char* a3) {