mirror of
https://github.com/thunderbrewhq/thunderbrew
synced 2025-10-29 15:26:04 +03:00
51 lines
1.6 KiB
C++
51 lines
1.6 KiB
C++
#ifndef GLUE_C_CHARACTER_SELECTION_HPP
|
|
#define GLUE_C_CHARACTER_SELECTION_HPP
|
|
|
|
#include <storm/Array.hpp>
|
|
#include "net/Types.hpp"
|
|
|
|
class CSimpleModelFFX;
|
|
class CM2Model;
|
|
class CCharacterComponent;
|
|
|
|
struct CharacterSelectionDisplay {
|
|
CharacterSelectionDisplay() = default;
|
|
|
|
CHARACTER_INFO m_characterInfo = {};
|
|
CCharacterComponent* m_component = nullptr;
|
|
CM2Model* m_petModel = nullptr;
|
|
};
|
|
|
|
class CCharacterSelection {
|
|
public:
|
|
// Static variables
|
|
static CSimpleModelFFX* m_modelFrame;
|
|
static uint32_t m_characterCount;
|
|
static float m_charFacing;
|
|
static uint32_t m_restrictHuman;
|
|
static uint32_t m_restrictDwarf;
|
|
static uint32_t m_restrictGnome;
|
|
static uint32_t m_restrictNightElf;
|
|
static uint32_t m_restrictDraenei;
|
|
static uint32_t m_restrictOrc;
|
|
static uint32_t m_restrictTroll;
|
|
static uint32_t m_restrictTauren;
|
|
static uint32_t m_restrictUndead;
|
|
static uint32_t m_restrictBloodElf;
|
|
static TSGrowableArray<CharacterSelectionDisplay> s_characterList;
|
|
static int32_t m_selectionIndex;
|
|
|
|
// Static functions
|
|
static void Initialize();
|
|
static void RenderPrep();
|
|
static void SetBackgroundModel(const char* modelPath);
|
|
static void EnumerateCharactersCallback(CHARACTER_INFO& info, void* param);
|
|
static void ShowCharacter();
|
|
static void SetCharFacing(float facing);
|
|
static void ClearCharacterList();
|
|
static void UpdateCharacterList();
|
|
static uint32_t GetNumCharacters();
|
|
};
|
|
|
|
#endif
|