diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/theme.cpp | 4 | ||||
-rw-r--r-- | src/gui/theme.h | 4 | ||||
-rw-r--r-- | src/gui/windows/ministatuswindow.cpp | 3 | ||||
-rw-r--r-- | src/gui/windows/statuswindow.cpp | 22 |
4 files changed, 30 insertions, 3 deletions
diff --git a/src/gui/theme.cpp b/src/gui/theme.cpp index 274be10df..5935442c0 100644 --- a/src/gui/theme.cpp +++ b/src/gui/theme.cpp @@ -955,6 +955,10 @@ static int readColorType(const std::string &type) "SLOTS_BAR_OUTLINE", "HP_BAR", "HP_BAR_OUTLINE" + "MP_BAR", + "MP_BAR_OUTLINE" + "NO_MP_BAR", + "NO_MP_BAR_OUTLINE" }; if (type.empty()) diff --git a/src/gui/theme.h b/src/gui/theme.h index 58a194d63..bd3db6f66 100644 --- a/src/gui/theme.h +++ b/src/gui/theme.h @@ -398,6 +398,10 @@ class Theme final : public Palette, public ConfigListener SLOTS_BAR_OUTLINE, HP_BAR, HP_BAR_OUTLINE, + MP_BAR, + MP_BAR_OUTLINE, + NO_MP_BAR, + NO_MP_BAR_OUTLINE, THEME_COLORS_END }; diff --git a/src/gui/windows/ministatuswindow.cpp b/src/gui/windows/ministatuswindow.cpp index 0141354ee..8186f1e04 100644 --- a/src/gui/windows/ministatuswindow.cpp +++ b/src/gui/windows/ministatuswindow.cpp @@ -65,7 +65,8 @@ MiniStatusWindow::MiniStatusWindow() : mHpBar(createBar(0, 100, 0, Theme::HP_BAR, Theme::PROG_HP, "hp bar", _("health bar"))), mMpBar(Net::getGameHandler()->canUseMagicBar() - ? createBar(0, 100, 0, Theme::PROGRESS_BAR, + ? createBar(0, 100, 0, Net::getPlayerHandler()->canUseMagic() + ? Theme::MP_BAR : Theme::NO_MP_BAR, Net::getPlayerHandler()->canUseMagic() // TRANSLATORS: status bar name ? Theme::PROG_MP : Theme::PROG_NO_MP, "mp bar", _("mana bar")) diff --git a/src/gui/windows/statuswindow.cpp b/src/gui/windows/statuswindow.cpp index 19d862443..bf93efbee 100644 --- a/src/gui/windows/statuswindow.cpp +++ b/src/gui/windows/statuswindow.cpp @@ -209,11 +209,21 @@ StatusWindow::StatusWindow() : max = PlayerInfo::getAttribute(PlayerInfo::MAX_MP); // TRANSLATORS: status window label mMpLabel = new Label(this, _("MP:")); + const bool useMagic = Net::getPlayerHandler()->canUseMagic(); mMpBar = new ProgressBar(this, max ? static_cast<float>( PlayerInfo::getAttribute(PlayerInfo::MAX_MP)) / static_cast<float>(max) : static_cast<float>(0), - 80, 0, Net::getPlayerHandler()->canUseMagic() ? - Theme::PROG_MP : Theme::PROG_NO_MP); + 80, 0, useMagic ? Theme::PROG_MP : Theme::PROG_NO_MP); + if (useMagic) + { + mMpBar->setColor(Theme::getThemeColor(Theme::MP_BAR), + Theme::getThemeColor(Theme::MP_BAR_OUTLINE)); + } + else + { + mMpBar->setColor(Theme::getThemeColor(Theme::NO_MP_BAR), + Theme::getThemeColor(Theme::NO_MP_BAR_OUTLINE)); + } } else { @@ -523,9 +533,17 @@ void StatusWindow::updateMPBar(ProgressBar *const bar, const bool showMax) prog = static_cast<float>(mp) / static_cast<float>(maxMp); if (Net::getPlayerHandler()->canUseMagic()) + { + bar->setColor(Theme::getThemeColor(Theme::MP_BAR), + Theme::getThemeColor(Theme::MP_BAR_OUTLINE)); bar->setProgressPalette(Theme::PROG_MP); + } else + { + bar->setColor(Theme::getThemeColor(Theme::NO_MP_BAR), + Theme::getThemeColor(Theme::NO_MP_BAR_OUTLINE)); bar->setProgressPalette(Theme::PROG_NO_MP); + } bar->setProgress(prog); } |