From d6ce4268fd7d242eeee24b9f2b7bfe5a46ea2778 Mon Sep 17 00:00:00 2001 From: Max <34987259+mparisi20@users.noreply.github.com> Date: Fri, 22 May 2026 00:52:14 -0400 Subject: [PATCH] Match so_module_accesser.cpp --- config/RSBE01_02/rels/sora_melee/splits.txt | 4 + config/RSBE01_02/rels/sora_melee/symbols.txt | 18 +- configure.py | 1 + include/lib/BrawlHeaders | 2 +- .../sora_melee/so/so_module_accesser.cpp | 238 ++++++++++++++++++ 5 files changed, 253 insertions(+), 10 deletions(-) create mode 100644 src/mo_melee/sora_melee/so/so_module_accesser.cpp diff --git a/config/RSBE01_02/rels/sora_melee/splits.txt b/config/RSBE01_02/rels/sora_melee/splits.txt index 45dfe61..da58770 100644 --- a/config/RSBE01_02/rels/sora_melee/splits.txt +++ b/config/RSBE01_02/rels/sora_melee/splits.txt @@ -33,6 +33,10 @@ mo_melee/sora_melee/so/so_heap_module_impl.cpp: .text start:0x000649FC end:0x00064A90 .data start:0x00007328 end:0x000073A8 +mo_melee/sora_melee/so/so_module_accesser.cpp: + .text start:0x0006821C end:0x000687F8 + .data start:0x00007898 end:0x000078D0 + mo_melee/sora_melee/so/so_resource_module_impl.cpp: .text start:0x0006F850 end:0x0006FCF4 .data start:0x00008028 end:0x000080F8 diff --git a/config/RSBE01_02/rels/sora_melee/symbols.txt b/config/RSBE01_02/rels/sora_melee/symbols.txt index 82747d0..b564904 100644 --- a/config/RSBE01_02/rels/sora_melee/symbols.txt +++ b/config/RSBE01_02/rels/sora_melee/symbols.txt @@ -2340,12 +2340,12 @@ isStop__16soStopModuleImplFv = .text:0x000681F0; // type:function size:0x18 scop setHitStop__16soStopModuleImplFv = .text:0x00068208; // type:function size:0x4 scope:weak @4@notifyEventAnimCmd__16soStopModuleImplFP9acAnimCmdP16soModuleAccesserl = .text:0x0006820C; // type:function size:0x8 scope:weak @4@isObserv__16soStopModuleImplFc = .text:0x00068214; // type:function size:0x8 scope:weak -fn_27_6821C = .text:0x0006821C; // type:function size:0x1AC -fn_27_683C8 = .text:0x000683C8; // type:function size:0x1D0 -fn_27_68598 = .text:0x00068598; // type:function size:0x1F4 -fn_27_6878C = .text:0x0006878C; // type:function size:0x40 -fn_27_687CC = .text:0x000687CC; // type:function size:0x14 -fn_27_687E0 = .text:0x000687E0; // type:function size:0x18 +__ct__19soModuleEnumerationFP16soResourceModuleP13soModelModuleP14soMotionModuleP15soPostureModuleP14soGroundModuleP17soSituationModulePvP23soCollisionAttackModuleP20soCollisionHitModuleP23soCollisionShieldModuleP23soCollisionShieldModuleP23soCollisionShieldModulePvP23soCollisionSearchModuleP14soDamageModulePvPvP12soStopModulePvPvP13soSoundModuleP12soLinkModuleP18soVisibilityModuleP18soControllerModuleP14soCameraModuleP18soWorkManageModulePvP15soAnimCmdModuleP14soStatusModulePvPvP15soKineticModuleP19soEventManageModulePvP14soEffectModulePvP12soAreaModulePvPvPvPvP14soShadowModuleP18soItemManageModuleP18soColorBlendModulePvPvP12soSlowModulePvPvP22soParamCustomizeModulePvPv = .text:0x0006821C; // type:function size:0x1AC +__ct__16soModuleAccesserFv = .text:0x000683C8; // type:function size:0x1D0 +__ct__16soModuleAccesserFP11StageObjectP16soResourceModuleP13soModelModuleP14soMotionModuleP15soPostureModuleP14soGroundModuleP17soSituationModulePvP23soCollisionAttackModuleP20soCollisionHitModuleP23soCollisionShieldModuleP23soCollisionShieldModuleP23soCollisionShieldModulePvP23soCollisionSearchModuleP14soDamageModulePvPvP12soStopModulePvPvP13soSoundModuleP12soLinkModuleP18soVisibilityModuleP18soControllerModuleP14soCameraModuleP18soWorkManageModulePvP15soAnimCmdModuleP14soStatusModulePvPvP15soKineticModuleP19soEventManageModulePvP14soEffectModulePvP12soAreaModulePvPvPvPvP14soShadowModuleP18soItemManageModuleP18soColorBlendModulePvPvP12soSlowModulePvPvP22soParamCustomizeModulePv = .text:0x00068598; // type:function size:0x1F4 +__dt__16soModuleAccesserFv = .text:0x0006878C; // type:function size:0x40 +activate__16soModuleAccesserFv = .text:0x000687CC; // type:function size:0x14 +deactivate__16soModuleAccesserFv = .text:0x000687E0; // type:function size:0x18 fn_27_687F8 = .text:0x000687F8; // type:function size:0x14 fn_27_6880C = .text:0x0006880C; // type:function size:0x40 fn_27_6884C = .text:0x0006884C; // type:function size:0x1C @@ -28695,9 +28695,9 @@ lbl_27_data_7828 = .data:0x00007828; // type:object size:0x8 lbl_27_data_7830 = .data:0x00007830; // type:object size:0x50 lbl_27_data_7880 = .data:0x00007880; // type:object size:0xD data:string lbl_27_data_7890 = .data:0x00007890; // type:object size:0x8 -lbl_27_data_7898 = .data:0x00007898; // type:object size:0x18 +__vt__16soModuleAccesser = .data:0x00007898; // type:object size:0x18 lbl_27_data_78B0 = .data:0x000078B0; // type:object size:0x11 data:string -lbl_27_data_78C8 = .data:0x000078C8; // type:object size:0x8 +__RTTI__16soModuleAccesser = .data:0x000078C8; // type:object size:0x8 lbl_27_data_78D0 = .data:0x000078D0; // type:object size:0x2C lbl_27_data_78FC = .data:0x000078FC; // type:object size:0x14 data:string lbl_27_data_7910 = .data:0x00007910; // type:object size:0x10 @@ -38793,7 +38793,7 @@ lbl_27_bss_684 = .bss:0x00000684; // type:object size:0x18 lbl_27_bss_69C = .bss:0x0000069C; // type:object size:0x34 data:4byte lbl_27_bss_6D0 = .bss:0x000006D0; // type:object size:0x18 lbl_27_bss_6E8 = .bss:0x000006E8; // type:object size:0x8 data:byte -lbl_27_bss_6F0 = .bss:0x000006F0; // type:object size:0xD8 data:4byte +NullObject__19soModuleEnumeration = .bss:0x000006F0; // type:object size:0xD8 data:4byte g_soModuleAccesserNull = .bss:0x000007C8; // type:object size:0xEC lbl_27_bss_8B4 = .bss:0x000008B4; // type:object size:0x10 lbl_27_bss_8C4 = .bss:0x000008C4; // type:object size:0x10 diff --git a/configure.py b/configure.py index 0f51a74..5c9d283 100755 --- a/configure.py +++ b/configure.py @@ -809,6 +809,7 @@ def MatchingFor(*versions): Object(Matching, "mo_melee/sora_melee/so/anim/so_anim_chr.cpp"), Object(Matching, "mo_melee/sora_melee/so/so_controller_module_link_ref.cpp"), Object(Matching, "mo_melee/sora_melee/so/so_heap_module_impl.cpp"), + Object(Matching, "mo_melee/sora_melee/so/so_module_accesser.cpp"), Object(Matching, "mo_melee/sora_melee/so/so_resource_module_impl.cpp"), Object(Matching, "mo_melee/sora_melee/so/so_general_work.cpp"), Object(Matching, "mo_melee/sora_melee/so/so_general_work_abstract.cpp"), diff --git a/include/lib/BrawlHeaders b/include/lib/BrawlHeaders index bfc66bc..6e7c375 160000 --- a/include/lib/BrawlHeaders +++ b/include/lib/BrawlHeaders @@ -1 +1 @@ -Subproject commit bfc66bc6e7eb43be077c03f506dc6f8391459350 +Subproject commit 6e7c375a9ab22f2444611f497ddb0736674dfa33 diff --git a/src/mo_melee/sora_melee/so/so_module_accesser.cpp b/src/mo_melee/sora_melee/so/so_module_accesser.cpp new file mode 100644 index 0000000..794f760 --- /dev/null +++ b/src/mo_melee/sora_melee/so/so_module_accesser.cpp @@ -0,0 +1,238 @@ +#include +#include +#include + +soModuleEnumeration::soModuleEnumeration( + soResourceModule* resourceModule, + soModelModule* modelModule, + soMotionModule* motionModule, + soPostureModule* postureModule, + soGroundModule* groundModule, + soSituationModule* situationModule, + void* teamModule, + soCollisionAttackModule* collisionAttackModule, + soCollisionHitModule* collisionHitModule, + soCollisionShieldModule* collisionShieldModule, + soCollisionShieldModule* collisionReflectorModule, + soCollisionShieldModule* collisionAbsorberModule, + void* collisionCatchModule, + soCollisionSearchModule* collisionSearchModule, + soDamageModule* damageModule, + void* catchModule, + void* captureModule, + soStopModule* stopModule, + void* turnModule, + void* shakeModule, + soSoundModule* soundModule, + soLinkModule* linkModule, + soVisibilityModule* visibilityModule, + soControllerModule* controllerModule, + soCameraModule* cameraModule, + soWorkManageModule* workManageModule, + void* debugModule, + soAnimCmdModule* animCmdModule, + soStatusModule* statusModule, + void* generalTermDecideModule, + void* switchDecideModule, + soKineticModule* kineticModule, + soEventManageModule* eventManageModule, + void* generateArticleManageModule, + soEffectModule* effectModule, + void* comboModule, + soAreaModule* areaModule, + void* territoryModule, + void* targetSearchModule, + void* physicsModule, + void* slopeModule, + soShadowModule* shadowModule, + soItemManageModule* itemManageModule, + soColorBlendModule* colorBlendModule, + void* jostleModule, + void* abnormalModule, + soSlowModule* slowModule, + void* reflectModule, + void* heapModule, + soParamCustomizeModule* paramCustomizeModule, + void* glowModule, + void* unusedParam) +{ + m_resourceModule = resourceModule; + m_modelModule = modelModule; + m_motionModule = motionModule; + m_postureModule = postureModule; + m_groundModule = groundModule; + m_situationModule = situationModule; + m_teamModule = teamModule; + m_collisionAttackModule = collisionAttackModule; + m_collisionHitModule = collisionHitModule; + m_collisionShieldModule = collisionShieldModule; + m_collisionReflectorModule = collisionReflectorModule; + m_collisionAbsorberModule = collisionAbsorberModule; + m_collisionCatchModule = collisionCatchModule; + m_collisionSearchModule = collisionSearchModule; + m_damageModule = damageModule; + m_catchModule = catchModule; + m_captureModule = captureModule; + m_stopModule = stopModule; + m_turnModule = turnModule; + m_shakeModule = shakeModule; + m_soundModule = soundModule; + m_linkModule = linkModule; + m_visibilityModule = visibilityModule; + m_controllerModule = controllerModule; + m_cameraModule = cameraModule; + m_workManageModule = workManageModule; + m_debugModule = debugModule; + m_animCmdModule = animCmdModule; + m_statusModule = statusModule; + m_generalTermDecideModule = generalTermDecideModule; + m_switchDecideModule = switchDecideModule; + m_kineticModule = kineticModule; + m_eventManageModule = eventManageModule; + m_generateArticleManageModule = generateArticleManageModule; + m_effectModule = effectModule; + m_comboModule = comboModule; + m_areaModule = areaModule; + m_territoryModule = territoryModule; + m_targetSearchModule = targetSearchModule; + m_physicsModule = physicsModule; + m_slopeModule = slopeModule; + m_shadowModule = shadowModule; + m_itemManageModule = itemManageModule; + m_colorBlendModule = colorBlendModule; + m_jostleModule = jostleModule; + m_abnormalModule = abnormalModule; + m_slowModule = slowModule; + m_reflectModule = reflectModule; + m_heapModule = heapModule; + m_paramCustomizeModule = paramCustomizeModule; + m_glowModule = glowModule; +} + +soModuleAccesser::soModuleAccesser() : + soActivatable(true), + m_stageObject(nullptr), + m_moduleEnumeration(), + m_enumerationStart(&m_moduleEnumeration) { } + +soModuleAccesser::soModuleAccesser( + StageObject* stageObject, + soResourceModule* resourceModule, + soModelModule* modelModule, + soMotionModule* motionModule, + soPostureModule* postureModule, + soGroundModule* groundModule, + soSituationModule* situationModule, + void* teamModule, + soCollisionAttackModule* collisionAttackModule, + soCollisionHitModule* collisionHitModule, + soCollisionShieldModule* collisionShieldModule, + soCollisionShieldModule* collisionReflectorModule, + soCollisionShieldModule* collisionAbsorberModule, + void* collisionCatchModule, + soCollisionSearchModule* collisionSearchModule, + soDamageModule* damageModule, + void* catchModule, + void* captureModule, + soStopModule* stopModule, + void* turnModule, + void* shakeModule, + soSoundModule* soundModule, + soLinkModule* linkModule, + soVisibilityModule* visibilityModule, + soControllerModule* controllerModule, + soCameraModule* cameraModule, + soWorkManageModule* workManageModule, + void* debugModule, + soAnimCmdModule* animCmdModule, + soStatusModule* statusModule, + void* generalTermDecideModule, + void* switchDecideModule, + soKineticModule* kineticModule, + soEventManageModule* eventManageModule, + void* generateArticleManageModule, + soEffectModule* effectModule, + void* comboModule, + soAreaModule* areaModule, + void* territoryModule, + void* targetSearchModule, + void* physicsModule, + void* slopeModule, + soShadowModule* shadowModule, + soItemManageModule* itemManageModule, + soColorBlendModule* colorBlendModule, + void* jostleModule, + void* abnormalModule, + soSlowModule* slowModule, + void* reflectModule, + void* heapModule, + soParamCustomizeModule* paramCustomizeModule, + void* glowModule) : + soActivatable(true), + m_stageObject(stageObject), + m_moduleEnumeration( + resourceModule, + modelModule, + motionModule, + postureModule, + groundModule, + situationModule, + teamModule, + collisionAttackModule, + collisionHitModule, + collisionShieldModule, + collisionReflectorModule, + collisionAbsorberModule, + collisionCatchModule, + collisionSearchModule, + damageModule, + catchModule, + captureModule, + stopModule, + turnModule, + shakeModule, + soundModule, + linkModule, + visibilityModule, + controllerModule, + cameraModule, + workManageModule, + debugModule, + animCmdModule, + statusModule, + generalTermDecideModule, + switchDecideModule, + kineticModule, + eventManageModule, + generateArticleManageModule, + effectModule, + comboModule, + areaModule, + territoryModule, + targetSearchModule, + physicsModule, + slopeModule, + shadowModule, + itemManageModule, + colorBlendModule, + jostleModule, + abnormalModule, + slowModule, + reflectModule, + heapModule, + paramCustomizeModule, + glowModule + ), + m_enumerationStart(&m_moduleEnumeration) { } + +soModuleAccesser::~soModuleAccesser() { } + +void soModuleAccesser::activate() { + setActive(true); + m_enumerationStart = &m_moduleEnumeration; +} + +void soModuleAccesser::deactivate() { + setActive(false); + m_enumerationStart = &soModuleEnumeration::NullObject; +}