summaryrefslogtreecommitdiff
path: root/include/SSVOpenHexagon/Core/HexagonGame.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/SSVOpenHexagon/Core/HexagonGame.hpp')
-rw-r--r--include/SSVOpenHexagon/Core/HexagonGame.hpp36
1 files changed, 29 insertions, 7 deletions
diff --git a/include/SSVOpenHexagon/Core/HexagonGame.hpp b/include/SSVOpenHexagon/Core/HexagonGame.hpp
index 265acfb4..f015e859 100644
--- a/include/SSVOpenHexagon/Core/HexagonGame.hpp
+++ b/include/SSVOpenHexagon/Core/HexagonGame.hpp
@@ -133,8 +133,8 @@ private:
struct PreShakeCenters
{
- sf::Vector2f backgroundCameraPreShakeCenter;
- sf::Vector2f overlayCameraPreShakeCenter;
+ sf::Vector2f background;
+ sf::Vector2f overlay;
};
std::optional<PreShakeCenters> preShakeCenters;
@@ -165,7 +165,7 @@ private:
sf::Text messageText;
sf::Text pbText;
- ssvs::VertexVector<sf::PrimitiveType::Quads> flashPolygon{4};
+ Utils::FastVertexVectorTris flashPolygon;
struct Particle
{
@@ -180,12 +180,28 @@ private:
float angle;
};
+ struct SwapParticle
+ {
+ sf::Sprite sprite;
+ sf::Vector2f velocity;
+ };
+
sf::Texture* txStarParticle;
sf::Texture* txSmallCircle;
std::vector<Particle> particles;
std::vector<TrailParticle> trailParticles;
+ std::vector<SwapParticle> swapParticles;
bool mustSpawnPBParticles{false};
+
+ struct SwapParticleSpawnInfo
+ {
+ bool ready;
+ sf::Vector2f position;
+ float angle;
+ };
+
+ std::optional<SwapParticleSpawnInfo> swapParticlesSpawnInfo;
float nextPBParticleSpawn{0.f};
float pbTextGrowth{0.f};
@@ -238,6 +254,8 @@ private:
int inputMovement{0};
bool inputImplCW{false};
bool inputImplCCW{false};
+ bool playerNowReadyToSwap{false};
+
std::ostringstream os;
sf::Text fpsText;
@@ -344,6 +362,7 @@ private:
void updateLevelInfo();
void updateParticles(ssvu::FT mFT);
void updateTrailParticles(ssvu::FT mFT);
+ void updateSwapParticles(ssvu::FT mFT);
// Post update methods
void postUpdate();
@@ -365,6 +384,7 @@ private:
void drawLevelInfo();
void drawParticles();
void drawTrailParticles();
+ void drawSwapParticles();
void drawImguiLuaConsole();
// Data-related methods
@@ -405,12 +425,12 @@ private:
void performPlayerKill();
Utils::FastVertexVectorTris backgroundTris;
- Utils::FastVertexVectorQuads wallQuads;
- Utils::FastVertexVectorQuads pivotQuads;
+ Utils::FastVertexVectorTris wallQuads;
+ Utils::FastVertexVectorTris pivotQuads;
Utils::FastVertexVectorTris playerTris;
Utils::FastVertexVectorTris capTris;
- Utils::FastVertexVectorQuads wallQuads3D;
- Utils::FastVertexVectorQuads pivotQuads3D;
+ Utils::FastVertexVectorTris wallQuads3D;
+ Utils::FastVertexVectorTris pivotQuads3D;
Utils::FastVertexVectorTris playerTris3D;
public:
@@ -502,6 +522,8 @@ public:
[[nodiscard]] HGAssets& getAssets();
[[nodiscard]] sf::Color getColorMain() const;
[[nodiscard]] sf::Color getColorPlayer() const;
+ [[nodiscard]] sf::Color getColorPlayerAdjustedForSwap() const;
+ [[nodiscard]] sf::Color getColorPlayerTrail() const;
[[nodiscard]] sf::Color getColorText() const;
[[nodiscard]] sf::Color getColorCap() const;
[[nodiscard]] sf::Color getColorWall() const;