forked from Mirrorlandia_minetest/minetest
Hide chat when console is open (#8656)
This commit is contained in:
parent
1cef09ff10
commit
fa6bc699bc
@ -3835,7 +3835,7 @@ void Game::updateFrame(ProfilerGraph *graph, RunStats *stats, f32 dtime,
|
|||||||
runData.update_draw_list_last_cam_dir = camera_direction;
|
runData.update_draw_list_last_cam_dir = camera_direction;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_game_ui->update(*stats, client, draw_control, cam, runData.pointed_old, dtime);
|
m_game_ui->update(*stats, client, draw_control, cam, runData.pointed_old, gui_chat_console, dtime);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
make sure menu is on top
|
make sure menu is on top
|
||||||
|
@ -22,6 +22,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||||||
#include <irrlicht_changes/static_text.h>
|
#include <irrlicht_changes/static_text.h>
|
||||||
#include <gettext.h>
|
#include <gettext.h>
|
||||||
#include "gui/mainmenumanager.h"
|
#include "gui/mainmenumanager.h"
|
||||||
|
#include "gui/guiChatConsole.h"
|
||||||
#include "util/pointedthing.h"
|
#include "util/pointedthing.h"
|
||||||
#include "client.h"
|
#include "client.h"
|
||||||
#include "clientmap.h"
|
#include "clientmap.h"
|
||||||
@ -85,7 +86,8 @@ void GameUI::init()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void GameUI::update(const RunStats &stats, Client *client, MapDrawControl *draw_control,
|
void GameUI::update(const RunStats &stats, Client *client, MapDrawControl *draw_control,
|
||||||
const CameraOrientation &cam, const PointedThing &pointed_old, float dtime)
|
const CameraOrientation &cam, const PointedThing &pointed_old,
|
||||||
|
const GUIChatConsole *chat_console, float dtime)
|
||||||
{
|
{
|
||||||
v2u32 screensize = RenderingEngine::get_instance()->getWindowSize();
|
v2u32 screensize = RenderingEngine::get_instance()->getWindowSize();
|
||||||
|
|
||||||
@ -186,6 +188,9 @@ void GameUI::update(const RunStats &stats, Client *client, MapDrawControl *draw_
|
|||||||
m_guitext_status->setOverrideColor(fade_color);
|
m_guitext_status->setOverrideColor(fade_color);
|
||||||
m_guitext_status->enableOverrideColor(true);
|
m_guitext_status->enableOverrideColor(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Hide chat when console is visible
|
||||||
|
m_guitext_chat->setVisible(isChatVisible() && !chat_console->isVisible());
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameUI::initFlags()
|
void GameUI::initFlags()
|
||||||
@ -227,9 +232,7 @@ void GameUI::setChatText(const EnrichedString &chat_text, u32 recent_chat_count)
|
|||||||
m_guitext_chat->setRelativePosition(core::rect<s32>(10, chat_y, width,
|
m_guitext_chat->setRelativePosition(core::rect<s32>(10, chat_y, width,
|
||||||
chat_y + m_guitext_chat->getTextHeight()));
|
chat_y + m_guitext_chat->getTextHeight()));
|
||||||
|
|
||||||
// Don't show chat if disabled or empty or profiler is enabled
|
m_recent_chat_count = recent_chat_count;
|
||||||
m_guitext_chat->setVisible(m_flags.show_chat &&
|
|
||||||
recent_chat_count != 0 && m_profiler_current_page == 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameUI::updateProfiler()
|
void GameUI::updateProfiler()
|
||||||
|
@ -28,6 +28,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||||||
|
|
||||||
using namespace irr;
|
using namespace irr;
|
||||||
class Client;
|
class Client;
|
||||||
|
class GUIChatConsole;
|
||||||
struct MapDrawControl;
|
struct MapDrawControl;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -63,7 +64,7 @@ public:
|
|||||||
void init();
|
void init();
|
||||||
void update(const RunStats &stats, Client *client, MapDrawControl *draw_control,
|
void update(const RunStats &stats, Client *client, MapDrawControl *draw_control,
|
||||||
const CameraOrientation &cam, const PointedThing &pointed_old,
|
const CameraOrientation &cam, const PointedThing &pointed_old,
|
||||||
float dtime);
|
const GUIChatConsole *chat_console, float dtime);
|
||||||
|
|
||||||
void initFlags();
|
void initFlags();
|
||||||
const Flags &getFlags() const { return m_flags; }
|
const Flags &getFlags() const { return m_flags; }
|
||||||
@ -81,6 +82,10 @@ public:
|
|||||||
void showTranslatedStatusText(const char *str);
|
void showTranslatedStatusText(const char *str);
|
||||||
inline void clearStatusText() { m_statustext.clear(); }
|
inline void clearStatusText() { m_statustext.clear(); }
|
||||||
|
|
||||||
|
const bool isChatVisible()
|
||||||
|
{
|
||||||
|
return m_flags.show_chat && m_recent_chat_count != 0 && m_profiler_current_page == 0;
|
||||||
|
}
|
||||||
void setChatText(const EnrichedString &chat_text, u32 recent_chat_count);
|
void setChatText(const EnrichedString &chat_text, u32 recent_chat_count);
|
||||||
|
|
||||||
void updateProfiler();
|
void updateProfiler();
|
||||||
@ -114,6 +119,7 @@ private:
|
|||||||
video::SColor m_statustext_initial_color;
|
video::SColor m_statustext_initial_color;
|
||||||
|
|
||||||
gui::IGUIStaticText *m_guitext_chat = nullptr; // Chat text
|
gui::IGUIStaticText *m_guitext_chat = nullptr; // Chat text
|
||||||
|
u32 m_recent_chat_count = 0;
|
||||||
|
|
||||||
gui::IGUIStaticText *m_guitext_profiler = nullptr; // Profiler text
|
gui::IGUIStaticText *m_guitext_profiler = nullptr; // Profiler text
|
||||||
u8 m_profiler_current_page = 0;
|
u8 m_profiler_current_page = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user