diff options
Diffstat (limited to 'src/client')
-rw-r--r-- | src/client/game.cpp | 2 | ||||
-rw-r--r-- | src/client/gameui.cpp | 24 | ||||
-rw-r--r-- | src/client/gameui.h | 2 |
3 files changed, 17 insertions, 11 deletions
diff --git a/src/client/game.cpp b/src/client/game.cpp index 94a09537a..833093673 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -2085,7 +2085,7 @@ void Game::processKeyInput() } else if (wasKeyDown(KeyType::MINIMAP)) { toggleMinimap(isKeyDown(KeyType::SNEAK)); } else if (wasKeyDown(KeyType::TOGGLE_CHAT)) { - m_game_ui->toggleChat(); + m_game_ui->toggleChat(client); } else if (wasKeyDown(KeyType::TOGGLE_FOG)) { toggleFog(); } else if (wasKeyDown(KeyType::TOGGLE_UPDATE_CAMERA)) { diff --git a/src/client/gameui.cpp b/src/client/gameui.cpp index 9daecc355..8d346980c 100644 --- a/src/client/gameui.cpp +++ b/src/client/gameui.cpp @@ -102,6 +102,8 @@ void GameUI::update(const RunStats &stats, Client *client, MapDrawControl *draw_ { v2u32 screensize = RenderingEngine::getWindowSize(); + LocalPlayer *player = client->getEnv().getLocalPlayer(); + s32 minimal_debug_height = 0; // Minimal debug text must only contain info that can't give a gameplay advantage @@ -137,7 +139,6 @@ void GameUI::update(const RunStats &stats, Client *client, MapDrawControl *draw_ // Basic debug text also shows info that might give a gameplay advantage if (m_flags.show_basic_debug) { - LocalPlayer *player = client->getEnv().getLocalPlayer(); v3f player_position = player->getPosition(); std::ostringstream os(std::ios_base::binary); @@ -208,8 +209,8 @@ void GameUI::update(const RunStats &stats, Client *client, MapDrawControl *draw_ m_guitext_status->enableOverrideColor(true); } - // Hide chat when console is visible - m_guitext_chat->setVisible(isChatVisible() && !chat_console->isVisible()); + // Hide chat when disabled by server or when console is visible + m_guitext_chat->setVisible(isChatVisible() && !chat_console->isVisible() && (player->hud_flags & HUD_FLAG_CHAT_VISIBLE)); } void GameUI::initFlags() @@ -287,13 +288,18 @@ void GameUI::updateProfiler() m_guitext_profiler->setVisible(m_profiler_current_page != 0); } -void GameUI::toggleChat() +void GameUI::toggleChat(Client *client) { - m_flags.show_chat = !m_flags.show_chat; - if (m_flags.show_chat) - showTranslatedStatusText("Chat shown"); - else - showTranslatedStatusText("Chat hidden"); + if (client->getEnv().getLocalPlayer()->hud_flags & HUD_FLAG_CHAT_VISIBLE) { + m_flags.show_chat = !m_flags.show_chat; + if (m_flags.show_chat) + showTranslatedStatusText("Chat shown"); + else + showTranslatedStatusText("Chat hidden"); + } else { + showTranslatedStatusText("Chat currently disabled by game or mod"); + } + } void GameUI::toggleHud() diff --git a/src/client/gameui.h b/src/client/gameui.h index cc9377bdc..589328a28 100644 --- a/src/client/gameui.h +++ b/src/client/gameui.h @@ -93,7 +93,7 @@ public: void updateProfiler(); - void toggleChat(); + void toggleChat(Client *client); void toggleHud(); void toggleProfiler(); |