summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorewewukek <ewewukek@gmail.com>2024-03-28 21:17:02 +0300
committerFedja Beader <fedja@protonmail.ch>2024-04-24 11:53:42 +0000
commit6c93bbe03abc5ef097607e45fa36683b55808d7d (patch)
treece7e649fc00b8251fccede16b791974555dc8c12
parent40b605c41542baf9b10a1a2b03af10e3baaa362f (diff)
downloadManaVerse-6c93bbe03abc5ef097607e45fa36683b55808d7d.tar.gz
ManaVerse-6c93bbe03abc5ef097607e45fa36683b55808d7d.tar.bz2
ManaVerse-6c93bbe03abc5ef097607e45fa36683b55808d7d.tar.xz
ManaVerse-6c93bbe03abc5ef097607e45fa36683b55808d7d.zip
Show MP bar below HP bar
-rw-r--r--src/being/being.cpp32
-rw-r--r--src/enums/gui/usercolorid.h2
-rw-r--r--src/gui/userpalette.cpp14
-rw-r--r--src/gui/widgets/tabs/setup_colors.cpp2
4 files changed, 46 insertions, 4 deletions
diff --git a/src/being/being.cpp b/src/being/being.cpp
index ed124b472..f9079cb32 100644
--- a/src/being/being.cpp
+++ b/src/being/being.cpp
@@ -3999,16 +3999,40 @@ void Being::drawPlayerSpriteAt(Graphics *restrict const graphics,
localPlayer == this &&
mAction != BeingAction::DEAD)
{
+ int barX = x - 50 + mapTileSize / 2 + mInfo->getHpBarOffsetX();
+ int barY = y + mapTileSize - 6 + mInfo->getHpBarOffsetY();
+ const int barW = 2 * 50;
+ const int barH = 4;
+
+ const bool drawMpBar =
+ PlayerInfo::getStatEffective(Attributes::PLAYER_MATK) > 0;
+ if (drawMpBar)
+ barY -= 3;
+
drawHpBar(graphics,
PlayerInfo::getAttribute(Attributes::PLAYER_MAX_HP),
PlayerInfo::getAttribute(Attributes::PLAYER_HP),
0,
UserColorId::PLAYER_HP_FG,
UserColorId::PLAYER_HP_BG,
- x - 50 + mapTileSize / 2 + mInfo->getHpBarOffsetX(),
- y + mapTileSize - 6 + mInfo->getHpBarOffsetY(),
- 2 * 50,
- 4);
+ barX,
+ barY,
+ barW,
+ barH);
+
+ if (drawMpBar)
+ {
+ drawHpBar(graphics,
+ PlayerInfo::getAttribute(Attributes::PLAYER_MAX_MP),
+ PlayerInfo::getAttribute(Attributes::PLAYER_MP),
+ 0,
+ UserColorId::PLAYER_MP_FG,
+ UserColorId::PLAYER_MP_BG,
+ barX,
+ barY + barH + 1,
+ barW,
+ barH);
+ }
}
}
diff --git a/src/enums/gui/usercolorid.h b/src/enums/gui/usercolorid.h
index 3a5e91203..0607173bb 100644
--- a/src/enums/gui/usercolorid.h
+++ b/src/enums/gui/usercolorid.h
@@ -58,6 +58,8 @@ enumStart(UserColorId)
LABEL_HP,
PLAYER_HP_FG,
PLAYER_HP_BG,
+ PLAYER_MP_FG,
+ PLAYER_MP_BG,
MONSTER_HP_FG,
MONSTER_HP_BG,
HOMUN_HP_FG,
diff --git a/src/gui/userpalette.cpp b/src/gui/userpalette.cpp
index 8ad436a60..dbed4a93e 100644
--- a/src/gui/userpalette.cpp
+++ b/src/gui/userpalette.cpp
@@ -64,6 +64,8 @@ const std::string ColorTypeNames[CAST_SIZE(
"",
"ColorPlayerHp",
"ColorPlayerHp2",
+ "ColorPlayerMp",
+ "ColorPlayerMp2",
"ColorMonsterHp",
"ColorMonsterHp2",
"ColorHomunHp",
@@ -296,6 +298,18 @@ UserPalette::UserPalette() :
// TRANSLATORS: palette color
_("Player HP bar (background)"),
50);
+ addColor(UserColorId::PLAYER_MP_FG,
+ 0x00a0ff,
+ GradientType::STATIC,
+ // TRANSLATORS: palette color
+ _("Player MP bar"),
+ 50);
+ addColor(UserColorId::PLAYER_MP_BG,
+ 0x303030,
+ GradientType::STATIC,
+ // TRANSLATORS: palette color
+ _("Player MP bar (background)"),
+ 50);
addColor(UserColorId::MONSTER_HP_FG,
0x00ff00,
GradientType::STATIC,
diff --git a/src/gui/widgets/tabs/setup_colors.cpp b/src/gui/widgets/tabs/setup_colors.cpp
index 0fde9b1f6..71cebc71d 100644
--- a/src/gui/widgets/tabs/setup_colors.cpp
+++ b/src/gui/widgets/tabs/setup_colors.cpp
@@ -367,6 +367,8 @@ void Setup_Colors::valueChanged(const SelectionEvent &event A_UNUSED)
case UserColorId::ELEMENTAL_HP_BG:
case UserColorId::PLAYER_HP_FG:
case UserColorId::PLAYER_HP_BG:
+ case UserColorId::PLAYER_MP_FG:
+ case UserColorId::PLAYER_MP_BG:
case UserColorId::FLOOR_ITEM_TEXT:
case UserColorId::NET:
// TRANSLATORS: colors tab. label.