Files
fs2open.github.com/code/particle/effects/CompositeEffect.cpp
Goober5000 66be185d0c allow finer control of particle rotation randomization
This adds a new field to particle effects so that particle rotation can be configured on a per-type basis, not just on a blanket basis.  Implements #5941.
2024-01-29 22:05:23 -05:00

43 lines
1.1 KiB
C++

#include "particle/particle.h"
#include "particle/ParticleEffect.h"
#include "particle/ParticleSource.h"
#include "particle/effects/CompositeEffect.h"
namespace particle {
namespace effects {
CompositeEffect::CompositeEffect(const SCP_string& name) : ParticleEffect(name) {}
bool CompositeEffect::processSource(ParticleSource*) {
UNREACHABLE("Processing a composite source is not supported! This was caused by a coding error, get a coder!");
return false;
}
void CompositeEffect::parseValues(bool) {
while (optional_string("+Child effect:")) {
auto effectId = internal::parseEffectElement();
if (effectId.isValid()) {
ParticleEffectPtr effect = ParticleManager::get()->getEffect(effectId);
if (effect->getType() == EffectType::Composite) {
error_display(0,
"A composite effect cannot contain more composite effects! The effect has not been added.");
}
else {
addEffect(effect);
}
}
}
}
void CompositeEffect::pageIn() {
for (auto& effect : m_childEffects) {
effect->pageIn();
}
}
void CompositeEffect::addEffect(ParticleEffectPtr effect) {
m_childEffects.push_back(effect);
}
}
}