feat(glue): implement CCharacterCreation::SetSelectedClass

This commit is contained in:
fallenoak 2025-12-29 14:55:30 -06:00
parent f24a7596f7
commit 0bf3eea817
No known key found for this signature in database
GPG Key ID: 7628F8E61AEA070D
2 changed files with 36 additions and 1 deletions

View File

@ -109,6 +109,18 @@ void CCharacterCreation::GetRandomRaceAndSex(ComponentData* data) {
data->sexID = UNITSEX_MALE; data->sexID = UNITSEX_MALE;
} }
bool CCharacterCreation::IsClassValid(int32_t classID) {
for (int32_t i = 0; i < CCharacterCreation::s_classes.Count(); i++) {
auto classRec = CCharacterCreation::s_classes[i];
if (classRec->m_ID == classID) {
return true;
}
}
return false;
}
void CCharacterCreation::ResetCharCustomizeInfo() { void CCharacterCreation::ResetCharCustomizeInfo() {
if (!CCharacterCreation::s_charCustomizeFrame) { if (!CCharacterCreation::s_charCustomizeFrame) {
return; return;
@ -139,5 +151,27 @@ void CCharacterCreation::ResetCharCustomizeInfo() {
} }
void CCharacterCreation::SetSelectedClass(int32_t classID) { void CCharacterCreation::SetSelectedClass(int32_t classID) {
// TODO if (!CCharacterCreation::IsClassValid(classID)) {
return;
}
CCharacterCreation::s_selectedClassID = classID;
ComponentData data = {};
data.raceID = CCharacterCreation::s_character->m_data.raceID;
data.sexID = CCharacterCreation::s_character->m_data.sexID;
data.classID = classID;
data.skinColorID = CCharacterCreation::s_character->m_data.skinColorID;
data.hairStyleID = CCharacterCreation::s_character->m_data.hairStyleID;
data.hairColorID = CCharacterCreation::s_character->m_data.hairColorID;
data.facialHairStyleID = CCharacterCreation::s_character->m_data.facialHairStyleID;
data.faceID = CCharacterCreation::s_character->m_data.faceID;
// TODO CCharacterComponent::ValidateComponentData(&data, 0);
CCharacterCreation::CreateComponent(&data, false);
CCharacterCreation::Dress();
CGlueLoading::StartLoad(CCharacterCreation::s_character, true);
} }

View File

@ -25,6 +25,7 @@ class CCharacterCreation {
static void Dress(); static void Dress();
static int32_t GetRandomClassID(); static int32_t GetRandomClassID();
static void GetRandomRaceAndSex(ComponentData* data); static void GetRandomRaceAndSex(ComponentData* data);
static bool IsClassValid(int32_t classID);
static void ResetCharCustomizeInfo(); static void ResetCharCustomizeInfo();
static void SetSelectedClass(int32_t classID); static void SetSelectedClass(int32_t classID);
}; };