From a1b0ccfbb80cf2e0dc80a52971a0f50261b8b7d6 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 31 Dec 2015 21:40:07 +0300 Subject: Move particlechangefunc into enums directory. --- src/particle/particleemitter.cpp | 20 ++++++++++++++---- src/particle/particleemitterprop.h | 42 ++++++++++++++++---------------------- 2 files changed, 34 insertions(+), 28 deletions(-) (limited to 'src/particle') diff --git a/src/particle/particleemitter.cpp b/src/particle/particleemitter.cpp index b8ae200ce..855c62fa1 100644 --- a/src/particle/particleemitter.cpp +++ b/src/particle/particleemitter.cpp @@ -473,13 +473,25 @@ ParticleEmitter::readParticleEmitterProp(XmlNodePtrConst propertyNode, T def) const int period = XML::getProperty(propertyNode, "change-period", 0); const int phase = XML::getProperty(propertyNode, "change-phase", 0); if (change == "saw" || change == "sawtooth") - retval.setFunction(FUNC_SAW, amplitude, period, phase); + { + retval.setFunction(ParticleChangeFunc::FUNC_SAW, + amplitude, period, phase); + } else if (change == "sine" || change == "sinewave") - retval.setFunction(FUNC_SINE, amplitude, period, phase); + { + retval.setFunction(ParticleChangeFunc::FUNC_SINE, + amplitude, period, phase); + } else if (change == "triangle") - retval.setFunction(FUNC_TRIANGLE, amplitude, period, phase); + { + retval.setFunction(ParticleChangeFunc::FUNC_TRIANGLE, + amplitude, period, phase); + } else if (change == "square") - retval.setFunction(FUNC_SQUARE, amplitude, period, phase); + { + retval.setFunction(ParticleChangeFunc::FUNC_SQUARE, + amplitude, period, phase); + } return retval; } diff --git a/src/particle/particleemitterprop.h b/src/particle/particleemitterprop.h index 8e0716f2e..ecbaa3aec 100644 --- a/src/particle/particleemitterprop.h +++ b/src/particle/particleemitterprop.h @@ -25,27 +25,19 @@ #include -#include "localconsts.h" - -/** - * Returns a random numeric value that is larger than or equal min and smaller - * than max - */ +#include "enums/particle/particlechangefunc.h" -enum ChangeFunc -{ - FUNC_NONE = 0, - FUNC_SINE, - FUNC_SAW, - FUNC_TRIANGLE, - FUNC_SQUARE -}; +#include "localconsts.h" template struct ParticleEmitterProp final { ParticleEmitterProp() : - minVal(0), maxVal(0), changeFunc(FUNC_NONE), - changeAmplitude(0), changePeriod(0), changePhase(0) + minVal(0), + maxVal(0), + changeFunc(ParticleChangeFunc::FUNC_NONE), + changeAmplitude(0), + changePeriod(0), + changePhase(0) { } @@ -60,8 +52,10 @@ template struct ParticleEmitterProp final set(val, val); } - void setFunction(ChangeFunc func, T amplitude, - const int period, const int phase) + void setFunction(ParticleChangeFuncT func, + T amplitude, + const int period, + const int phase) { changeFunc = func; changeAmplitude = amplitude; @@ -79,17 +73,17 @@ template struct ParticleEmitterProp final switch (changeFunc) { - case FUNC_SINE: + case ParticleChangeFunc::FUNC_SINE: val += static_cast(std::sin(M_PI * 2 * (static_cast( tick % changePeriod) / static_cast( changePeriod)))) * changeAmplitude; break; - case FUNC_SAW: + case ParticleChangeFunc::FUNC_SAW: val += static_cast(changeAmplitude * (static_cast( tick % changePeriod) / static_cast( changePeriod))) * 2 - changeAmplitude; break; - case FUNC_TRIANGLE: + case ParticleChangeFunc::FUNC_TRIANGLE: if ((tick % changePeriod) * 2 < changePeriod) { val += changeAmplitude - static_cast(( @@ -104,13 +98,13 @@ template struct ParticleEmitterProp final // I have no idea why this works but it does } break; - case FUNC_SQUARE: + case ParticleChangeFunc::FUNC_SQUARE: if ((tick % changePeriod) * 2 < changePeriod) val += changeAmplitude; else val -= changeAmplitude; break; - case FUNC_NONE: + case ParticleChangeFunc::FUNC_NONE: default: // nothing break; @@ -122,7 +116,7 @@ template struct ParticleEmitterProp final T minVal; T maxVal; - ChangeFunc changeFunc; + ParticleChangeFuncT changeFunc; T changeAmplitude; int changePeriod; int changePhase; -- cgit v1.2.3-70-g09d2