From 142380f587e9cbdf0eff993d41ed44d18b389968 Mon Sep 17 00:00:00 2001 From: Orstedra Date: Mon, 26 May 2025 01:52:45 +0200 Subject: [PATCH 1/4] Initial commit --- .../rels/d_t_gate_to_groundNP/symbols.txt | 2 +- include/d/t/d_t_shutter_fence_forbiddance.h | 7 ++++-- src/REL/d/t/d_t_shutter_fence_forbiddance.cpp | 22 ++++++++++++++++++- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/config/SOUE01/rels/d_t_gate_to_groundNP/symbols.txt b/config/SOUE01/rels/d_t_gate_to_groundNP/symbols.txt index 00eb2edf..49256b1d 100644 --- a/config/SOUE01/rels/d_t_gate_to_groundNP/symbols.txt +++ b/config/SOUE01/rels/d_t_gate_to_groundNP/symbols.txt @@ -10,7 +10,7 @@ draw__17dTgGateToGround_cFv = .text:0x000002F0; // type:function size:0x8 __dt__17dTgGateToGround_cFv = .text:0x00000300; // type:function size:0x70 _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global -@20562 = .rodata:0x00000000; // type:object size:0x4 data:float scope:local +@20562 = .rodata:0x00000000; // type:object size:0x4 scope:local data:float g_profile_GATE2GND_TAG = .data:0x00000000; // type:object size:0x10 @20583 = .data:0x00000010; // type:object size:0xC scope:local __vt__17dTgGateToGround_c = .data:0x0000001C; // type:object size:0x74 diff --git a/include/d/t/d_t_shutter_fence_forbiddance.h b/include/d/t/d_t_shutter_fence_forbiddance.h index fed5dab1..5b4dd9b3 100644 --- a/include/d/t/d_t_shutter_fence_forbiddance.h +++ b/include/d/t/d_t_shutter_fence_forbiddance.h @@ -1,13 +1,16 @@ #ifndef D_T_SHUTTER_FENCE_FORBIDDANCE_H #define D_T_SHUTTER_FENCE_FORBIDDANCE_H -#include "d/a/d_a_base.h" +#include "d/t/d_tg.h" -class dTgShutterFenceForbiddance_c : public dAcBase_c { +class dTgShutterFenceForbiddance_c : public dTg_c { public: dTgShutterFenceForbiddance_c(); virtual ~dTgShutterFenceForbiddance_c(); + virtual int create() override; + virtual int actorExecute() override; + private: }; diff --git a/src/REL/d/t/d_t_shutter_fence_forbiddance.cpp b/src/REL/d/t/d_t_shutter_fence_forbiddance.cpp index c85cbf98..71569519 100644 --- a/src/REL/d/t/d_t_shutter_fence_forbiddance.cpp +++ b/src/REL/d/t/d_t_shutter_fence_forbiddance.cpp @@ -1,8 +1,28 @@ #include "d/t/d_t_shutter_fence_forbiddance.h" +#include "common.h" +#include "d/a/d_a_base.h" +#include "f/f_base.h" + SPECIAL_ACTOR_PROFILE( TAG_SHUTTER_FENCE_FORBIDDANCE, dTgShutterFenceForbiddance_c, fProfile::TAG_SHUTTER_FENCE_FORBIDDANCE, 0x2A4, 0, 4 ); -dTgShutterFenceForbiddance_c::dTgShutterFenceForbiddance_c() {} +static dTgShutterFenceForbiddance_c *FIRST_PTR; + +dTgShutterFenceForbiddance_c::dTgShutterFenceForbiddance_c() { + if (!FIRST_PTR) { + FIRST_PTR = this; + } +} dTgShutterFenceForbiddance_c::~dTgShutterFenceForbiddance_c() {} + +int dTgShutterFenceForbiddance_c::create() { + return SUCCEEDED + ((reinterpret_cast(FIRST_PTR) - reinterpret_cast(this) | + reinterpret_cast(this) - reinterpret_cast(FIRST_PTR)) >> + 31); +} + +int dTgShutterFenceForbiddance_c::actorExecute() { + return SUCCEEDED; +} From 9c5ced64b7595083f0fe13051a3d60bda014cffd Mon Sep 17 00:00:00 2001 From: Orstedra Date: Mon, 26 May 2025 01:59:00 +0200 Subject: [PATCH 2/4] symbols --- .../SOUE01/rels/d_t_shutter_fence_forbiddanceNP/symbols.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/SOUE01/rels/d_t_shutter_fence_forbiddanceNP/symbols.txt b/config/SOUE01/rels/d_t_shutter_fence_forbiddanceNP/symbols.txt index 77e4f804..ae45b113 100644 --- a/config/SOUE01/rels/d_t_shutter_fence_forbiddanceNP/symbols.txt +++ b/config/SOUE01/rels/d_t_shutter_fence_forbiddanceNP/symbols.txt @@ -4,10 +4,10 @@ _unresolved = .text:0x00000060; // type:function size:0x4 scope:global dTgShutterFenceForbiddance_c_classInit__Fv = .text:0x00000070; // type:function size:0x30 __ct__28dTgShutterFenceForbiddance_cFv = .text:0x000000A0; // type:function size:0x50 __dt__28dTgShutterFenceForbiddance_cFv = .text:0x000000F0; // type:function size:0x7C -TgShutterFenceForbiddance__init = .text:0x00000170; // type:function size:0x20 -fn_631_190 = .text:0x00000190; // type:function size:0x60 +create__28dTgShutterFenceForbiddance_cFv = .text:0x00000170; // type:function size:0x20 +actorExecute__28dTgShutterFenceForbiddance_cFv = .text:0x00000190; // type:function size:0x60 _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global g_profile_TAG_SHUTTER_FENCE_FORBIDDANCE = .data:0x00000000; // type:object size:0x10 -lbl_631_section4_10 = .data:0x00000010; // type:object size:0x74 +__vt__28dTgShutterFenceForbiddance_c = .data:0x00000010; // type:object size:0x74 TgShutterFenceForbiddance__FIRST_PTR = .bss:0x00000008; // type:object size:0x4 data:4byte From 89f38598fa5f63310c02158a8069a813bbc4c615 Mon Sep 17 00:00:00 2001 From: Orstedra Date: Mon, 26 May 2025 02:06:50 +0200 Subject: [PATCH 3/4] create clean --- src/REL/d/t/d_t_shutter_fence_forbiddance.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/REL/d/t/d_t_shutter_fence_forbiddance.cpp b/src/REL/d/t/d_t_shutter_fence_forbiddance.cpp index 71569519..097edd56 100644 --- a/src/REL/d/t/d_t_shutter_fence_forbiddance.cpp +++ b/src/REL/d/t/d_t_shutter_fence_forbiddance.cpp @@ -18,9 +18,10 @@ dTgShutterFenceForbiddance_c::dTgShutterFenceForbiddance_c() { dTgShutterFenceForbiddance_c::~dTgShutterFenceForbiddance_c() {} int dTgShutterFenceForbiddance_c::create() { - return SUCCEEDED + ((reinterpret_cast(FIRST_PTR) - reinterpret_cast(this) | - reinterpret_cast(this) - reinterpret_cast(FIRST_PTR)) >> - 31); + if (this != FIRST_PTR) { + return FAILED; + } + return SUCCEEDED; } int dTgShutterFenceForbiddance_c::actorExecute() { From 059c7f3ca80123062aa2c8141ea5eb592ab24ee7 Mon Sep 17 00:00:00 2001 From: Orstedra Date: Mon, 26 May 2025 18:42:46 +0200 Subject: [PATCH 4/4] actorExecute missing --- src/REL/d/t/d_t_shutter_fence_forbiddance.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/REL/d/t/d_t_shutter_fence_forbiddance.cpp b/src/REL/d/t/d_t_shutter_fence_forbiddance.cpp index 097edd56..82f5c395 100644 --- a/src/REL/d/t/d_t_shutter_fence_forbiddance.cpp +++ b/src/REL/d/t/d_t_shutter_fence_forbiddance.cpp @@ -1,7 +1,6 @@ #include "d/t/d_t_shutter_fence_forbiddance.h" #include "common.h" -#include "d/a/d_a_base.h" #include "f/f_base.h" SPECIAL_ACTOR_PROFILE( @@ -15,7 +14,11 @@ dTgShutterFenceForbiddance_c::dTgShutterFenceForbiddance_c() { FIRST_PTR = this; } } -dTgShutterFenceForbiddance_c::~dTgShutterFenceForbiddance_c() {} +dTgShutterFenceForbiddance_c::~dTgShutterFenceForbiddance_c() { + if (this == FIRST_PTR) { + FIRST_PTR = nullptr; + } +} int dTgShutterFenceForbiddance_c::create() { if (this != FIRST_PTR) { @@ -24,6 +27,7 @@ int dTgShutterFenceForbiddance_c::create() { return SUCCEEDED; } +// TODO after finding out more about d_a_obj_door_base int dTgShutterFenceForbiddance_c::actorExecute() { return SUCCEEDED; }