From f8a8f00a753474dfccc0d623190e5c26e3056f5d Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Tue, 10 Nov 2026 09:50:32 +0000 Subject: [PATCH] Decompile fn_07436 (CShadowExceedNew::OnProcess) Batch #15655 by Yommy: 0 byte-identical, 1 confirmed by peer review. - fn_07436 CShadowExceedNew::OnProcess: logic confirmed by peer review Peer-reviewed-by: ragnarok-clanker, eAthena Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes). --- .../Effects/ShadowExceedNewEffect.cpp | 30 +++++++++---------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/Source/Contents/Effects/ShadowExceedNewEffect.cpp b/Source/Contents/Effects/ShadowExceedNewEffect.cpp index 3928575c1..e83563197 100644 --- a/Source/Contents/Effects/ShadowExceedNewEffect.cpp +++ b/Source/Contents/Effects/ShadowExceedNewEffect.cpp @@ -109,30 +109,28 @@ void CShadowExceedNew::OnProcess() { this->drawBackEmitters = static_cast(direction - 2) < 4; for (auto it = this->frontEmitters.begin(); it != this->frontEmitters.end();) { - CEZ2STRParticle* emitter = *it; - emitter->position.x = x + emitter->offsetX; - emitter->position.y = y + emitter->offsetY; - emitter->position.z = z + emitter->offsetZ; - emitter->m_flipX = direction == 0 || direction == 1; - if (!emitter->Process(0.0f, 0.0f, 0.0f)) { + (*it)->position.x = x + (*it)->offsetX; + (*it)->position.y = y + (*it)->offsetY; + (*it)->position.z = z + (*it)->offsetZ; + (*it)->m_flipX = direction == 0 || direction == 1; + if ((*it)->Process(0.0f, 0.0f, 0.0f)) { + ++it; + } else { FreeParticle(*it); it = this->frontEmitters.erase(it); - } else { - ++it; } } for (auto it = this->backEmitters.begin(); it != this->backEmitters.end();) { - CEZ2STRParticle* emitter = *it; - emitter->position.x = x + emitter->offsetX; - emitter->position.y = y + emitter->offsetY; - emitter->position.z = z + emitter->offsetZ; - emitter->m_flipX = direction == 4 || direction == 5; - if (!emitter->Process(0.0f, 0.0f, 0.0f)) { + (*it)->position.x = x + (*it)->offsetX; + (*it)->position.y = y + (*it)->offsetY; + (*it)->position.z = z + (*it)->offsetZ; + (*it)->m_flipX = direction == 4 || direction == 5; + if ((*it)->Process(0.0f, 0.0f, 0.0f)) { + ++it; + } else { FreeParticle(*it); it = this->backEmitters.erase(it); - } else { - ++it; } } }