From bb254840ffb4ff49a0a1a53348d1caea1fafd920 Mon Sep 17 00:00:00 2001 From: fallenoak Date: Tue, 30 Dec 2025 10:57:23 -0600 Subject: [PATCH] feat(glue): add CCharacterCreation::IsRaceClassValid --- src/glue/CCharacterCreation.cpp | 12 ++++++++++++ src/glue/CCharacterCreation.hpp | 1 + 2 files changed, 13 insertions(+) diff --git a/src/glue/CCharacterCreation.cpp b/src/glue/CCharacterCreation.cpp index 4753d72..3e8c63d 100644 --- a/src/glue/CCharacterCreation.cpp +++ b/src/glue/CCharacterCreation.cpp @@ -171,6 +171,18 @@ bool CCharacterCreation::IsClassValid(int32_t classID) { return false; } +bool CCharacterCreation::IsRaceClassValid(int32_t raceID, int32_t classID) { + for (int32_t i = 0; i < g_charBaseInfoDB.GetNumRecords(); i++) { + auto infoRec = g_charBaseInfoDB.GetRecordByIndex(i); + + if (infoRec->m_raceID == raceID && infoRec->m_classID == classID) { + return true; + } + } + + return false; +} + void CCharacterCreation::ResetCharCustomizeInfo() { if (!CCharacterCreation::s_charCustomizeFrame) { return; diff --git a/src/glue/CCharacterCreation.hpp b/src/glue/CCharacterCreation.hpp index 222d68e..1f1991d 100644 --- a/src/glue/CCharacterCreation.hpp +++ b/src/glue/CCharacterCreation.hpp @@ -29,6 +29,7 @@ class CCharacterCreation { static void GetRandomRaceAndSex(ComponentData* data); static void Initialize(); static bool IsClassValid(int32_t classID); + static bool IsRaceClassValid(int32_t raceID, int32_t classID); static void ResetCharCustomizeInfo(); static void SetCharCustomizeModel(const char* filename); static void SetFacing(float orientation);