From 088d803803adfe7f6df0555251bfa2c8deb75a04 Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Fri, 30 Oct 2026 12:56:38 +0000 Subject: [PATCH] Decompile fn_03181 (CEfstAction_AnimalForm::Slot01) Batch #5539 by Yommy: 0 byte-identical, 1 confirmed by peer review. - fn_03181 CEfstAction_AnimalForm::Slot01: logic confirmed by peer review Peer-reviewed-by: eAthena, willerthal Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes). --- Source/Contents/Skills/SkillActionAlitea.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Source/Contents/Skills/SkillActionAlitea.cpp b/Source/Contents/Skills/SkillActionAlitea.cpp index 54e4dfe1f..b1b0c5588 100644 --- a/Source/Contents/Skills/SkillActionAlitea.cpp +++ b/Source/Contents/Skills/SkillActionAlitea.cpp @@ -1,4 +1,5 @@ #include "Client/Mode/CGameMode.h" +#include "Client/Session.h" #include "Client/Mode/ModeMgr.h" #include "Contents/Actors/GameActor.h" #include "Contents/Actors/Pc.h" @@ -19,6 +20,7 @@ #include #include #include +#include namespace { @@ -62,6 +64,7 @@ public: class CSkillAction_Direction { public: + void SpawnDirectionalEffect(CGameActor* source, CGameActor* target, std::string_view name); int GetDirection(float angle); bool IsValidDirection(unsigned int direction); }; @@ -127,12 +130,15 @@ public: class CEfstAction_AnimalForm : public CEfstAction { public: + void Slot01(int efstId, int argument2, int argument3, int argument4, CRenderObject* actor) override; + void ResetAnimalForm(CRenderObject* actor); void Slot02(int efstId, int value, int argument3, int argument4, CRenderObject* actor) override; }; class CSkillAction_AT_ALPHA_CLAW : public CSkillAction_DamageWereWolfForm { public: int Slot02() override; + void Slot11(int level, CGameActor* source, CGameActor* target) override; }; class CSkillAction_AT_PULSE_OF_MADNESS : public CSkillAction_DamageWereWolfForm { @@ -453,6 +459,8 @@ void CSkillAction_ThunderingExpand::Slot17(CGameActor* source) { } } +// OFFSET: 0x005A5AC0 + // OFFSET: 0x005A5D20 // FUNCTION: fn_03161 int CSkillAction_Earthing::Slot01() { @@ -608,6 +616,12 @@ void CSkillAction_Thundering::Slot08(int level, CGameActor* source) { } } +// OFFSET: 0x005A6470 +// FUNCTION: fn_03181 +void CEfstAction_AnimalForm::Slot01(int efstId, int argument2, int argument3, int argument4, CRenderObject* actor) { + this->ResetAnimalForm(actor); +} + // OFFSET: 0x005A6480 // FUNCTION: fn_03182 void CEfstAction_BasicAction::Slot01(int efstId, int argument2, int argument3, int argument4, CRenderObject* actor) { @@ -633,12 +647,16 @@ void CEfstAction_BasicAction::Slot02(int efstId, int value, int argument3, int a } } +// OFFSET: 0x005A6510 + // OFFSET: 0x005A6790 // FUNCTION: fn_03187 int CSkillAction_AT_ALPHA_CLAW::Slot02() { return 76; } +// OFFSET: 0x005A67A0 + // OFFSET: 0x005A69B0 // FUNCTION: fn_03189 int CSkillAction_AT_PULSE_OF_MADNESS::Slot01() {