diff --git a/src/glue/CCharacterSelection.cpp b/src/glue/CCharacterSelection.cpp index c32091a..687192a 100644 --- a/src/glue/CCharacterSelection.cpp +++ b/src/glue/CCharacterSelection.cpp @@ -10,6 +10,7 @@ #include "object/client/Player_C.hpp" #include "ui/CSimpleModelFFX.hpp" +int32_t CCharacterSelection::s_characterCount; TSGrowableArray CCharacterSelection::s_characterList; float CCharacterSelection::s_charFacing; int32_t CCharacterSelection::s_enterWorldIndex; @@ -118,7 +119,25 @@ void CCharacterSelection::SetBackgroundModel(const char* modelPath) { } void CCharacterSelection::SetFacing(float facing) { - // TODO + if (!CCharacterSelection::s_characterCount) { + return; + } + + CCharacterSelection::s_charFacing = facing; + + if (!CCharacterSelection::s_characterList.Count()) { + return; + } + + auto component = CCharacterSelection::s_characterList[CCharacterSelection::s_selectionIndex].component; + auto model = component->m_data.model; + + if (!model) { + return; + } + + C3Vector position = { 0.0f, 0.0f, 0.0f }; + model->SetWorldTransform(position, facing, 1.0f); } void CCharacterSelection::ShowCharacter() { diff --git a/src/glue/CCharacterSelection.hpp b/src/glue/CCharacterSelection.hpp index 4a4d778..bf335e7 100644 --- a/src/glue/CCharacterSelection.hpp +++ b/src/glue/CCharacterSelection.hpp @@ -18,6 +18,7 @@ struct CharacterSelectionDisplay { class CCharacterSelection { public: // Static variables + static int32_t s_characterCount; static TSGrowableArray s_characterList; static float s_charFacing; static int32_t s_enterWorldIndex;