feat: initial controller tooltips hotswap

This commit is contained in:
2026-08-10 04:14:40 -04:00
parent b737c3eccb
commit 23d4db901a
3 changed files with 210 additions and 3 deletions
+41
View File
@@ -21,6 +21,9 @@ public:
static CRITICAL_SECTION ms_reloadSkinCS;
static bool ms_bReloadSkinCSInitialised;
static CRITICAL_SECTION UIController::ms_controllerPollCS;
static bool UIController::ms_bControllerPollCSInitialised;
protected:
UIComponent_DebugUIConsole *m_uiDebugConsole;
UIComponent_DebugUIMarketingGuide *m_uiDebugMarketingGuide;
@@ -49,6 +52,35 @@ private:
eFont_Korean,
};
#ifdef _WINDOWS64
enum EControllerType
{
// SONY
PS3,
PS4,
PS5,
// MICROSOFT
XBOXONE,
XBOX360,
// NINTENDO
SWITCH,
GAMECUBE,
// MISC
STANDARD,
UNKNOWN,
UNSET
};
EControllerType m_LastControllerType;
C4JThread *m_controllerPollThread;
volatile bool m_bControllerTypeChanged;
static int controllerPollThreadProc(void *lpParam);
#endif
// 4J-JEV: It's important that currentFont == targetFont, unless updateCurrentLanguage is going to be called.
EFont m_eCurrentFont, m_eTargetFont;
@@ -91,6 +123,9 @@ private:
eLibrary_GraphicsInGame,
eLibrary_GraphicsTooltips,
eLibrary_GraphicsLabels,
#ifdef _WINDOWS64
eLibrary_ControlTooltips,
#endif
eLibrary_Labels,
eLibrary_InGame,
eLibrary_HUD,
@@ -199,12 +234,18 @@ public:
public:
// TICKING
virtual void tick();
#ifdef _WINDOWS64
wstring GetControlTooltipsPath(EControllerType ControllerType = EControllerType::UNSET);
EControllerType GetControllerType(const char* controllerType);
void fetchControlTooltipSWF();
#endif
private:
void loadSkins();
IggyLibrary loadSkin(const wstring &skinPath, const wstring &skinName);
public:
void reloadSingleSkin(ELibraries lib, const wstring &skinPath, const wstring &skinName);
void ReloadSkin();
virtual void StartReloadSkinThread();
virtual bool IsReloadingSkin();