From 42a26121ef09cce9ee336970d8b7dc705ce258f9 Mon Sep 17 00:00:00 2001 From: Orstedra Date: Tue, 27 May 2025 20:04:07 +0200 Subject: [PATCH] Initial commit --- .../rels/d_a_obj_girahim_footNP/symbols.txt | 13 ++++----- include/d/a/obj/d_a_obj_girahim_foot.h | 11 ++++++++ src/REL/d/a/obj/d_a_obj_girahim_foot.cpp | 28 +++++++++++++++++++ 3 files changed, 45 insertions(+), 7 deletions(-) diff --git a/config/SOUE01/rels/d_a_obj_girahim_footNP/symbols.txt b/config/SOUE01/rels/d_a_obj_girahim_footNP/symbols.txt index e1c14531..5b3720b2 100644 --- a/config/SOUE01/rels/d_a_obj_girahim_footNP/symbols.txt +++ b/config/SOUE01/rels/d_a_obj_girahim_footNP/symbols.txt @@ -9,17 +9,16 @@ __dt__30sFState_c<17dAcOgirahimFoot_c>Fv = .text:0x00000220; // type:function si __dt__33sFStateFct_c<17dAcOgirahimFoot_c>Fv = .text:0x00000280; // type:function size:0x6C __dt__86sStateMgr_c<17dAcOgirahimFoot_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000002F0; // type:function size:0xA0 __dt__56sFStateMgr_c<17dAcOgirahimFoot_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000390; // type:function size:0xA4 -fn_425_440 = .text:0x00000440; // type:function size:0x80 -fn_425_4C0 = .text:0x000004C0; // type:function size:0xE8 +createHeap__17dAcOgirahimFoot_cFv = .text:0x00000440; // type:function size:0x80 +create__17dAcOgirahimFoot_cFv = .text:0x000004C0; // type:function size:0xE8 changeState__86sStateMgr_c<17dAcOgirahimFoot_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x000005B0; // type:function size:0x10 -fn_425_5C0 = .text:0x000005C0; // type:function size:0x8 -fn_425_5D0 = .text:0x000005D0; // type:function size:0x30 +doDelete__17dAcOgirahimFoot_cFv = .text:0x000005C0; // type:function size:0x8 +actorExecute__17dAcOgirahimFoot_cFv = .text:0x000005D0; // type:function size:0x30 executeState__86sStateMgr_c<17dAcOgirahimFoot_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000600; // type:function size:0x10 -fn_425_610 = .text:0x00000610; // type:function size:0xF4 +draw__17dAcOgirahimFoot_cFv = .text:0x00000610; // type:function size:0xF4 getStateID__86sStateMgr_c<17dAcOgirahimFoot_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000710; // type:function size:0x10 initializeState_Wait__17dAcOgirahimFoot_cFv = .text:0x00000720; // type:function size:0xC -executeState_Wait__17dAcOgirahimFoot_cFv = .text:0x00000730; // type:function size:0x24 -fn_425_754 = .text:0x00000754; // type:function size:0x4 +executeState_Wait__17dAcOgirahimFoot_cFv = .text:0x00000730; // type:function size:0x28 finalizeState_Wait__17dAcOgirahimFoot_cFv = .text:0x00000760; // type:function size:0x4 initializeState_Appear__17dAcOgirahimFoot_cFv = .text:0x00000770; // type:function size:0xC executeState_Appear__17dAcOgirahimFoot_cFv = .text:0x00000780; // type:function size:0x68 diff --git a/include/d/a/obj/d_a_obj_girahim_foot.h b/include/d/a/obj/d_a_obj_girahim_foot.h index 01476278..f8d5ee85 100644 --- a/include/d/a/obj/d_a_obj_girahim_foot.h +++ b/include/d/a/obj/d_a_obj_girahim_foot.h @@ -2,6 +2,8 @@ #define D_A_OBJ_GIRAHIM_FOOT_H #include "d/a/obj/d_a_obj_base.h" +#include "m/m3d/m_smdl.h" +#include "nw4r/g3d/res/g3d_resfile.h" #include "s/s_State.hpp" #include "s/s_StateMgr.hpp" @@ -10,10 +12,19 @@ public: dAcOgirahimFoot_c() : mStateMgr(*this, sStateID::null) {} virtual ~dAcOgirahimFoot_c() {} + virtual int create() override; // fn_425_4C0 + virtual int doDelete() override; // fn_425_5C0 + virtual int draw() override; // fn_425_610 + virtual bool createHeap() override; // fn_425_440 + virtual int actorExecute() override; // fn_425_5D0 + STATE_FUNC_DECLARE(dAcOgirahimFoot_c, Wait); STATE_FUNC_DECLARE(dAcOgirahimFoot_c, Appear); private: + nw4r::g3d::ResFile mRes; + + m3d::smdl_c mMdl; /* 0x??? */ STATE_MGR_DECLARE(dAcOgirahimFoot_c); }; diff --git a/src/REL/d/a/obj/d_a_obj_girahim_foot.cpp b/src/REL/d/a/obj/d_a_obj_girahim_foot.cpp index c873f90a..d6bef2e5 100644 --- a/src/REL/d/a/obj/d_a_obj_girahim_foot.cpp +++ b/src/REL/d/a/obj/d_a_obj_girahim_foot.cpp @@ -1,10 +1,38 @@ #include "d/a/obj/d_a_obj_girahim_foot.h" +#include "d/a/obj/d_a_obj_base.h" +#include "f/f_base.h" +#include "nw4r/g3d/res/g3d_resfile.h" + SPECIAL_ACTOR_PROFILE(OBJ_GIRAHIM_FOOT, dAcOgirahimFoot_c, fProfile::OBJ_GIRAHIM_FOOT, 0x210, 0, 6); STATE_DEFINE(dAcOgirahimFoot_c, Wait); STATE_DEFINE(dAcOgirahimFoot_c, Appear); +int dAcOgirahimFoot_c::create() { + return SUCCEEDED; +} + +int dAcOgirahimFoot_c::doDelete() { + return SUCCEEDED; +}; + +int dAcOgirahimFoot_c::draw() { + return SUCCEEDED; +} + +bool dAcOgirahimFoot_c::createHeap() { + mRes = nw4r::g3d::ResFile(getOarcResFile("Girahim_Foot")); + + nw4r::g3d::ResMdl resMdl = mRes.GetResMdl("Girahim_Foot"); + + TRY_CREATE(mMdl.create(resMdl, &heap_allocator, 0x120, 1, nullptr)); +} + +int dAcOgirahimFoot_c::actorExecute() { + return SUCCEEDED; +} + void dAcOgirahimFoot_c::initializeState_Wait() {} void dAcOgirahimFoot_c::executeState_Wait() {} void dAcOgirahimFoot_c::finalizeState_Wait() {}