summaryrefslogtreecommitdiff
path: root/src/JSystem/JParticle/JPAExtraShape.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/JSystem/JParticle/JPAExtraShape.cpp')
-rw-r--r--src/JSystem/JParticle/JPAExtraShape.cpp16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/JSystem/JParticle/JPAExtraShape.cpp b/src/JSystem/JParticle/JPAExtraShape.cpp
index 09c6b45bb0..43244dbce6 100644
--- a/src/JSystem/JParticle/JPAExtraShape.cpp
+++ b/src/JSystem/JParticle/JPAExtraShape.cpp
@@ -35,7 +35,6 @@ void JPACalcScaleY(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
}
void JPACalcScaleCopy(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
- JPAExtraShape* esp = work->mpRes->getEsp();
ptcl->mParticleScaleY = ptcl->mParticleScaleX;
}
@@ -55,21 +54,21 @@ void JPACalcScaleAnmRepeatY(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
void JPACalcScaleAnmReverseX(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
JPAExtraShape* esp = work->mpRes->getEsp();
- s32 cycle = ptcl->mAge / esp->getScaleAnmCycleX();
+ f32 cycle = ptcl->mAge / esp->getScaleAnmCycleX() & 1;
f32 base = (ptcl->mAge % esp->getScaleAnmCycleX()) / (f32)esp->getScaleAnmCycleX();
- work->mScaleAnm = base + ((cycle & 1) * (1.0f - base * 2.0f));
+ work->mScaleAnm = base + cycle * (1.0f - base * 2.0f);
}
void JPACalcScaleAnmReverseY(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
JPAExtraShape* esp = work->mpRes->getEsp();
- s32 cycle = ptcl->mAge / esp->getScaleAnmCycleY();
+ f32 cycle = ptcl->mAge / esp->getScaleAnmCycleY() & 1;
f32 base = (ptcl->mAge % esp->getScaleAnmCycleY()) / (f32)esp->getScaleAnmCycleY();
- work->mScaleAnm = base + ((cycle & 1) * (1.0f - base * 2.0f));
+ work->mScaleAnm = base + cycle * (1.0f - base * 2.0f);
}
void JPACalcAlphaAnm(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
JPAExtraShape* esp = work->mpRes->getEsp();
- f32 alpha;
+ f32 alpha = 0.0f;
if (ptcl->mTime < esp->getAlphaInTiming()) {
alpha = 255.0f * (esp->getAlphaInValue() + esp->getAlphaIncRate() * ptcl->mTime);
} else if (ptcl->mTime > esp->getAlphaOutTiming()) {
@@ -83,7 +82,7 @@ void JPACalcAlphaAnm(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
void JPACalcAlphaFlickAnm(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
JPAExtraShape* esp = work->mpRes->getEsp();
- f32 alpha;
+ f32 alpha = 0.0f;
if (ptcl->mTime < esp->getAlphaInTiming()) {
alpha = (esp->getAlphaInValue() + esp->getAlphaIncRate() * ptcl->mTime);
} else if (ptcl->mTime > esp->getAlphaOutTiming()) {
@@ -92,8 +91,7 @@ void JPACalcAlphaFlickAnm(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
} else {
alpha = esp->getAlphaBaseValue();
}
- s32 theta = ptcl->mAlphaWaveRandom * ptcl->mAge * 16384.0f * (1.0f - esp->getAlphaFreq());
- f32 wave = JMASSin(theta);
+ f32 wave = JMASSin(ptcl->mAlphaWaveRandom * ptcl->mAge * 16384.0f * (1.0f - esp->getAlphaFreq()));
alpha *= (1.0f + esp->getAlphaAmp() * (wave - 1.0f) * 0.5f) * 255.0f;
OSf32tou8(&alpha, &ptcl->mPrmColorAlphaAnm);
}