summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMorxemplum <morxemplum+github@gmail.com>2021-05-25 13:15:51 -0700
committerMorxemplum <morxemplum+github@gmail.com>2021-05-25 13:15:51 -0700
commite3822613d27fca6b6701997d4a0abbe7fba6a37d (patch)
tree1c14fc994a2be64126c52d29fc05eb589985c242
parent8dc800b97346a24e3530b11b935f00f7955abffd (diff)
Fix BnW showing color in level / menufix_bnw
-rw-r--r--include/SSVOpenHexagon/Core/HexagonGame.hpp2
-rw-r--r--include/SSVOpenHexagon/Data/StyleData.hpp2
-rw-r--r--src/SSVOpenHexagon/Core/HGGraphics.cpp23
-rw-r--r--src/SSVOpenHexagon/Core/HexagonGame.cpp20
-rw-r--r--src/SSVOpenHexagon/Core/MenuGame.cpp20
-rw-r--r--src/SSVOpenHexagon/Data/StyleData.cpp8
6 files changed, 54 insertions, 21 deletions
diff --git a/include/SSVOpenHexagon/Core/HexagonGame.hpp b/include/SSVOpenHexagon/Core/HexagonGame.hpp
index 5cd658c2..2ca66de1 100644
--- a/include/SSVOpenHexagon/Core/HexagonGame.hpp
+++ b/include/SSVOpenHexagon/Core/HexagonGame.hpp
@@ -467,6 +467,8 @@ public:
[[nodiscard]] sf::Color getColorMain() const;
[[nodiscard]] sf::Color getColorPlayer() const;
[[nodiscard]] sf::Color getColorText() const;
+ [[nodiscard]] sf::Color getColorCap() const;
+ [[nodiscard]] sf::Color getColorWall() const;
[[nodiscard]] float getMusicDMSyncFactor() const;
[[nodiscard]] float getOptionalMusicDMSyncFactor() const;
diff --git a/include/SSVOpenHexagon/Data/StyleData.hpp b/include/SSVOpenHexagon/Data/StyleData.hpp
index 796067b5..52d0040a 100644
--- a/include/SSVOpenHexagon/Data/StyleData.hpp
+++ b/include/SSVOpenHexagon/Data/StyleData.hpp
@@ -62,7 +62,7 @@ private:
void drawBackgroundMenuHexagonImpl(Utils::FastVertexVectorTris& vertices,
const sf::Vector2f& mCenterPos, const unsigned int sides,
- const bool fourByThree) const;
+ const bool fourByThree, const bool blackAndWhite) const;
public:
std::string id{};
diff --git a/src/SSVOpenHexagon/Core/HGGraphics.cpp b/src/SSVOpenHexagon/Core/HGGraphics.cpp
index e2432b93..e974b964 100644
--- a/src/SSVOpenHexagon/Core/HGGraphics.cpp
+++ b/src/SSVOpenHexagon/Core/HGGraphics.cpp
@@ -104,7 +104,7 @@ void HexagonGame::draw()
for(CWall& w : walls)
{
- w.draw(styleData.getWallColor(), wallQuads);
+ w.draw(getColorWall(), wallQuads);
}
cwManager.draw(wallQuads);
@@ -112,7 +112,7 @@ void HexagonGame::draw()
if(status.started)
{
player.draw(getSides(), getColorMain(), getColorPlayer(), pivotQuads,
- capTris, playerTris, styleData.getCapColorResult());
+ capTris, playerTris, getColorCap());
}
if(Config::get3D())
@@ -165,8 +165,19 @@ void HexagonGame::draw()
const sf::Vector2f newPos(offset * cosRot, offset * sinRot);
- sf::Color overrideColor{Utils::getColorDarkened(
- styleData.get3DOverrideColor(), styleData._3dDarkenMult)};
+ sf::Color overrideColor;
+
+ if(!Config::getBlackAndWhite())
+ {
+ overrideColor = Utils::getColorDarkened(
+ styleData.get3DOverrideColor(), styleData._3dDarkenMult);
+ }
+ else
+ {
+ overrideColor = Utils::getColorDarkened(
+ sf::Color(255, 255, 255, styleData.getMainColor().a),
+ styleData._3dDarkenMult);
+ }
adjustAlpha(overrideColor, i);
// Draw pivot layers
@@ -180,7 +191,7 @@ void HexagonGame::draw()
if(styleData.get3DOverrideColor() == styleData.getMainColor())
{
overrideColor = Utils::getColorDarkened(
- styleData.getWallColor(), styleData._3dDarkenMult);
+ getColorWall(), styleData._3dDarkenMult);
adjustAlpha(overrideColor, i);
}
@@ -197,7 +208,7 @@ void HexagonGame::draw()
if(styleData.get3DOverrideColor() == styleData.getMainColor())
{
overrideColor = Utils::getColorDarkened(
- styleData.getPlayerColor(), styleData._3dDarkenMult);
+ getColorPlayer(), styleData._3dDarkenMult);
adjustAlpha(overrideColor, i);
}
diff --git a/src/SSVOpenHexagon/Core/HexagonGame.cpp b/src/SSVOpenHexagon/Core/HexagonGame.cpp
index 596a5f77..a6903bd0 100644
--- a/src/SSVOpenHexagon/Core/HexagonGame.cpp
+++ b/src/SSVOpenHexagon/Core/HexagonGame.cpp
@@ -1388,6 +1388,26 @@ auto HexagonGame::getColorText() const -> sf::Color
return styleData.getTextColor();
}
+auto HexagonGame::getColorCap() const -> sf::Color
+{
+ if (Config::getBlackAndWhite())
+ {
+ return sf::Color::Black;
+ }
+
+ return styleData.getCapColorResult();
+}
+
+auto HexagonGame::getColorWall() const -> sf::Color
+{
+ if (Config::getBlackAndWhite())
+ {
+ return sf::Color(255, 255, 255, styleData.getWallColor().a);
+ }
+
+ return styleData.getWallColor();
+}
+
[[nodiscard]] float HexagonGame::getMusicDMSyncFactor() const
{
return std::pow(difficultyMult, 0.12f);
diff --git a/src/SSVOpenHexagon/Core/MenuGame.cpp b/src/SSVOpenHexagon/Core/MenuGame.cpp
index 491b5161..cd2614f0 100644
--- a/src/SSVOpenHexagon/Core/MenuGame.cpp
+++ b/src/SSVOpenHexagon/Core/MenuGame.cpp
@@ -2901,8 +2901,8 @@ void MenuGame::setIndex(const int mIdx)
// Set the colors of the menus
auto& colors{styleData.getColors()};
- menuQuadColor = styleData.getTextColor();
- if(ssvu::toInt(menuQuadColor.a) == 0)
+ menuQuadColor = Config::getBlackAndWhite() ? sf::Color(20, 20, 20, 255) : styleData.getTextColor();
+ if(ssvu::toInt(menuQuadColor.a) == 0 && !Config::getBlackAndWhite())
{
for(auto& c : colors)
{
@@ -2913,7 +2913,7 @@ void MenuGame::setIndex(const int mIdx)
}
}
}
- menuTextColor = colors[0];
+ menuTextColor = Config::getBlackAndWhite() ? sf::Color::White : colors[0];
dialogBoxTextColor = menuQuadColor;
dialogBoxTextColor.a = 255;
@@ -2933,7 +2933,7 @@ void MenuGame::setIndex(const int mIdx)
{
for(auto& c : colors)
{
- if(ssvu::toInt(c.a) != 0 && c != menuQuadColor)
+ if(ssvu::toInt(c.a) != 0 && c != menuQuadColor && !Config::getBlackAndWhite())
{
menuTextColor = c;
break;
@@ -2942,7 +2942,7 @@ void MenuGame::setIndex(const int mIdx)
}
// Same as above.
- menuSelectionColor = colors[1];
+ menuSelectionColor = Config::getBlackAndWhite() ? sf::Color::White : colors[1];
if(ssvu::toInt(menuSelectionColor.a) == 0 ||
menuSelectionColor == menuQuadColor ||
menuSelectionColor == menuTextColor)
@@ -2950,7 +2950,7 @@ void MenuGame::setIndex(const int mIdx)
for(auto& c : colors)
{
if(ssvu::toInt(c.a) != 0 && c != menuQuadColor &&
- c != menuTextColor)
+ c != menuTextColor && !Config::getBlackAndWhite())
{
menuSelectionColor = c;
break;
@@ -2962,10 +2962,10 @@ void MenuGame::setIndex(const int mIdx)
// Set color of the fonts.
txtSelectionBig.font.setFillColor(menuQuadColor);
- txtSelectionSmall.font.setFillColor(menuQuadColor);
- txtSelectionRanked.font.setFillColor(menuQuadColor);
- txtInstructionsSmall.font.setFillColor(menuQuadColor);
- txtSelectionScore.font.setFillColor(menuQuadColor);
+ txtSelectionSmall.font.setFillColor(menuTextColor);
+ txtSelectionRanked.font.setFillColor(menuTextColor);
+ txtInstructionsSmall.font.setFillColor(menuTextColor);
+ txtSelectionScore.font.setFillColor(menuTextColor);
// Set gameplay values
diffMultIdx = 0;
diff --git a/src/SSVOpenHexagon/Data/StyleData.cpp b/src/SSVOpenHexagon/Data/StyleData.cpp
index 2a6b18a6..78881c14 100644
--- a/src/SSVOpenHexagon/Data/StyleData.cpp
+++ b/src/SSVOpenHexagon/Data/StyleData.cpp
@@ -235,14 +235,14 @@ void StyleData::drawBackgroundImpl(Utils::FastVertexVectorTris& vertices,
void StyleData::drawBackgroundMenuHexagonImpl(
Utils::FastVertexVectorTris& vertices, const sf::Vector2f& mCenterPos,
- const unsigned int sides, const bool fourByThree) const
+ const unsigned int sides, const bool fourByThree, const bool blackAndWhite) const
{
const float div{ssvu::tau / sides * 1.0001f};
const float halfDiv{div / 2.f};
const float hexagonRadius{fourByThree ? 75.f : 100.f};
- const sf::Color& colorMain{getMainColor()};
- const sf::Color colorCap{getCapColorResult()};
+ const sf::Color& colorMain{blackAndWhite ? sf::Color::White : getMainColor()};
+ const sf::Color colorCap{blackAndWhite ? sf::Color::Black : getCapColorResult()};
for(auto i(0u); i < sides; ++i)
{
@@ -279,7 +279,7 @@ void StyleData::drawBackgroundMenu(Utils::FastVertexVectorTris& mTris,
drawBackgroundImpl(
mTris, mCenterPos, sides, darkenUnevenBackgroundChunk, blackAndWhite);
- drawBackgroundMenuHexagonImpl(mTris, mCenterPos, sides, fourByThree);
+ drawBackgroundMenuHexagonImpl(mTris, mCenterPos, sides, fourByThree, blackAndWhite);
}
void StyleData::setCapColor(const CapColor& mCapColor)