From 91612eb45a4195484b43e446907317dbffbff730 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Wed, 3 Feb 2021 02:41:12 +0200 Subject: Controller menu --- src/render/Font.cpp | 31 +++++++++++++++++++++++++++---- src/render/Font.h | 1 + 2 files changed, 28 insertions(+), 4 deletions(-) (limited to 'src/render') diff --git a/src/render/Font.cpp b/src/render/Font.cpp index 7eed0933..7dba8094 100644 --- a/src/render/Font.cpp +++ b/src/render/Font.cpp @@ -348,11 +348,26 @@ CFont::Initialise(void) SetDropShadowPosition(0); CTxdStore::PopCurrentTxd(); +#if !defined(GAMEPAD_MENU) && defined(BUTTON_ICONS) + // loaded in CMenuManager with GAMEPAD_MENU defined + LoadButtons("MODELS/X360BTNS.TXD"); +#endif +} + #ifdef BUTTON_ICONS - if (int file = CFileMgr::OpenFile("MODELS/X360BTNS.TXD")) { +void +CFont::LoadButtons(const char* txdPath) +{ + if (int file = CFileMgr::OpenFile(txdPath)) { CFileMgr::CloseFile(file); - ButtonsSlot = CTxdStore::AddTxdSlot("buttons"); - CTxdStore::LoadTxd(ButtonsSlot, "MODELS/X360BTNS.TXD"); + if (ButtonsSlot == -1) + ButtonsSlot = CTxdStore::AddTxdSlot("buttons"); + else { + for (int i = 0; i < MAX_BUTTON_ICONS; i++) + ButtonSprite[i].Delete(); + CTxdStore::RemoveTxd(ButtonsSlot); + } + CTxdStore::LoadTxd(ButtonsSlot, txdPath); CTxdStore::AddRef(ButtonsSlot); CTxdStore::PushCurrentTxd(); CTxdStore::SetCurrentTxd(ButtonsSlot); @@ -374,8 +389,16 @@ CFont::Initialise(void) ButtonSprite[BUTTON_R3].SetTexture("r3"); CTxdStore::PopCurrentTxd(); } -#endif // BUTTON_ICONS + else { + if (ButtonsSlot != -1) { + for (int i = 0; i < MAX_BUTTON_ICONS; i++) + ButtonSprite[i].Delete(); + CTxdStore::RemoveTxdSlot(ButtonsSlot); + ButtonsSlot = -1; + } + } } +#endif // BUTTON_ICONS #ifdef MORE_LANGUAGES void diff --git a/src/render/Font.h b/src/render/Font.h index 621375d6..9316ed34 100644 --- a/src/render/Font.h +++ b/src/render/Font.h @@ -109,6 +109,7 @@ public: static CSprite2d ButtonSprite[MAX_BUTTON_ICONS]; static int PS2Symbol; + static void LoadButtons(const char *txdPath); static void DrawButton(float x, float y); #endif // BUTTON_ICONS -- cgit v1.2.3