Don't recalculate statustext initial color everytime & review fixes

This commit is contained in:
Loic Blot 2018-01-05 19:39:06 +01:00 committed by Loïc Blot
parent f40f4143df
commit 9146c6a50f
6 changed files with 24 additions and 21 deletions

@ -41,6 +41,14 @@ inline static const char *yawToDirectionString(int yaw)
return direction[yaw];
}
GameUI::GameUI()
{
if (guienv && guienv->getSkin())
m_statustext_initial_color = guienv->getSkin()->getColor(gui::EGDC_BUTTON_TEXT);
else
m_statustext_initial_color = video::SColor(255, 0, 0, 0);
}
void GameUI::init()
{
// First line of debug text
@ -169,16 +177,10 @@ void GameUI::update(const RunStats &stats, Client *client, MapDrawControl *draw_
status_y - status_height, status_x + status_width, status_y));
// Fade out
video::SColor initial_color(255, 0, 0, 0);
if (guienv->getSkin())
initial_color = guienv->getSkin()->getColor(gui::EGDC_BUTTON_TEXT);
video::SColor final_color = initial_color;
video::SColor final_color = m_statustext_initial_color;
final_color.setAlpha(0);
video::SColor fade_color = initial_color.getInterpolated_quadratic(
initial_color, final_color,
pow(m_statustext_time / statustext_time_max, 2.0f));
video::SColor fade_color = m_statustext_initial_color.getInterpolated_quadratic(
m_statustext_initial_color, final_color, m_statustext_time / statustext_time_max);
m_guitext_status->setOverrideColor(fade_color);
m_guitext_status->enableOverrideColor(true);
}
@ -244,7 +246,7 @@ void GameUI::updateProfiler()
if (w < 400)
w = 400;
unsigned text_height = g_fontengine->getTextHeight();
u32 text_height = g_fontengine->getTextHeight();
core::position2di upper_left, lower_right;

@ -46,7 +46,7 @@ class GameUI
friend class TestGameUI;
public:
GameUI() = default;
GameUI();
~GameUI() = default;
// Flags that can, or may, change during main game loop
@ -100,10 +100,11 @@ private:
gui::IGUIStaticText *m_guitext_status = nullptr;
std::wstring m_statustext;
float m_statustext_time = 0.0f;
video::SColor m_statustext_initial_color;
gui::IGUIStaticText *m_guitext_chat; // Chat text
gui::IGUIStaticText *m_guitext_chat = nullptr; // Chat text
gui::IGUIStaticText *m_guitext_profiler; // Profiler text
gui::IGUIStaticText *m_guitext_profiler = nullptr; // Profiler text
u8 m_profiler_current_page = 0;
const u8 m_profiler_max_page = 3;
};

@ -1277,7 +1277,7 @@ private:
void updateChat(f32 dtime, const v2u32 &screensize);
static const ClientEventHandler clientEventHandler[CLIENTEVENT_MAX];
InputHandler *input;
InputHandler *input = nullptr;
Client *client = nullptr;
Server *server = nullptr;
@ -2912,9 +2912,8 @@ inline void Game::step(f32 *dtime)
if (can_be_and_is_paused) { // This is for a singleplayer server
*dtime = 0; // No time passes
} else {
if (server) {
if (server)
server->step(*dtime);
}
client->step(*dtime);
}

@ -2026,7 +2026,7 @@ void GUIFormSpecMenu::regenerateGui(v2u32 screensize)
assert(!m_tooltip_element);
// Note: parent != this so that the tooltip isn't clipped by the menu rectangle
m_tooltip_element = gui::StaticText::add(Environment, L"",
core::rect<s32>(0,0,110,18));
core::rect<s32>(0, 0, 110, 18));
m_tooltip_element->enableOverrideColor(true);
m_tooltip_element->setBackgroundColor(m_default_tooltip_bgcolor);
m_tooltip_element->setDrawBackground(true);

@ -92,7 +92,8 @@ namespace gui
s32 id = -1,
bool fillBackground = false)
{
return add(guienv, EnrichedString(text), rectangle, border, wordWrap, parent, id, fillBackground);
return add(guienv, EnrichedString(text), rectangle, border, wordWrap, parent,
id, fillBackground);
}
//! draws the element and its children

@ -57,7 +57,7 @@ xgettext --package-name=minetest \
--keyword=fgettext_ne \
--keyword=strgettext \
--keyword=wstrgettext \
--keyword=showStatusTextSimple \
--keyword=showTranslatedStatusText \
--output $potfile \
--from-code=utf-8 \
`find src/ -name '*.cpp' -o -name '*.h'` \