diff --git a/AUTHORS.md b/AUTHORS.md
index 4b6c054619..eaf4bde4ce 100644
--- a/AUTHORS.md
+++ b/AUTHORS.md
@@ -31,6 +31,7 @@ Programmers
Allofich
Andreas Stöckel
Andrei Kortunov (akortunov)
+ Andrew Appuhamy (andrew-app)
AnyOldName3
Ardekantur
Armin Preiml
@@ -231,7 +232,7 @@ Programmers
Yuri Krupenin
zelurker
Noah Gooder
- Andrew Appuhamy (andrew-app)
+
Documentation
-------------
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c3a84f5909..778df6e680 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -23,6 +23,7 @@
Bug #5377: console does not appear after using menutest in inventory
Bug #5379: Wandering NPCs falling through cantons
Bug #5394: Windows snapping no longer works
+ Bug #5434: Pinned windows shouldn't cover breath progress bar
Bug #5453: Magic effect VFX are offset for creatures
Bug #5483: AutoCalc flag is not used to calculate spells cost
Bug #5508: Engine binary links to Qt without using it
diff --git a/apps/openmw/mwgui/hud.cpp b/apps/openmw/mwgui/hud.cpp
index ab596137cd..f6136791e9 100644
--- a/apps/openmw/mwgui/hud.cpp
+++ b/apps/openmw/mwgui/hud.cpp
@@ -81,7 +81,7 @@ namespace MWGui
, mMinimap(nullptr)
, mCrosshair(nullptr)
, mCellNameBox(nullptr)
- , mDrowningFrame(nullptr)
+ , mDrowningBar(nullptr)
, mDrowningFlash(nullptr)
, mHealthManaStaminaBaseLeft(0)
, mWeapBoxBaseLeft(0)
@@ -119,6 +119,7 @@ namespace MWGui
fatigueFrame->eventMouseButtonClick += MyGUI::newDelegate(this, &HUD::onHMSClicked);
//Drowning bar
+ getWidget(mDrowningBar, "DrowningBar");
getWidget(mDrowningFrame, "DrowningFrame");
getWidget(mDrowning, "Drowning");
getWidget(mDrowningFlash, "Flash");
@@ -224,7 +225,7 @@ namespace MWGui
void HUD::setDrowningBarVisible(bool visible)
{
- mDrowningFrame->setVisible(visible);
+ mDrowningBar->setVisible(visible);
}
void HUD::onWorldClicked(MyGUI::Widget* _sender)
@@ -368,9 +369,6 @@ namespace MWGui
mWeaponSpellBox->setPosition(mWeaponSpellBox->getPosition() + MyGUI::IntPoint(0,20));
}
- if (mIsDrowning)
- mDrowningFlashTheta += dt * osg::PI*2;
-
mSpellIcons->updateWidgets(mEffectBox, true);
if (mEnemyActorId != -1 && mEnemyHealth->getVisible())
@@ -378,8 +376,13 @@ namespace MWGui
updateEnemyHealthBar();
}
+ if (mDrowningBar->getVisible())
+ mDrowningBar->setPosition(mMainWidget->getWidth()/2 - mDrowningFrame->getWidth()/2, mMainWidget->getTop());
+
if (mIsDrowning)
{
+ mDrowningFlashTheta += dt * osg::PI*2;
+
float intensity = (cos(mDrowningFlashTheta) + 2.0f) / 3.0f;
mDrowningFlash->setAlpha(intensity);
diff --git a/apps/openmw/mwgui/hud.hpp b/apps/openmw/mwgui/hud.hpp
index 8a89320d8c..ef591bec97 100644
--- a/apps/openmw/mwgui/hud.hpp
+++ b/apps/openmw/mwgui/hud.hpp
@@ -73,7 +73,7 @@ namespace MWGui
MyGUI::ImageBox* mCrosshair;
MyGUI::TextBox* mCellNameBox;
MyGUI::TextBox* mWeaponSpellBox;
- MyGUI::Widget *mDrowningFrame, *mDrowningFlash;
+ MyGUI::Widget *mDrowningBar, *mDrowningFrame, *mDrowningFlash;
// bottom left elements
int mHealthManaStaminaBaseLeft, mWeapBoxBaseLeft, mSpellBoxBaseLeft, mSneakBoxBaseLeft;
diff --git a/apps/openmw/mwgui/windowmanagerimp.cpp b/apps/openmw/mwgui/windowmanagerimp.cpp
index 94a064a6c8..ca8557f2e1 100644
--- a/apps/openmw/mwgui/windowmanagerimp.cpp
+++ b/apps/openmw/mwgui/windowmanagerimp.cpp
@@ -638,6 +638,7 @@ namespace MWGui
mMap->setVisible(false);
mStatsWindow->setVisible(false);
mSpellWindow->setVisible(false);
+ mHud->setDrowningBarVisible(false);
mInventoryWindow->setVisible(getMode() == GM_Container || getMode() == GM_Barter || getMode() == GM_Companion);
}
diff --git a/files/mygui/openmw_hud.layout b/files/mygui/openmw_hud.layout
index b3e3cfb9df..a189075f44 100644
--- a/files/mygui/openmw_hud.layout
+++ b/files/mygui/openmw_hud.layout
@@ -31,22 +31,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -128,4 +112,23 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/files/mygui/openmw_layers.xml b/files/mygui/openmw_layers.xml
index c288655027..4afa67f314 100644
--- a/files/mygui/openmw_layers.xml
+++ b/files/mygui/openmw_layers.xml
@@ -15,6 +15,7 @@
+