#include "Contents/Effects/DummyEffectLauncher.h" #include "Contents/Effects/EffectLists.h" #include "Contents/Effects/RagEffect.h" #include #include // OFFSET: 0x00E4C1C0 // FUNCTION: fn_24281 bool CDummyEffectLauncher::OnProcess() { float frame = static_cast(static_cast(timeGetTime() - this->render.unknown_008C) / 24.0); return frame <= static_cast(this->lifeFrames); } // OFFSET: 0x00E50A60 // FUNCTION: fn_24296 void CDummyEffectLauncher::SendMsg(CGameObject* sender, int message, int a, int b, int c, int d, int e, int f, int g, int h, int i, int, int, int, int) { if ((static_cast(a) << 32 | static_cast(message)) != 14) { this->EffectActor::SendMsg(sender, message, a, b, c, d, e, f, g, h, i, 0, 0, 0, 0); return; } const vector3d* position = reinterpret_cast(b); this->render.position.x = position->x; this->render.position.y = position->y; this->render.position.z = position->z; this->render.visible = 0; this->render.unknown_008C = timeGetTime(); if (g_effectMgr->Spawn(0, d, this->render.position.x, this->render.position.y, this->render.position.z, 0, -1, 0, 0) != nullptr) { return; } CRagEffect* effect = this->LaunchEffect(d, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); const std::int64_t life = static_cast(g) << 32 | static_cast(f); if (life == 0) { this->lifeFrames = 300; return; } this->lifeFrames = f; if (life == 333) { vector3d value{static_cast(static_cast(i) << 32 | static_cast(h)), 0.0f, 0.0f}; if (effect != nullptr) { effect->SendMsg(nullptr, 14, 0, reinterpret_cast(&value), 0, 0, 0, 0); } } }