1#include "Game/Effect/EffectSystem.hpp"
2#include "Game/Effect/SingleEmitter.hpp"
3#include "Game/Util/EffectUtil.hpp"
5SingleEmitter::SingleEmitter() {
9 mSpawn = SINGLE_EMITTER_UNDEF_SPAWN;
12void SingleEmitter::init(u16 unk) {
16void SingleEmitter::deleteEmitter() {
18 MR::Effect::deleteParticleEmitter(mEmitter);
22void SingleEmitter::scanParticleEmitter(
EffectSystem *pSystem) {
24 if (mSpawn == SINGLE_EMITTER_UNDEF_SPAWN) {
25 emitter = pSystem->createEmitter(_4, mGroupId, 0);
26 mSpawn = emitter->isContinuousParticle() ? SINGLE_EMITTER_CONTINUOUS_SPAWN : SINGLE_EMITTER_ONE_TIME_SPAWN;
27 pSystem->forceDeleteEmitter(emitter);
31bool SingleEmitter::isOneTime()
const {
33 return !mEmitter->isContinuousParticle();
39bool SingleEmitter::isValid()
const {
40 if (mEmitter ==
nullptr) {
43 return mEmitter->mManager;
49 MR::Effect::setLinkSingleEmitter(pEmitter,
this);
52void SingleEmitter::unlink() {
53 MR::Effect::setLinkSingleEmitter(mEmitter,
nullptr);