diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-06-18 21:04:56 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-06-18 21:04:56 +0300 |
commit | 1dbf1cf1d87a38a327673b69c184ad662bd12cc4 (patch) | |
tree | 44ac0a1fa7a0202c8f67088ac07970e27be483a4 /src | |
parent | 1e91bca70f5f9d6eba3e553827c1e295d483c4a5 (diff) | |
download | manaplus-1dbf1cf1d87a38a327673b69c184ad662bd12cc4.tar.gz manaplus-1dbf1cf1d87a38a327673b69c184ad662bd12cc4.tar.bz2 manaplus-1dbf1cf1d87a38a327673b69c184ad662bd12cc4.tar.xz manaplus-1dbf1cf1d87a38a327673b69c184ad662bd12cc4.zip |
Add option gmTabMinimalLevel to paths.xml for show gm chat tab.
Diffstat (limited to 'src')
-rw-r--r-- | src/being/localplayer.cpp | 3 | ||||
-rw-r--r-- | src/defaults.cpp | 1 | ||||
-rw-r--r-- | src/game.cpp | 11 | ||||
-rw-r--r-- | src/gui/windows/chatwindow.cpp | 10 | ||||
-rw-r--r-- | src/gui/windows/chatwindow.h | 2 |
5 files changed, 19 insertions, 8 deletions
diff --git a/src/being/localplayer.cpp b/src/being/localplayer.cpp index e85301754..52201e7fb 100644 --- a/src/being/localplayer.cpp +++ b/src/being/localplayer.cpp @@ -404,8 +404,7 @@ void LocalPlayer::setGMLevel(const int level) if (chatWindow) { chatWindow->loadGMCommands(); - if (!gmChatTab && config.getBoolValue("enableGmTab")) - chatWindow->addSpecialChannelTab(GM_CHANNEL, false); + chatWindow->showGMTab(); } } } diff --git a/src/defaults.cpp b/src/defaults.cpp index dbecffe75..43f3c57eb 100644 --- a/src/defaults.cpp +++ b/src/defaults.cpp @@ -596,6 +596,7 @@ DefaultsData* getPathsDefaults() AddDEF("poisonEffectName", "poison"); AddDEF("cartEffectName", "cart"); AddDEF("ridingEffectName", "riding"); + AddDEF("gmTabMinimalLevel", "2"); return configData; } diff --git a/src/game.cpp b/src/game.cpp index b364bd2e3..00de21004 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -287,14 +287,13 @@ static void createGuiWindows() battleChatTab = nullptr; } - if (localPlayer && !gmChatTab && config.getBoolValue("enableGmTab") - && localPlayer->getGMLevel() > 0) + if (chatWindow) { - chatWindow->addSpecialChannelTab(GM_CHANNEL, false); - } + chatWindow->showGMTab(); - if (!isSafeMode && chatWindow) - chatWindow->loadState(); + if (!isSafeMode) + chatWindow->loadState(); + } if (setupWindow) setupWindow->externalUpdate(); diff --git a/src/gui/windows/chatwindow.cpp b/src/gui/windows/chatwindow.cpp index 111ce4642..72b547c2a 100644 --- a/src/gui/windows/chatwindow.cpp +++ b/src/gui/windows/chatwindow.cpp @@ -2149,6 +2149,16 @@ void ChatWindow::debugMessage(const std::string &msg) debugChatTab->chatLog(msg, ChatMsgType::BY_SERVER); } +void ChatWindow::showGMTab() +{ + if (!gmChatTab && + config.getBoolValue("enableGmTab") && + localPlayer->getGMLevel() >= paths.getIntValue("gmTabMinimalLevel")) + { + addSpecialChannelTab(GM_CHANNEL, false); + } +} + #ifdef EATHENA_SUPPORT void ChatWindow::joinRoom(const bool isJoin) { diff --git a/src/gui/windows/chatwindow.h b/src/gui/windows/chatwindow.h index ca8250fa0..c5b5aea1a 100644 --- a/src/gui/windows/chatwindow.h +++ b/src/gui/windows/chatwindow.h @@ -323,6 +323,8 @@ class ChatWindow final : public Window, void postConnection(); + void showGMTab(); + #ifdef USE_PROFILER void logicChildren(); #endif |