summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVittorio Romeo <vittorio.romeo@outlook.com>2020-06-30 23:46:26 +0100
committerVittorio Romeo <vittorio.romeo@outlook.com>2020-06-30 23:46:26 +0100
commitc0f7c4f89e92e18a521a45dec56d18a6509ca61e (patch)
tree4809c6b7b50078b80d2da8eee3246d5fc5c9de8d
parent81d1fd2e5863f96fff42d09ea4cf1cc92ce8ac31 (diff)
Minor fixes and refactoringlua_additionalFunctionsAndFixes
-rw-r--r--_RELEASE/config.json2
-rw-r--r--include/SSVOpenHexagon/Core/HexagonGame.hpp4
-rw-r--r--include/SSVOpenHexagon/Data/StyleData.hpp5
-rw-r--r--include/SSVOpenHexagon/Utils/Utils.hpp11
-rw-r--r--src/SSVOpenHexagon/Components/CPlayer.cpp22
-rw-r--r--src/SSVOpenHexagon/Components/CWall.cpp17
-rw-r--r--src/SSVOpenHexagon/Core/HGScripting.cpp2
-rw-r--r--src/SSVOpenHexagon/Core/HGUpdate.cpp7
-rw-r--r--src/SSVOpenHexagon/Core/HexagonGame.cpp6
-rw-r--r--src/SSVOpenHexagon/Core/MenuGame.cpp8
10 files changed, 43 insertions, 41 deletions
diff --git a/_RELEASE/config.json b/_RELEASE/config.json
index 6e1809a4..6ca64e4b 100644
--- a/_RELEASE/config.json
+++ b/_RELEASE/config.json
@@ -27,7 +27,7 @@
"no_music" : false,
"no_rotation" : false,
"no_sound" : false,
- "official" : true,
+ "official" : false,
"online" : true,
"pixel_multiplier" : 1,
"player_focus_speed" : 4.6250,
diff --git a/include/SSVOpenHexagon/Core/HexagonGame.hpp b/include/SSVOpenHexagon/Core/HexagonGame.hpp
index 272d5f43..f19d5688 100644
--- a/include/SSVOpenHexagon/Core/HexagonGame.hpp
+++ b/include/SSVOpenHexagon/Core/HexagonGame.hpp
@@ -258,7 +258,7 @@ public:
return game;
}
- sf::Vector2f getFieldPos() const noexcept
+ [[nodiscard]] const sf::Vector2f& getFieldPos() const noexcept
{
return levelStatus.fieldPos;
}
@@ -268,7 +268,7 @@ public:
return status.radius;
}
- const StyleData& getStyleData() const noexcept
+ [[nodiscard]] const StyleData& getStyleData() const noexcept
{
return styleData;
}
diff --git a/include/SSVOpenHexagon/Data/StyleData.hpp b/include/SSVOpenHexagon/Data/StyleData.hpp
index de7d8803..f625cfcb 100644
--- a/include/SSVOpenHexagon/Data/StyleData.hpp
+++ b/include/SSVOpenHexagon/Data/StyleData.hpp
@@ -66,9 +66,12 @@ public:
pulseIncrement{ssvuj::getExtr<float>(mRoot, "pulse_increment", 0.f)},
huePingPong{ssvuj::getExtr<bool>(mRoot, "hue_ping_pong", false)},
maxSwapTime{ssvuj::getExtr<float>(mRoot, "max_swap_time", 100.f)},
- bgTileRadius{ssvuj::getExtr<float>(mRoot, "bg_tile_radius", 4500.f)},
+ colorPosOffset{ssvuj::getExtr<int>(mRoot, "color_pos_offset", 0)},
+ bgTileRadius{ssvuj::getExtr<float>(mRoot, "bg_tile_radius", 7500.f)},
+ bgRotOff{ssvuj::getExtr<float>(mRoot, "bg_rot_off", 0.f)},
_3dDepth{ssvuj::getExtr<float>(mRoot, "3D_depth", 15.f)},
_3dSkew{ssvuj::getExtr<float>(mRoot, "3D_skew", 0.18f)},
+ skew{},
_3dSpacing{ssvuj::getExtr<float>(mRoot, "3D_spacing", 1.f)},
_3dDarkenMult{
ssvuj::getExtr<float>(mRoot, "3D_darken_multiplier", 1.5f)},
diff --git a/include/SSVOpenHexagon/Utils/Utils.hpp b/include/SSVOpenHexagon/Utils/Utils.hpp
index 3f5fcdfc..54a37b66 100644
--- a/include/SSVOpenHexagon/Utils/Utils.hpp
+++ b/include/SSVOpenHexagon/Utils/Utils.hpp
@@ -26,12 +26,12 @@ inline void uppercasify(std::string& s)
}
}
-[[gnu::const]] inline float getSaturated(float mValue)
+[[nodiscard, gnu::const]] inline float getSaturated(float mValue)
{
return std::max(0.f, std::min(1.f, mValue));
}
-[[gnu::const]] inline float getSmootherStep(float edge0, float edge1, float x)
+[[nodiscard, gnu::const]] inline float getSmootherStep(float edge0, float edge1, float x)
{
x = getSaturated((x - edge0) / (edge1 - edge0));
return x * x * x * (x * (x * 6 - 15) + 10);
@@ -103,15 +103,16 @@ void runLuaFunctionIfExists(
}
template <typename T1, typename T2, typename T3>
-inline auto getSkewedVecFromRad(const T1& mRad, const T2& mMag, const T3& mSkew)
+[[nodiscard]] auto getSkewedVecFromRad(
+ const T1& mRad, const T2& mMag, const T3& mSkew) noexcept
{
return ssvs::Vec2<ssvs::CT<T1, T2>>(
std::cos(mRad) * (mMag / mSkew.x), std::sin(mRad) * (mMag / mSkew.y));
}
template <typename T1, typename T2, typename T3, typename T4>
-inline auto getSkewedOrbitRad(const ssvs::Vec2<T1>& mVec, const T2& mRad,
- const T3& mRadius, const T4& mSkew)
+[[nodiscard]] auto getSkewedOrbitRad(const ssvs::Vec2<T1>& mVec, const T2& mRad,
+ const T3& mRadius, const T4& mSkew) noexcept
{
return ssvs::Vec2<ssvs::CT<T1, T2, T3>>(mVec) +
getSkewedVecFromRad(mRad, mRadius, mSkew);
diff --git a/src/SSVOpenHexagon/Components/CPlayer.cpp b/src/SSVOpenHexagon/Components/CPlayer.cpp
index 4515fda7..71af2b1b 100644
--- a/src/SSVOpenHexagon/Components/CPlayer.cpp
+++ b/src/SSVOpenHexagon/Components/CPlayer.cpp
@@ -66,7 +66,7 @@ void CPlayer::draw(HexagonGame& mHexagonGame, const sf::Color& mCapColor,
const auto status{mHexagonGame.getStatus()};
const float playerRadius{mHexagonGame.getRadius()};
- const sf::Vector2f skew{styleData.skew};
+ const sf::Vector2f& skew{styleData.skew};
auto fieldAngle = ssvu::toRad(levelStatus.rotation);
const auto _angle = angle + fieldAngle;
@@ -116,7 +116,7 @@ void CPlayer::drawPivot(HexagonGame& mHexagonGame, const sf::Color& mCapColor,
const sf::Color colorDarkened{Utils::getColorDarkened(colorMain, 1.4f)};
- const sf::Vector2f skew{styleData.skew};
+ const sf::Vector2f& skew{styleData.skew};
auto fieldAngle = ssvu::toRad(levelStatus.rotation);
// Cap Graphics
@@ -156,7 +156,7 @@ void CPlayer::drawDeathEffect(
const auto status{mHexagonGame.getStatus()};
- const sf::Vector2f skew{styleData.skew};
+ const sf::Vector2f& skew{styleData.skew};
const auto fieldAngle = ssvu::toRad(mHexagonGame.getLevelStatus().rotation);
@@ -172,13 +172,13 @@ void CPlayer::drawDeathEffect(
{
const float sAngle{fieldAngle + angle + div * 2.f * i};
- sf::Vector2f p1{
+ const sf::Vector2f p1{
Utils::getSkewedOrbitRad(_pos, sAngle - div, radius, skew)};
- sf::Vector2f p2{
+ const sf::Vector2f p2{
Utils::getSkewedOrbitRad(_pos, sAngle + div, radius, skew)};
- sf::Vector2f p3{Utils::getSkewedOrbitRad(
+ const sf::Vector2f p3{Utils::getSkewedOrbitRad(
_pos, sAngle + div, radius + thickness, skew)};
- sf::Vector2f p4{Utils::getSkewedOrbitRad(
+ const sf::Vector2f p4{Utils::getSkewedOrbitRad(
_pos, sAngle - div, radius + thickness, skew)};
mHexagonGame.wallQuads.reserve_more(4);
@@ -199,15 +199,15 @@ void CPlayer::swap(HexagonGame& mHexagonGame, bool mSoundTog)
void CPlayer::update(HexagonGame& mHexagonGame, ssvu::FT mFT)
{
- startPos = mHexagonGame.getFieldPos();
- sf::Vector2f lastPos{pos};
+ const auto startPos = mHexagonGame.getFieldPos();
+ const sf::Vector2f lastPos{pos};
float currentSpeed{speed};
const float lastAngle{angle};
const float radius{mHexagonGame.getRadius()};
const int movement{mHexagonGame.getInputMovement()};
- angle += ssvu::toRad(currentSpeed * movement * mFT);
+
swapBlinkTimer.update(mFT);
@@ -227,6 +227,8 @@ void CPlayer::update(HexagonGame& mHexagonGame, ssvu::FT mFT)
currentSpeed = focusSpeed;
}
+ angle += ssvu::toRad(currentSpeed * movement * mFT);
+
if(mHexagonGame.getLevelStatus().swapEnabled &&
mHexagonGame.getInputSwap() && !swapTimer.isRunning())
{
diff --git a/src/SSVOpenHexagon/Components/CWall.cpp b/src/SSVOpenHexagon/Components/CWall.cpp
index fb52b306..15c9aef5 100644
--- a/src/SSVOpenHexagon/Components/CWall.cpp
+++ b/src/SSVOpenHexagon/Components/CWall.cpp
@@ -10,7 +10,6 @@
namespace hg
{
-
CWall::CWall(HexagonGame& mHexagonGame, unsigned int mSide, float mThickness,
float mDistance, const SpeedData& mSpeed, const SpeedData& mCurve)
: initialSides{mHexagonGame.getSides()},
@@ -28,11 +27,13 @@ void CWall::draw(HexagonGame& mHexagonGame)
{
colorMain = Utils::transformHue(colorMain, hueMod);
}
- auto const fieldPos{mHexagonGame.getFieldPos()};
- auto const status{mHexagonGame.getStatus()};
- auto const styleData{mHexagonGame.getStyleData()};
- auto const levelStatus{mHexagonGame.getLevelStatus()};
- auto fieldAngle = ssvu::toRad(styleData.bgRotOff + levelStatus.rotation);
+
+ const auto fieldPos{mHexagonGame.getFieldPos()};
+ const auto status{mHexagonGame.getStatus()};
+ const auto styleData{mHexagonGame.getStyleData()};
+ const auto levelStatus{mHexagonGame.getLevelStatus()};
+ const auto fieldAngle =
+ ssvu::toRad(styleData.bgRotOff + levelStatus.rotation);
const float div{ssvu::tau / initialSides * 0.5f};
const float col_angle{curveOffset + div * 2.f * side};
const float angle{curveOffset + fieldAngle + div * 2.f * side};
@@ -51,7 +52,7 @@ void CWall::draw(HexagonGame& mHexagonGame)
distance + thickness + mHexagonGame.getWallSkewRight(), radius)};
// For calculating collisions and whatever
- sf::Color colorDebug(255, 0, 0, 150);
+ const sf::Color colorDebug(255, 0, 0, 150);
Collisions_vertexPositions[0] =
ssvs::getOrbitRad(fieldPos, col_angle - div, _distance);
Collisions_vertexPositions[1] =
@@ -85,7 +86,7 @@ void CWall::draw(HexagonGame& mHexagonGame)
void CWall::update(
- HexagonGame& mHexagonGame, const sf::Vector2f& mCenterPos, FT mFT)
+ HexagonGame& mHexagonGame, const sf::Vector2f& mCenterPos, ssvu::FT mFT)
{
speed.update(mFT);
curve.update(mFT);
diff --git a/src/SSVOpenHexagon/Core/HGScripting.cpp b/src/SSVOpenHexagon/Core/HGScripting.cpp
index 8750d467..96670b46 100644
--- a/src/SSVOpenHexagon/Core/HGScripting.cpp
+++ b/src/SSVOpenHexagon/Core/HGScripting.cpp
@@ -466,7 +466,7 @@ void HexagonGame::initLua_StyleControl()
sdVar("3dPulseSpeed", &StyleData::_3dPulseSpeed);
sdVar("3dPerspectiveMult", &StyleData::_3dPerspectiveMult);
sdVar("ColorPosOffset", &StyleData::colorPosOffset);
- sdVar("bgTileRadius", &StyleData::bgTileRadius);
+ sdVar("BGTileRadius", &StyleData::bgTileRadius);
sdVar("BGRotationOffset", &StyleData::bgRotOff);
addLuaFn("s_setStyle", //
diff --git a/src/SSVOpenHexagon/Core/HGUpdate.cpp b/src/SSVOpenHexagon/Core/HGUpdate.cpp
index 3d618f94..938c91bf 100644
--- a/src/SSVOpenHexagon/Core/HGUpdate.cpp
+++ b/src/SSVOpenHexagon/Core/HGUpdate.cpp
@@ -328,7 +328,8 @@ void HexagonGame::updateRotation(FT mFT)
if(status.fastSpin > 0)
{
nextRotation +=
- abs((getSmootherStep(0, levelStatus.fastSpin, status.fastSpin) /
+ std::abs(
+ (getSmootherStep(0, levelStatus.fastSpin, status.fastSpin) /
3.5f) *
17.f) *
getSign(nextRotation);
@@ -368,9 +369,5 @@ void HexagonGame::update3D(FT mFT)
status.pulse3DDirection = 1;
}
}
-/*
-void HexagonGame::updateSkew(FT mFT){
-}
-*/
} // namespace hg
diff --git a/src/SSVOpenHexagon/Core/HexagonGame.cpp b/src/SSVOpenHexagon/Core/HexagonGame.cpp
index 959b2812..06ec6411 100644
--- a/src/SSVOpenHexagon/Core/HexagonGame.cpp
+++ b/src/SSVOpenHexagon/Core/HexagonGame.cpp
@@ -31,7 +31,7 @@ HexagonGame::HexagonGame(Steam::steam_manager& mSteamManager,
Discord::discord_manager& mDiscordManager, HGAssets& mAssets,
ssvs::GameWindow& mGameWindow)
: steamManager(mSteamManager), discordManager(mDiscordManager),
- assets(mAssets), window(mGameWindow), player{ssvs::zeroVec2f},
+ assets(mAssets), window(mGameWindow), player{getFieldPos()},
fpsWatcher(window)
{
game.onUpdate += [this](FT mFT) { update(mFT); };
@@ -101,7 +101,7 @@ void HexagonGame::newGame(
// Manager cleanup
walls.clear();
cwManager.clear();
- player = CPlayer{ssvs::zeroVec2f};
+ player = CPlayer{getFieldPos()};
// Timeline cleanup
@@ -188,7 +188,7 @@ void HexagonGame::incrementDifficulty()
const auto& rotationSpeedMax(levelStatus.rotationSpeedMax);
levelStatus.rotationSpeed *= -1.f;
if(status.fastSpin <= 0 &&
- abs(levelStatus.rotationSpeed) > rotationSpeedMax)
+ std::abs(levelStatus.rotationSpeed) > rotationSpeedMax)
{
levelStatus.rotationSpeed =
rotationSpeedMax * ssvu::getSign(levelStatus.rotationSpeed);
diff --git a/src/SSVOpenHexagon/Core/MenuGame.cpp b/src/SSVOpenHexagon/Core/MenuGame.cpp
index 128e3949..e23c0cf3 100644
--- a/src/SSVOpenHexagon/Core/MenuGame.cpp
+++ b/src/SSVOpenHexagon/Core/MenuGame.cpp
@@ -608,10 +608,10 @@ void MenuGame::initLua(Lua::LuaContext& mLua)
[this](float mValue) { styleData.colorPosOffset = mValue; });
mLua.writeVariable(
"s_getColorPosOffset", [this] { return styleData.colorPosOffset; });
- mLua.writeVariable("s_setBgTileRadius",
+ mLua.writeVariable("s_setBGTileRadius",
[this](float mValue) { styleData.bgTileRadius = mValue; });
mLua.writeVariable(
- "s_getBgTileRadius", [this] { return styleData.bgTileRadius; });
+ "s_getBGTileRadius", [this] { return styleData.bgTileRadius; });
mLua.writeVariable("l_setFieldPos", [this](float mX, float mY) {
levelStatus.fieldPos = {mX, mY};
@@ -1030,15 +1030,13 @@ void MenuGame::update(FT mFT)
void MenuGame::draw()
{
styleData.computeColors(levelStatus);
- // Maybe could be replaced with custom color type
+ // TODO: Maybe could be replaced with custom color type
window.clear(Color::Black);
backgroundCamera.setCenter(levelStatus.camPos);
backgroundCamera.apply();
if(state == s::SMain)
{
- // styleData.drawBackground(window, ssvs::zeroVec2f, levelStatus,
- // styleData);
styleData.drawBackground(
window, levelStatus.fieldPos, levelStatus, styleData);
}