diff --git a/Runtime/World/CMorphBall.cpp b/Runtime/World/CMorphBall.cpp index 33b6dff35..9a131bb25 100644 --- a/Runtime/World/CMorphBall.cpp +++ b/Runtime/World/CMorphBall.cpp @@ -768,9 +768,25 @@ float CMorphBall::GetSpiderBallSwingControllerMovementScalar() const return std::max(0.f, (2.4f - x1908_swingControlTime) / 1.2f); } -void CMorphBall::CreateSpiderBallParticles(const zeus::CVector3f&, const zeus::CVector3f&) +void CMorphBall::CreateSpiderBallParticles(const zeus::CVector3f& ballPos, const zeus::CVector3f& trackPoint) { - + x19d4_spiderBallMagnetEffectGen->SetParticleEmission(true); + zeus::CVector3f ballToTrack = trackPoint - ballPos; + float ballToTrackMag = ballToTrack.magnitude(); + int subCount = int(ballToTrackMag / 0.2f + 1.f); + ballToTrack = ballToTrack * (1.f / float(subCount)); + int count = int(8.f * (ballToTrackMag / 2.1f)); + for (int i=count ; i>=0 ; --i) + { + zeus::CVector3f translation = ballPos; + for (int j=0 ; jSetTranslation(translation); + x19d4_spiderBallMagnetEffectGen->ForceParticleCreation(1); + translation += ballToTrack; + } + } + x19d4_spiderBallMagnetEffectGen->SetParticleEmission(false); } void CMorphBall::ResetSpiderBallForces() diff --git a/Runtime/World/CMorphBall.hpp b/Runtime/World/CMorphBall.hpp index bd6d9166e..20314632b 100644 --- a/Runtime/World/CMorphBall.hpp +++ b/Runtime/World/CMorphBall.hpp @@ -205,7 +205,7 @@ public: void ResetSpiderBallSwingControllerMovementTimer(); void UpdateSpiderBallSwingControllerMovementTimer(float movement, float dt); float GetSpiderBallSwingControllerMovementScalar() const; - void CreateSpiderBallParticles(const zeus::CVector3f&, const zeus::CVector3f&); + void CreateSpiderBallParticles(const zeus::CVector3f& ballPos, const zeus::CVector3f& trackPoint); void ComputeMarioMovement(const CFinalInput& input, CStateManager& mgr, float dt); void SetSpiderBallState(ESpiderBallState state) { x187c_spiderBallState = state; } zeus::CTransform GetSwooshToWorld() const; diff --git a/amuse b/amuse index c6781df90..4b2b86f42 160000 --- a/amuse +++ b/amuse @@ -1 +1 @@ -Subproject commit c6781df90a88ffd30936a45b7336761d099d4de3 +Subproject commit 4b2b86f4204c22de1bca7b005d672528a5341ba8 diff --git a/hecl b/hecl index 53a34e2bb..0270b2c25 160000 --- a/hecl +++ b/hecl @@ -1 +1 @@ -Subproject commit 53a34e2bba8ff2dcf2aafdbd0e64e18b5fa50ffd +Subproject commit 0270b2c253785221367af1ca414fca52f3867105