Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/particlesystem.cc')
-rw-r--r--src/render/particlesystem.cc11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/render/particlesystem.cc b/src/render/particlesystem.cc
index c085d5d..c29243c 100644
--- a/src/render/particlesystem.cc
+++ b/src/render/particlesystem.cc
@@ -156,8 +156,13 @@ void ParticleSystem::draw(const float seconds)
ParticleEjector *ejector = (*it);
if (entity()) {
+ float thrust_factor = 1.0f;
bool ejector_active = true;
+ if (ejector->thrust()) {
+ thrust_factor = 0.0f;
+ }
+
if (ejector->impulse() || ejector->thrust() || ejector->explosion()) {
ejector_active = false;
}
@@ -170,6 +175,7 @@ void ParticleSystem::draw(const float seconds)
case core::Entity::ImpulseInitiate:
if (ejector->impulse()) {
ejector_active = true;
+ thrust_factor = 1.0f;
}
break;
@@ -177,6 +183,7 @@ void ParticleSystem::draw(const float seconds)
if (ejector->thrust()) {
if (controlable->thrust() > 0.0f) {
ejector_active = true;
+ thrust_factor = controlable->thrust();
}
}
break;
@@ -223,10 +230,10 @@ void ParticleSystem::draw(const float seconds)
}
}
ejector->enable(ejector_active);
+
+ (*it)->frame(seconds, current_location, current_axis * ejector->axis(), thrust_factor);
}
- (*it)->frame(seconds, current_location, current_axis * ejector->axis());
-
}
}