diff --git a/Source/Contents/Effects/MappillarEffect.cpp b/Source/Contents/Effects/MappillarEffect.cpp index bfe75c66..b09bd5f1 100644 --- a/Source/Contents/Effects/MappillarEffect.cpp +++ b/Source/Contents/Effects/MappillarEffect.cpp @@ -1,11 +1,24 @@ #include "Contents/Effects/MappillarEffect.h" +#include "Contents/Effects/EffectMemoryMgr.h" #include "Contents/Effects/Particle.h" #include "Utility/Math/AffineMatrix.h" #include #include +// OFFSET: 0x00B4BBB0 +// FUNCTION: fn_18955 +void CMappillarEffect::Close() { + for (auto it = this->particles.begin(); it != this->particles.end(); ++it) { + FreeParticle(*it); + } + + this->particles.clear(); +} + +// OFFSET: 0x00B4BBF0 + // OFFSET: 0x00B4C0B0 // FUNCTION: fn_18957 bool CMappillarEffect::Slot06() { diff --git a/Source/Contents/Effects/MappillarEffect.h b/Source/Contents/Effects/MappillarEffect.h index a79edd03..390dbea9 100644 --- a/Source/Contents/Effects/MappillarEffect.h +++ b/Source/Contents/Effects/MappillarEffect.h @@ -2,6 +2,7 @@ #define RAGNAROK_SOURCE_CONTENTS_EFFECTS_MAPPILLAREFFECT_H #include "Contents/Effects/Effect.h" +#include "Utility/Math/Vector3d.h" #include #include @@ -10,11 +11,14 @@ class CParticle; class CMappillarEffect : public CEffect { public: + void Slot01() override; void Slot03() override; void Slot04() override; + void Close() override; bool Slot06() override; - /* 00CC */ unsigned char unknown_00CC[0x18]; + /* 00CC */ vector3d lastInner; + /* 00D8 */ vector3d lastOuter; /* 00E4 */ std::vector particles; };