From ec1d5bedb562b7ab5dbcc6172d2e7dcaa994754d Mon Sep 17 00:00:00 2001 From: robojumper Date: Sun, 15 Sep 2024 18:41:30 +0200 Subject: [PATCH] d_t_mole_prohibit OK --- .../rels/d_t_mole_prohibitNP/splits.txt | 4 +- .../rels/d_t_mole_prohibitNP/symbols.txt | 87 ++++++++++--------- configure.py | 2 +- include/d/tg/d_t_mole_prohibit.h | 24 +++++ src/REL/d/t/d_t_mole_prohibit.cpp | 27 ++++++ 5 files changed, 99 insertions(+), 45 deletions(-) create mode 100644 include/d/tg/d_t_mole_prohibit.h diff --git a/config/SOUE01/rels/d_t_mole_prohibitNP/splits.txt b/config/SOUE01/rels/d_t_mole_prohibitNP/splits.txt index d9b80d19..09dbd7bd 100644 --- a/config/SOUE01/rels/d_t_mole_prohibitNP/splits.txt +++ b/config/SOUE01/rels/d_t_mole_prohibitNP/splits.txt @@ -2,7 +2,7 @@ Sections: .text type:code align:16 .ctors type:rodata align:4 .dtors type:rodata align:4 - .rodata type:rodata align:16 + .data type:data align:16 .bss type:bss align:8 REL/executor.c: @@ -16,3 +16,5 @@ REL/global_destructor_chain.c: REL/d/t/d_t_mole_prohibit.cpp: .text start:0x000000F0 end:0x00000998 .ctors start:0x00000000 end:0x00000004 + .data start:0x00000000 end:0x00000204 + .bss start:0x00000008 end:0x00000048 diff --git a/config/SOUE01/rels/d_t_mole_prohibitNP/symbols.txt b/config/SOUE01/rels/d_t_mole_prohibitNP/symbols.txt index 28455312..c0ae8293 100644 --- a/config/SOUE01/rels/d_t_mole_prohibitNP/symbols.txt +++ b/config/SOUE01/rels/d_t_mole_prohibitNP/symbols.txt @@ -3,50 +3,51 @@ _epilog = .text:0x00000030; // type:function size:0x2C scope:global _unresolved = .text:0x00000060; // type:function size:0x4 scope:global __register_global_object = .text:0x00000070; // type:function size:0x1C scope:global __destroy_global_chain = .text:0x00000090; // type:function size:0x54 scope:global -fn_207_F0 = .text:0x000000F0; // type:function size:0xAC -fn_207_1A0 = .text:0x000001A0; // type:function size:0x58 -fn_207_200 = .text:0x00000200; // type:function size:0x58 -fn_207_260 = .text:0x00000260; // type:function size:0x6C -fn_207_2D0 = .text:0x000002D0; // type:function size:0xA0 -fn_207_370 = .text:0x00000370; // type:function size:0xA4 -fn_207_420 = .text:0x00000420; // type:function size:0x38 -fn_207_460 = .text:0x00000460; // type:function size:0x10 -fn_207_470 = .text:0x00000470; // type:function size:0x8 -fn_207_480 = .text:0x00000480; // type:function size:0x30 -fn_207_4B0 = .text:0x000004B0; // type:function size:0x10 -fn_207_4C0 = .text:0x000004C0; // type:function size:0x8 -fn_207_4D0 = .text:0x000004D0; // type:function size:0x4 -fn_207_4E0 = .text:0x000004E0; // type:function size:0x4 -fn_207_4F0 = .text:0x000004F0; // type:function size:0x4 -fn_207_500 = .text:0x00000500; // type:function size:0xC8 -fn_207_5D0 = .text:0x000005D0; // type:function size:0x10 -fn_207_5E0 = .text:0x000005E0; // type:function size:0x60 -fn_207_640 = .text:0x00000640; // type:function size:0xC -fn_207_650 = .text:0x00000650; // type:function size:0x1C -fn_207_670 = .text:0x00000670; // type:function size:0x1C -fn_207_690 = .text:0x00000690; // type:function size:0x1C -fn_207_6B0 = .text:0x000006B0; // type:function size:0x10 -fn_207_6C0 = .text:0x000006C0; // type:function size:0x10 -fn_207_6D0 = .text:0x000006D0; // type:function size:0x10 -fn_207_6E0 = .text:0x000006E0; // type:function size:0x10 -fn_207_6F0 = .text:0x000006F0; // type:function size:0x10 -fn_207_700 = .text:0x00000700; // type:function size:0x10 -fn_207_710 = .text:0x00000710; // type:function size:0x30 -fn_207_740 = .text:0x00000740; // type:function size:0x30 -fn_207_770 = .text:0x00000770; // type:function size:0x30 -fn_207_7A0 = .text:0x000007A0; // type:function size:0x10C -fn_207_8B0 = .text:0x000008B0; // type:function size:0x58 -fn_207_910 = .text:0x00000910; // type:function size:0x88 +dTgMoleProhibit_c_classInit__Fv = .text:0x000000F0; // type:function size:0xAC +__dt__5dTg_cFv = .text:0x000001A0; // type:function size:0x58 +__dt__30sFState_c<17dTgMoleProhibit_c>Fv = .text:0x00000200; // type:function size:0x58 +__dt__33sFStateFct_c<17dTgMoleProhibit_c>Fv = .text:0x00000260; // type:function size:0x6C +__dt__86sStateMgr_c<17dTgMoleProhibit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000002D0; // type:function size:0xA0 +__dt__56sFStateMgr_c<17dTgMoleProhibit_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000370; // type:function size:0xA4 +create__17dTgMoleProhibit_cFv = .text:0x00000420; // type:function size:0x38 +changeState__86sStateMgr_c<17dTgMoleProhibit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x00000460; // type:function size:0x10 +doDelete__17dTgMoleProhibit_cFv = .text:0x00000470; // type:function size:0x8 +actorExecute__17dTgMoleProhibit_cFv = .text:0x00000480; // type:function size:0x30 +executeState__86sStateMgr_c<17dTgMoleProhibit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000004B0; // type:function size:0x10 +draw__17dTgMoleProhibit_cFv = .text:0x000004C0; // type:function size:0x8 +initializeState_Wait__17dTgMoleProhibit_cFv = .text:0x000004D0; // type:function size:0x4 +executeState_Wait__17dTgMoleProhibit_cFv = .text:0x000004E0; // type:function size:0x4 +finalizeState_Wait__17dTgMoleProhibit_cFv = .text:0x000004F0; // type:function size:0x4 +__dt__17dTgMoleProhibit_cFv = .text:0x00000500; // type:function size:0xC8 +getStateID__86sStateMgr_c<17dTgMoleProhibit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x000005D0; // type:function size:0x10 +build__33sFStateFct_c<17dTgMoleProhibit_c>FRC12sStateIDIf_c = .text:0x000005E0; // type:function size:0x60 +dispose__33sFStateFct_c<17dTgMoleProhibit_c>FRP10sStateIf_c = .text:0x00000640; // type:function size:0xC +initialize__30sFState_c<17dTgMoleProhibit_c>Fv = .text:0x00000650; // type:function size:0x1C +execute__30sFState_c<17dTgMoleProhibit_c>Fv = .text:0x00000670; // type:function size:0x1C +finalize__30sFState_c<17dTgMoleProhibit_c>Fv = .text:0x00000690; // type:function size:0x1C +initializeState__86sStateMgr_c<17dTgMoleProhibit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000006B0; // type:function size:0x10 +finalizeState__86sStateMgr_c<17dTgMoleProhibit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000006C0; // type:function size:0x10 +refreshState__86sStateMgr_c<17dTgMoleProhibit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000006D0; // type:function size:0x10 +getState__86sStateMgr_c<17dTgMoleProhibit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x000006E0; // type:function size:0x10 +getNewStateID__86sStateMgr_c<17dTgMoleProhibit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x000006F0; // type:function size:0x10 +getOldStateID__86sStateMgr_c<17dTgMoleProhibit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000700; // type:function size:0x10 +finalizeState__32sFStateID_c<17dTgMoleProhibit_c>CFR17dTgMoleProhibit_c = .text:0x00000710; // type:function size:0x30 +executeState__32sFStateID_c<17dTgMoleProhibit_c>CFR17dTgMoleProhibit_c = .text:0x00000740; // type:function size:0x30 +initializeState__32sFStateID_c<17dTgMoleProhibit_c>CFR17dTgMoleProhibit_c = .text:0x00000770; // type:function size:0x30 +__sinit_\d_t_mole_prohibit_cpp = .text:0x000007A0; // type:function size:0x10C scope:local +__dt__32sFStateID_c<17dTgMoleProhibit_c>Fv = .text:0x000008B0; // type:function size:0x58 +isSameName__32sFStateID_c<17dTgMoleProhibit_c>CFPCc = .text:0x00000910; // type:function size:0x88 _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global __destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global -lbl_207_section4_0 = .rodata:0x00000000; // type:object size:0x10 data:4byte -lbl_207_section4_10 = .rodata:0x00000010; // type:object size:0x78 -lbl_207_section4_88 = .rodata:0x00000088; // type:object size:0x30 -lbl_207_section4_B8 = .rodata:0x000000B8; // type:object size:0x30 -lbl_207_section4_E8 = .rodata:0x000000E8; // type:object size:0x18 -lbl_207_section4_100 = .rodata:0x00000100; // type:object size:0xD0 -lbl_207_section4_1D0 = .rodata:0x000001D0; // type:object size:0x34 +g_profile_MOLE_PROHIBIT_TAG = .data:0x00000000; // type:object size:0x10 data:4byte +__vt__17dTgMoleProhibit_c = .data:0x00000010; // type:object size:0x74 +__vt__56sFStateMgr_c<17dTgMoleProhibit_c,20sStateMethodUsr_FI_c> = .data:0x00000088; // type:object size:0x30 +__vt__86sStateMgr_c<17dTgMoleProhibit_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x000000B8; // type:object size:0x30 +__vt__33sFStateFct_c<17dTgMoleProhibit_c> = .data:0x000000E8; // type:object size:0x14 +__vt__30sFState_c<17dTgMoleProhibit_c> = .data:0x00000100; // type:object size:0x18 +__vt__5dTg_c = .data:0x00000118; // type:object size:0x74 +__vt__32sFStateID_c<17dTgMoleProhibit_c> = .data:0x000001D0; // type:object size:0x34 __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global -lbl_207_bss_8 = .bss:0x00000008; // type:object size:0x10 -lbl_207_bss_18 = .bss:0x00000018; // type:object size:0x30 data:4byte +lbl_207_bss_8 = .bss:0x00000008; // type:object size:0xC scope:local +StateID_Wait__17dTgMoleProhibit_c = .bss:0x00000018; // type:object size:0x30 data:4byte diff --git a/configure.py b/configure.py index eca0c997..0c70f1ee 100644 --- a/configure.py +++ b/configure.py @@ -1148,7 +1148,7 @@ def nw4rLib(lib_name, objects, extra_cflags=[]): Rel(NonMatching, "d_t_minigame_insect_capture", "REL/d/t/d_t_minigame_insect_capture.cpp"), Rel(NonMatching, "d_t_mist", "REL/d/t/d_t_mist.cpp"), Rel(NonMatching, "d_t_mole_mgr", "REL/d/t/d_t_mole_mgr.cpp"), - Rel(NonMatching, "d_t_mole_prohibit", "REL/d/t/d_t_mole_prohibit.cpp"), + Rel(Matching, "d_t_mole_prohibit", "REL/d/t/d_t_mole_prohibit.cpp"), Rel(NonMatching, "d_t_musasabi", "REL/d/t/d_t_musasabi.cpp"), Rel(NonMatching, "d_t_musou", "REL/d/t/d_t_musou.cpp"), Rel(NonMatching, "d_t_noeffect_area", "REL/d/t/d_t_noeffect_area.cpp"), diff --git a/include/d/tg/d_t_mole_prohibit.h b/include/d/tg/d_t_mole_prohibit.h new file mode 100644 index 00000000..090bcc1b --- /dev/null +++ b/include/d/tg/d_t_mole_prohibit.h @@ -0,0 +1,24 @@ +#ifndef D_T_MOLE_PROHIBIT_H +#define D_T_MOLE_PROHIBIT_H + +#include +#include +#include +#include + +class dTgMoleProhibit_c : public dTg_c { +public: + dTgMoleProhibit_c() : mStateMgr(*this, sStateID::null) {} + virtual ~dTgMoleProhibit_c() {} + virtual int create() override; + virtual int actorExecute() override; + virtual int draw() override; + virtual int doDelete() override; + + STATE_FUNC_DECLARE(dTgMoleProhibit_c, Wait); + +private: + STATE_MGR_DECLARE(dTgMoleProhibit_c); +}; + +#endif diff --git a/src/REL/d/t/d_t_mole_prohibit.cpp b/src/REL/d/t/d_t_mole_prohibit.cpp index e69de29b..6eceec13 100644 --- a/src/REL/d/t/d_t_mole_prohibit.cpp +++ b/src/REL/d/t/d_t_mole_prohibit.cpp @@ -0,0 +1,27 @@ +#include + +SPECIAL_ACTOR_PROFILE(MOLE_PROHIBIT_TAG, dTgMoleProhibit_c, fProfile::MOLE_PROHIBIT_TAG, 0x0025, 0, 0); + +STATE_DEFINE(dTgMoleProhibit_c, Wait); + +int dTgMoleProhibit_c::create() { + mStateMgr.changeState(StateID_Wait); + return SUCCEEDED; +} + +int dTgMoleProhibit_c::doDelete() { + return 1; +} + +int dTgMoleProhibit_c::actorExecute() { + mStateMgr.executeState(); + return 1; +} + +int dTgMoleProhibit_c::draw() { + return 1; +} + +void dTgMoleProhibit_c::initializeState_Wait() {} +void dTgMoleProhibit_c::executeState_Wait() {} +void dTgMoleProhibit_c::finalizeState_Wait() {}