diff --git a/Source/Contents/Effects/MeteorEffect.cpp b/Source/Contents/Effects/MeteorEffect.cpp index df430a10..39e4934a 100644 --- a/Source/Contents/Effects/MeteorEffect.cpp +++ b/Source/Contents/Effects/MeteorEffect.cpp @@ -1,7 +1,31 @@ #include "Contents/Effects/SkillEffects.h" +#include "Contents/Effects/EffectMemoryMgr.h" +#include "Contents/Effects/Particle.h" +#include "Contents/Effects/SpriteParticle.h" + +// OFFSET: 0x007077D0 +// FUNCTION: fn_07055 +void CMeteorEffect::Close() { + for (CParticle* particle : this->unknown_00CC) { + FreeParticle(particle); + } + + this->unknown_00CC.clear(); +} + // OFFSET: 0x00707B40 // FUNCTION: fn_07057 bool CMeteorEffect::Slot06() { return !this->unknown_00CC.empty(); } + +// OFFSET: 0x00707CA0 +// FUNCTION: fn_07059 +void CMeteorEffect::Slot04() { + for (CParticle* particle : this->unknown_00CC) { + if ((particle->life == 0.0f || particle->life * 60.0f > static_cast(particle->unknown_00E8)) && particle) { + static_cast(particle)->sub_B40F30(0); + } + } +} diff --git a/Source/Contents/Effects/SkillEffects.h b/Source/Contents/Effects/SkillEffects.h index 9b44a758..066f92d7 100644 --- a/Source/Contents/Effects/SkillEffects.h +++ b/Source/Contents/Effects/SkillEffects.h @@ -8,6 +8,7 @@ #include class CEZ2STRParticle; +class CParticle; class CMeteorEffect : public CEffect { public: @@ -20,7 +21,7 @@ public: bool Slot06() override; ~CMeteorEffect() override; - /* 00CC */ std::vector unknown_00CC; + /* 00CC */ std::vector unknown_00CC; /* 00D8 */ int unknown_00D8; /* 00DC */ int unknown_00DC; };