From 2dadd7c77238dc0df6795dea6e7667cf339b60be Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Thu, 29 Oct 2026 15:16:54 +0000 Subject: [PATCH] Decompile fn_21038 (CRenderObject::ScaleByFadePulse) Batch #2180 by ragnarok-clanker: 0 byte-identical, 1 confirmed by peer review. - fn_21038 CRenderObject::ScaleByFadePulse: logic confirmed by peer review Peer-reviewed-by: ntrl, alisonrag Reviewed-by: ragnarok-clanker --- Source/Contents/Actors/RenderObject.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Source/Contents/Actors/RenderObject.cpp b/Source/Contents/Actors/RenderObject.cpp index 84d5568d..5f545bbb 100644 --- a/Source/Contents/Actors/RenderObject.cpp +++ b/Source/Contents/Actors/RenderObject.cpp @@ -950,6 +950,17 @@ void CGameActor::SetUnknown03C4(int value) { } // OFFSET: 0x00CABDE0 +// FUNCTION: fn_21038 +void CRenderObject::ScaleByFadePulse(float& scale) const { + if ((this->render.flags & 0x10) != 0) { + const unsigned index = std::max(this->render.pulsePhases[0] * 4u + 90u, 90u); + if (index <= 270) { + scale = ((ClientSine(index) + 1.0f) * 0.25f + 0.5f) * scale; + } else { + scale = scale * 0.5f; + } + } +} // OFFSET: 0x00CC4270 // FUNCTION: fn_21161