Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions config/RSBE01_02/rels/sora_melee/splits.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
18 changes: 9 additions & 9 deletions config/RSBE01_02/rels/sora_melee/symbols.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"),
Expand Down
238 changes: 238 additions & 0 deletions src/mo_melee/sora_melee/so/so_module_accesser.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,238 @@
#include <so/so_activate.h>
#include <so/so_module_accesser.h>
#include <types.h>

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;
}
Loading