From 23b964f4fba304dee75c716076a4e39416a8ab51 Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Thu, 29 Oct 2026 20:02:03 +0000 Subject: [PATCH] Decompile 7 functions in Source/Contents/EffectResourceSwitcher.cpp, Source/Contents/EffectResourceSwitcher.h, ... Batch #2954 by eAthena: 0 byte-identical, 7 confirmed by peer review. - fn_06977 CEZ2STREffect::Slot14: logic confirmed by peer review - fn_06978 CEZ2STREffect::Slot17: logic confirmed by peer review - fn_06979 CEZ2STREffect::Slot18: logic confirmed by peer review - fn_06980 CEZ2STREffect::Slot19: logic confirmed by peer review - fn_06981 CEZ2STREffect::Slot22: logic confirmed by peer review - fn_06982 CEZ2STREffect::Slot16: logic confirmed by peer review - fn_06988 CEZ2STREffectMgr::FindById: logic confirmed by peer review Peer-reviewed-by: meitogi, bigodeira Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes). --- Source/Contents/EffectResourceSwitcher.cpp | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/Source/Contents/EffectResourceSwitcher.cpp b/Source/Contents/EffectResourceSwitcher.cpp index 472af9bd..780d3f9a 100644 --- a/Source/Contents/EffectResourceSwitcher.cpp +++ b/Source/Contents/EffectResourceSwitcher.cpp @@ -292,18 +292,66 @@ void CEZ2STREffect::Slot32() { } // OFFSET: 0x006FFF90 +// FUNCTION: fn_06977 +void CEZ2STREffect::Slot14(int argument) { + if (this->emitter) { + this->emitter->unknown_3F98 = argument; + } +} // OFFSET: 0x006FFFB0 +// FUNCTION: fn_06978 +void CEZ2STREffect::Slot17(float argument) { + if (this->emitter) { + this->emitter->unknown_3FA4 = argument; + } +} // OFFSET: 0x006FFFD0 +// FUNCTION: fn_06979 +void CEZ2STREffect::Slot18(float argument) { + if (this->emitter) { + this->emitter->unknown_3FA8 = argument; + } +} // OFFSET: 0x006FFFF0 +// FUNCTION: fn_06980 +void CEZ2STREffect::Slot19(float argument) { + if (this->emitter) { + this->emitter->unknown_3FAC = argument; + } +} // OFFSET: 0x00700010 +// FUNCTION: fn_06981 +void CEZ2STREffect::Slot22(float argument) { + if (this->emitter) { + this->emitter->unknown_3FB0 = argument; + } +} // OFFSET: 0x00700030 +// FUNCTION: fn_06982 +void CEZ2STREffect::Slot16(int argument) { + if (this->emitter) { + this->emitter->duration = argument; + } + + this->frameStep = argument / 16; + this->SetEventFrame(0, this->frameStep + 1); +} // OFFSET: 0x00700A10 +// FUNCTION: fn_06988 +EZ2STREffectInfo* CEZ2STREffectMgr::FindById(int id) { + auto it = this->effects.begin(); + while (it != this->effects.end() && id != it->second.id + 10000) { + ++it; + } + + return it != this->effects.end() ? &it->second : nullptr; +} // OFFSET: 0x00700A90 // FUNCTION: fn_06989