diff options
author | Sergeanur <s.anureev@yandex.ua> | 2021-02-03 01:41:12 +0100 |
---|---|---|
committer | Sergeanur <s.anureev@yandex.ua> | 2021-02-03 01:41:12 +0100 |
commit | 91612eb45a4195484b43e446907317dbffbff730 (patch) | |
tree | e240252a44da318e5854d851e524a3ada6ca869c /src/render/Font.cpp | |
parent | Add radio off text (diff) | |
download | re3-91612eb45a4195484b43e446907317dbffbff730.tar re3-91612eb45a4195484b43e446907317dbffbff730.tar.gz re3-91612eb45a4195484b43e446907317dbffbff730.tar.bz2 re3-91612eb45a4195484b43e446907317dbffbff730.tar.lz re3-91612eb45a4195484b43e446907317dbffbff730.tar.xz re3-91612eb45a4195484b43e446907317dbffbff730.tar.zst re3-91612eb45a4195484b43e446907317dbffbff730.zip |
Diffstat (limited to '')
-rw-r--r-- | src/render/Font.cpp | 31 |
1 files changed, 27 insertions, 4 deletions
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 |