]> git.lizzy.rs Git - minetest.git/blobdiff - src/client/gameui.cpp
Add chat HUD flag (#13189)
[minetest.git] / src / client / gameui.cpp
index 9daecc355b223afba79e5590a0b1c52ef92d9bbe..8d346980c54d311256365929c5e8d033d96a740f 100644 (file)
@@ -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()