diff options
Diffstat (limited to 'include/SSVOpenHexagon/Core/HexagonGame.hpp')
-rw-r--r-- | include/SSVOpenHexagon/Core/HexagonGame.hpp | 36 |
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; |