diff options
author | Andrei Karas <akaras@inbox.ru> | 2017-08-22 02:12:41 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2017-08-22 02:12:41 +0300 |
commit | 238642d6a99d3f764529a339d0802d3e3909f391 (patch) | |
tree | f115374ffdf930f530bfc916065823032fc303cb /src/particle | |
parent | ad56ac4bda60beddf33640df346801af1ece9ccf (diff) | |
download | plus-238642d6a99d3f764529a339d0802d3e3909f391.tar.gz plus-238642d6a99d3f764529a339d0802d3e3909f391.tar.bz2 plus-238642d6a99d3f764529a339d0802d3e3909f391.tar.xz plus-238642d6a99d3f764529a339d0802d3e3909f391.zip |
Use strong typed enum ParticlePhysics.
Diffstat (limited to 'src/particle')
-rw-r--r-- | src/particle/particle.cpp | 5 | ||||
-rw-r--r-- | src/particle/particleengine.cpp | 6 | ||||
-rw-r--r-- | src/particle/particleengine.h | 4 |
3 files changed, 10 insertions, 5 deletions
diff --git a/src/particle/particle.cpp b/src/particle/particle.cpp index 3019aeda0..40b1b7a5a 100644 --- a/src/particle/particle.cpp +++ b/src/particle/particle.cpp @@ -140,11 +140,11 @@ void Particle::updateSelf() restrict2 switch (ParticleEngine::fastPhysics) { - case 1: + case ParticlePhysics::Normal: invHypotenuse = fastInvSqrt( dist.x * dist.x + dist.y * dist.y + dist.z * dist.z); break; - case 2: + case ParticlePhysics::Fast: if (dist.x == 0.0f) { invHypotenuse = 0; @@ -155,6 +155,7 @@ void Particle::updateSelf() restrict2 + static_cast<float>(fabs(dist.y)) + static_cast<float>(fabs(dist.z))); break; + case ParticlePhysics::Best: default: invHypotenuse = 1.0F / static_cast<float>(sqrt( dist.x * dist.x + dist.y * dist.y + dist.z * dist.z)); diff --git a/src/particle/particleengine.cpp b/src/particle/particleengine.cpp index 02e21e0bc..b54e36d27 100644 --- a/src/particle/particleengine.cpp +++ b/src/particle/particleengine.cpp @@ -44,7 +44,7 @@ class Image; int ParticleEngine::particleCount = 0; int ParticleEngine::maxCount = 0; -int ParticleEngine::fastPhysics = 0; +ParticlePhysicsT ParticleEngine::fastPhysics = ParticlePhysics::Best; int ParticleEngine::emitterSkip = 1; bool ParticleEngine::enabled = true; const float ParticleEngine::PARTICLE_SKY = 800.0F; @@ -67,7 +67,9 @@ ParticleEngine::~ParticleEngine() void ParticleEngine::setupEngine() restrict2 { ParticleEngine::maxCount = config.getIntValue("particleMaxCount"); - ParticleEngine::fastPhysics = config.getIntValue("particleFastPhysics"); + ParticleEngine::fastPhysics = fromInt(config.getIntValue( + "particleFastPhysics"), + ParticlePhysics); ParticleEngine::emitterSkip = config.getIntValue("particleEmitterSkip") + 1; if (ParticleEngine::emitterSkip == 0) diff --git a/src/particle/particleengine.h b/src/particle/particleengine.h index 02d0dcb5b..19a9c4e9f 100644 --- a/src/particle/particleengine.h +++ b/src/particle/particleengine.h @@ -23,6 +23,8 @@ #ifndef PARTICLE_PARTICLEENGINE_H #define PARTICLE_PARTICLEENGINE_H +#include "enums/particle/particlephysics.h" + #include <list> #include <string> @@ -45,7 +47,7 @@ class ParticleEngine final { public: static const float PARTICLE_SKY; // Maximum Z position of particles - static int fastPhysics; // Mode of squareroot calculation + static ParticlePhysicsT fastPhysics; // Mode of squareroot calculation static int particleCount; // Current number of particles static int maxCount; // Maximum number of particles static int emitterSkip; // Duration of pause between two |