summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gui/theme.cpp4
-rw-r--r--src/gui/theme.h4
-rw-r--r--src/gui/windows/ministatuswindow.cpp3
-rw-r--r--src/gui/windows/statuswindow.cpp22
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);
}