From eca8e58c4376a930ce631345aef655ea6a641d6a Mon Sep 17 00:00:00 2001 From: Henrique Gemignani Passos Lima Date: Tue, 14 Jan 2025 15:20:05 +0200 Subject: [PATCH] Add three more tweaks --- config/G2ME01/rels/Tweaks/splits.txt | 9 + config/G2ME01/rels/Tweaks/symbols.txt | 120 ++--- configure.py | 3 + .../ScriptLoader/Struct/SLdrTweakGui.cpp | 60 +++ .../Struct/SLdrTweakPlayerRes.cpp | 44 ++ .../Struct/SLdrTweakTargeting.cpp | 488 ++++++++++++++++++ 6 files changed, 664 insertions(+), 60 deletions(-) create mode 100644 src/MetroidPrime/ScriptLoader/Struct/SLdrTweakGui.cpp create mode 100644 src/MetroidPrime/ScriptLoader/Struct/SLdrTweakPlayerRes.cpp create mode 100644 src/MetroidPrime/ScriptLoader/Struct/SLdrTweakTargeting.cpp diff --git a/config/G2ME01/rels/Tweaks/splits.txt b/config/G2ME01/rels/Tweaks/splits.txt index 3a442fe..1f4bf8d 100644 --- a/config/G2ME01/rels/Tweaks/splits.txt +++ b/config/G2ME01/rels/Tweaks/splits.txt @@ -39,6 +39,15 @@ MetroidPrime/ScriptLoader/Struct/SLdrTweakGuiColors.cpp: MetroidPrime/ScriptLoader/Struct/SLdrTweakParticle.cpp: .text start:0x00004128 end:0x00004360 +MetroidPrime/ScriptLoader/Struct/SLdrTweakPlayerRes.cpp: + .text start:0x00004360 end:0x00004790 + +MetroidPrime/ScriptLoader/Struct/SLdrTweakTargeting.cpp: + .text start:0x00004790 end:0x00006378 + +MetroidPrime/ScriptLoader/Struct/SLdrTweakGui.cpp: + .text start:0x00006378 end:0x000066C8 + REL/REL_Setup.cpp: .text start:0x0001DECC end:0x0001E070 .rodata start:0x00000408 end:0x0000048C diff --git a/config/G2ME01/rels/Tweaks/symbols.txt b/config/G2ME01/rels/Tweaks/symbols.txt index e6a0920..6c98885 100644 --- a/config/G2ME01/rels/Tweaks/symbols.txt +++ b/config/G2ME01/rels/Tweaks/symbols.txt @@ -72,24 +72,24 @@ __ct__12SLdrTweakGuiFv = .text:0x0000663C; // type:function size:0x8C LoadTypedefSLdrTweakPlayerGun_Weapons__FR26SLdrTweakPlayerGun_WeaponsR12CInputStream = .text:0x000066C8; // type:function size:0x208 __dt__26SLdrTweakPlayerGun_WeaponsFv = .text:0x000068D0; // type:function size:0xB8 __ct__26SLdrTweakPlayerGun_WeaponsFv = .text:0x00006988; // type:function size:0x1AC -fn_82_6B34 = .text:0x00006B34; // type:function size:0xCC -fn_82_6C00 = .text:0x00006C00; // type:function size:0x3C -fn_82_6C3C = .text:0x00006C3C; // type:function size:0x6C -fn_82_6CA8 = .text:0x00006CA8; // type:function size:0x16C -fn_82_6E14 = .text:0x00006E14; // type:function size:0x3C -fn_82_6E50 = .text:0x00006E50; // type:function size:0x74 -fn_82_6EC4 = .text:0x00006EC4; // type:function size:0x140 -fn_82_7004 = .text:0x00007004; // type:function size:0x3C -fn_82_7040 = .text:0x00007040; // type:function size:0xB0 -fn_82_70F0 = .text:0x000070F0; // type:function size:0xF0 -fn_82_71E0 = .text:0x000071E0; // type:function size:0x3C -fn_82_721C = .text:0x0000721C; // type:function size:0x88 -fn_82_72A4 = .text:0x000072A4; // type:function size:0x15C -fn_82_7400 = .text:0x00007400; // type:function size:0x3C -fn_82_743C = .text:0x0000743C; // type:function size:0xC8 -fn_82_7504 = .text:0x00007504; // type:function size:0x1AC -fn_82_76B0 = .text:0x000076B0; // type:function size:0x3C -fn_82_76EC = .text:0x000076EC; // type:function size:0xE0 +LoadTypedefSLdrTweakTargeting_VulnerabilityIndicator__FR41SLdrTweakTargeting_VulnerabilityIndicatorR12CInputStream = .text:0x00006B34; // type:function size:0xCC +__dt__41SLdrTweakTargeting_VulnerabilityIndicatorFv = .text:0x00006C00; // type:function size:0x3C +__ct__41SLdrTweakTargeting_VulnerabilityIndicatorFv = .text:0x00006C3C; // type:function size:0x6C +LoadTypedefSLdrTweakTargeting_Scan__FR23SLdrTweakTargeting_ScanR12CInputStream = .text:0x00006CA8; // type:function size:0x16C +__dt__23SLdrTweakTargeting_ScanFv = .text:0x00006E14; // type:function size:0x3C +__ct__23SLdrTweakTargeting_ScanFv = .text:0x00006E50; // type:function size:0x74 +LoadTypedefSLdrTweakTargeting_OuterBeamIcon__FR32SLdrTweakTargeting_OuterBeamIconR12CInputStream = .text:0x00006EC4; // type:function size:0x140 +__dt__32SLdrTweakTargeting_OuterBeamIconFv = .text:0x00007004; // type:function size:0x3C +__ct__32SLdrTweakTargeting_OuterBeamIconFv = .text:0x00007040; // type:function size:0xB0 +LoadTypedefSLdrTweakTargeting_LockFire__FR27SLdrTweakTargeting_LockFireR12CInputStream = .text:0x000070F0; // type:function size:0xF0 +__dt__27SLdrTweakTargeting_LockFireFv = .text:0x000071E0; // type:function size:0x3C +__ct__27SLdrTweakTargeting_LockFireFv = .text:0x0000721C; // type:function size:0x88 +LoadTypedefSLdrTweakTargeting_LockDagger__FR29SLdrTweakTargeting_LockDaggerR12CInputStream = .text:0x000072A4; // type:function size:0x15C +__dt__29SLdrTweakTargeting_LockDaggerFv = .text:0x00007400; // type:function size:0x3C +__ct__29SLdrTweakTargeting_LockDaggerFv = .text:0x0000743C; // type:function size:0xC8 +LoadTypedefSLdrTweakTargeting_Charge_Gauge__FR31SLdrTweakTargeting_Charge_GaugeR12CInputStream = .text:0x00007504; // type:function size:0x1AC +__dt__31SLdrTweakTargeting_Charge_GaugeFv = .text:0x000076B0; // type:function size:0x3C +__ct__31SLdrTweakTargeting_Charge_GaugeFv = .text:0x000076EC; // type:function size:0xE0 LoadTypedefSLdrTweakPlayer_Grapple__FR23SLdrTweakPlayer_GrappleR12CInputStream = .text:0x000077CC; // type:function size:0x2EC __dt__23SLdrTweakPlayer_GrappleFv = .text:0x00007AB8; // type:function size:0x58 __ct__23SLdrTweakPlayer_GrappleFv = .text:0x00007B10; // type:function size:0xFC @@ -105,18 +105,18 @@ __ct__33SLdrTweakPlayerGun_UnknownStruct1Fv = .text:0x00008398; // type:function LoadTypedefSLdrTweakPlayerGun_Arm_Position__FR31SLdrTweakPlayerGun_Arm_PositionR12CInputStream = .text:0x00008498; // type:function size:0xF4 __dt__31SLdrTweakPlayerGun_Arm_PositionFv = .text:0x0000858C; // type:function size:0x3C __ct__31SLdrTweakPlayerGun_Arm_PositionFv = .text:0x000085C8; // type:function size:0x88 -fn_82_8650 = .text:0x00008650; // type:function size:0x32C -fn_82_897C = .text:0x0000897C; // type:function size:0x3C -fn_82_89B8 = .text:0x000089B8; // type:function size:0x370 -fn_82_8D28 = .text:0x00008D28; // type:function size:0x198C -fn_82_A6B4 = .text:0x0000A6B4; // type:function size:0xC0 -fn_82_A774 = .text:0x0000A774; // type:function size:0xA64 -fn_82_B1D8 = .text:0x0000B1D8; // type:function size:0x1DC -fn_82_B3B4 = .text:0x0000B3B4; // type:function size:0x3C -fn_82_B3F0 = .text:0x0000B3F0; // type:function size:0x28 -fn_82_B418 = .text:0x0000B418; // type:function size:0xCAC -fn_82_C0C4 = .text:0x0000C0C4; // type:function size:0x7C -fn_82_C140 = .text:0x0000C140; // type:function size:0xA98 +LoadTypedefSLdrTweakGui_ScanVisor__FR22SLdrTweakGui_ScanVisorR12CInputStream = .text:0x00008650; // type:function size:0x32C +__dt__22SLdrTweakGui_ScanVisorFv = .text:0x0000897C; // type:function size:0x3C +__ct__22SLdrTweakGui_ScanVisorFv = .text:0x000089B8; // type:function size:0x370 +LoadTypedefSLdrTweakGui_Misc__FR17SLdrTweakGui_MiscR12CInputStream = .text:0x00008D28; // type:function size:0x198C +__dt__17SLdrTweakGui_MiscFv = .text:0x0000A6B4; // type:function size:0xC0 +__ct__17SLdrTweakGui_MiscFv = .text:0x0000A774; // type:function size:0xA64 +LoadTypedefSLdrTweakGui_MovieVolumes__FR25SLdrTweakGui_MovieVolumesR12CInputStream = .text:0x0000B1D8; // type:function size:0x1DC +__dt__25SLdrTweakGui_MovieVolumesFv = .text:0x0000B3B4; // type:function size:0x3C +__ct__25SLdrTweakGui_MovieVolumesFv = .text:0x0000B3F0; // type:function size:0x28 +LoadTypedefSLdrTweakGui_LogBook__FR20SLdrTweakGui_LogBookR12CInputStream = .text:0x0000B418; // type:function size:0xCAC +__dt__20SLdrTweakGui_LogBookFv = .text:0x0000C0C4; // type:function size:0x7C +__ct__20SLdrTweakGui_LogBookFv = .text:0x0000C140; // type:function size:0xA98 LoadTypedefSLdrTweakGame_TimeLimitChoices__FR30SLdrTweakGame_TimeLimitChoicesR12CInputStream = .text:0x0000CBD8; // type:function size:0x130 __dt__30SLdrTweakGame_TimeLimitChoicesFv = .text:0x0000CD08; // type:function size:0x3C __ct__30SLdrTweakGame_TimeLimitChoicesFv = .text:0x0000CD44; // type:function size:0x50 @@ -132,21 +132,21 @@ __ct__28SLdrTweakGui_HudColorTypedefFv = .text:0x0000D384; // type:function size LoadTypedefSLdrTweakGui_VisorColorSchemeTypedef__FR36SLdrTweakGui_VisorColorSchemeTypedefR12CInputStream = .text:0x0000D698; // type:function size:0xD4 __dt__36SLdrTweakGui_VisorColorSchemeTypedefFv = .text:0x0000D76C; // type:function size:0x3C __ct__36SLdrTweakGui_VisorColorSchemeTypedefFv = .text:0x0000D7A8; // type:function size:0xA8 -fn_82_D850 = .text:0x0000D850; // type:function size:0x2A4 -fn_82_DAF4 = .text:0x0000DAF4; // type:function size:0x3C -fn_82_DB30 = .text:0x0000DB30; // type:function size:0x1F4 -fn_82_DD24 = .text:0x0000DD24; // type:function size:0x1D4 -fn_82_DEF8 = .text:0x0000DEF8; // type:function size:0x3C -fn_82_DF34 = .text:0x0000DF34; // type:function size:0x108 -fn_82_E03C = .text:0x0000E03C; // type:function size:0x1F4 -fn_82_E230 = .text:0x0000E230; // type:function size:0x7C -fn_82_E2AC = .text:0x0000E2AC; // type:function size:0x100 +LoadTypedefSLdrTweakGui_EchoVisor__FR22SLdrTweakGui_EchoVisorR12CInputStream = .text:0x0000D850; // type:function size:0x2A4 +__dt__22SLdrTweakGui_EchoVisorFv = .text:0x0000DAF4; // type:function size:0x3C +__ct__22SLdrTweakGui_EchoVisorFv = .text:0x0000DB30; // type:function size:0x1F4 +LoadTypedefSLdrTweakGui_DarkVisor__FR22SLdrTweakGui_DarkVisorR12CInputStream = .text:0x0000DD24; // type:function size:0x1D4 +__dt__22SLdrTweakGui_DarkVisorFv = .text:0x0000DEF8; // type:function size:0x3C +__ct__22SLdrTweakGui_DarkVisorFv = .text:0x0000DF34; // type:function size:0x108 +LoadTypedefSLdrTweakGui_Credits__FR20SLdrTweakGui_CreditsR12CInputStream = .text:0x0000E03C; // type:function size:0x1F4 +__dt__20SLdrTweakGui_CreditsFv = .text:0x0000E230; // type:function size:0x7C +__ct__20SLdrTweakGui_CreditsFv = .text:0x0000E2AC; // type:function size:0x100 LoadTypedefSLdrTweakGuiColors_TurretHudTypedef__FR35SLdrTweakGuiColors_TurretHudTypedefR12CInputStream = .text:0x0000E3AC; // type:function size:0x184 __dt__35SLdrTweakGuiColors_TurretHudTypedefFv = .text:0x0000E530; // type:function size:0x3C __ct__35SLdrTweakGuiColors_TurretHudTypedefFv = .text:0x0000E56C; // type:function size:0x74 -fn_82_E5E0 = .text:0x0000E5E0; // type:function size:0x2A4 -fn_82_E884 = .text:0x0000E884; // type:function size:0x7C -fn_82_E900 = .text:0x0000E900; // type:function size:0x1D8 +LoadTypedefSLdrTweakGui_Completion__FR23SLdrTweakGui_CompletionR12CInputStream = .text:0x0000E5E0; // type:function size:0x2A4 +__dt__23SLdrTweakGui_CompletionFv = .text:0x0000E884; // type:function size:0x7C +__ct__23SLdrTweakGui_CompletionFv = .text:0x0000E900; // type:function size:0x1D8 LoadTypedefSLdrTweakGuiColors_Multiplayer__FR30SLdrTweakGuiColors_MultiplayerR12CInputStream = .text:0x0000EAD8; // type:function size:0x234 __dt__30SLdrTweakGuiColors_MultiplayerFv = .text:0x0000ED0C; // type:function size:0x3C __ct__30SLdrTweakGuiColors_MultiplayerFv = .text:0x0000ED48; // type:function size:0x278 @@ -207,12 +207,12 @@ __ct__25SLdrTweakPlayer_CollisionFv = .text:0x0001929C; // type:function size:0x LoadTypedefSLdrTweakPlayer_AimStuff__FR24SLdrTweakPlayer_AimStuffR12CInputStream = .text:0x000192EC; // type:function size:0x2BC __dt__24SLdrTweakPlayer_AimStuffFv = .text:0x000195A8; // type:function size:0x3C __ct__24SLdrTweakPlayer_AimStuffFv = .text:0x000195E4; // type:function size:0xD0 -fn_82_196B4 = .text:0x000196B4; // type:function size:0x7FC -fn_82_19EB0 = .text:0x00019EB0; // type:function size:0x24C -fn_82_1A0FC = .text:0x0001A0FC; // type:function size:0x190 -fn_82_1A28C = .text:0x0001A28C; // type:function size:0x298 -fn_82_1A524 = .text:0x0001A524; // type:function size:0xDC -fn_82_1A600 = .text:0x0001A600; // type:function size:0x7C +LoadTypedefSLdrTweakPlayerRes_MapScreenIcons__FR33SLdrTweakPlayerRes_MapScreenIconsR12CInputStream = .text:0x000196B4; // type:function size:0x7FC +__dt__33SLdrTweakPlayerRes_MapScreenIconsFv = .text:0x00019EB0; // type:function size:0x24C +__ct__33SLdrTweakPlayerRes_MapScreenIconsFv = .text:0x0001A0FC; // type:function size:0x190 +LoadTypedefSLdrTweakPlayerRes_AutoMapperIcons__FR34SLdrTweakPlayerRes_AutoMapperIconsR12CInputStream = .text:0x0001A28C; // type:function size:0x298 +__dt__34SLdrTweakPlayerRes_AutoMapperIconsFv = .text:0x0001A524; // type:function size:0xDC +__ct__34SLdrTweakPlayerRes_AutoMapperIconsFv = .text:0x0001A600; // type:function size:0x7C LoadTypedefSLdrTweakPlayerGun_RicochetDamage_Factor__FR40SLdrTweakPlayerGun_RicochetDamage_FactorR12CInputStream = .text:0x0001A67C; // type:function size:0x154 __dt__40SLdrTweakPlayerGun_RicochetDamage_FactorFv = .text:0x0001A7D0; // type:function size:0x3C __ct__40SLdrTweakPlayerGun_RicochetDamage_FactorFv = .text:0x0001A80C; // type:function size:0x24 @@ -231,9 +231,9 @@ __ct__38SLdrTweakPlayerControls_UnknownStruct1Fv = .text:0x0001BB7C; // type:fun LoadTypedefSLdrTweakPlayerControls_UnknownStruct2__FR38SLdrTweakPlayerControls_UnknownStruct2R12CInputStream = .text:0x0001BD18; // type:function size:0x514 __dt__38SLdrTweakPlayerControls_UnknownStruct2Fv = .text:0x0001C22C; // type:function size:0x3C __ct__38SLdrTweakPlayerControls_UnknownStruct2Fv = .text:0x0001C268; // type:function size:0x60 -fn_82_1C2C8 = .text:0x0001C2C8; // type:function size:0xC4 -fn_82_1C38C = .text:0x0001C38C; // type:function size:0x3C -fn_82_1C3C8 = .text:0x0001C3C8; // type:function size:0x1C +LoadTypedefSLdrTweakGui_ScannableObjectDownloadTimes__FR41SLdrTweakGui_ScannableObjectDownloadTimesR12CInputStream = .text:0x0001C2C8; // type:function size:0xC4 +__dt__41SLdrTweakGui_ScannableObjectDownloadTimesFv = .text:0x0001C38C; // type:function size:0x3C +__ct__41SLdrTweakGui_ScannableObjectDownloadTimesFv = .text:0x0001C3C8; // type:function size:0x1C LoadTypedefSLdrTweakBall_Movement__FR22SLdrTweakBall_MovementR12CInputStream = .text:0x0001C3E4; // type:function size:0x73C __dt__22SLdrTweakBall_MovementFv = .text:0x0001CB20; // type:function size:0x3C __ct__22SLdrTweakBall_MovementFv = .text:0x0001CB5C; // type:function size:0x194 @@ -243,15 +243,15 @@ __ct__18SLdrTweakBall_MiscFv = .text:0x0001CEA4; // type:function size:0x4C LoadTypedefSLdrTweakPlayer_DarkWorld__FR25SLdrTweakPlayer_DarkWorldR12CInputStream = .text:0x0001CEF0; // type:function size:0x154 __dt__25SLdrTweakPlayer_DarkWorldFv = .text:0x0001D044; // type:function size:0x58 __ct__25SLdrTweakPlayer_DarkWorldFv = .text:0x0001D09C; // type:function size:0x88 -fn_82_1D124 = .text:0x0001D124; // type:function size:0x22C -fn_82_1D350 = .text:0x0001D350; // type:function size:0xB0 -fn_82_1D400 = .text:0x0001D400; // type:function size:0x7C -fn_82_1D47C = .text:0x0001D47C; // type:function size:0x1A8 -fn_82_1D624 = .text:0x0001D624; // type:function size:0x9C -fn_82_1D6C0 = .text:0x0001D6C0; // type:function size:0x4C -fn_82_1D70C = .text:0x0001D70C; // type:function size:0x1C0 -fn_82_1D8CC = .text:0x0001D8CC; // type:function size:0x3C -fn_82_1D908 = .text:0x0001D908; // type:function size:0x30 +LoadTypedefSLdrTBallTransitionResources__FR28SLdrTBallTransitionResourcesR12CInputStream = .text:0x0001D124; // type:function size:0x22C +__dt__28SLdrTBallTransitionResourcesFv = .text:0x0001D350; // type:function size:0xB0 +__ct__28SLdrTBallTransitionResourcesFv = .text:0x0001D400; // type:function size:0x7C +LoadTypedefSLdrTGunResources__FR17SLdrTGunResourcesR12CInputStream = .text:0x0001D47C; // type:function size:0x1A8 +__dt__17SLdrTGunResourcesFv = .text:0x0001D624; // type:function size:0x9C +__ct__17SLdrTGunResourcesFv = .text:0x0001D6C0; // type:function size:0x4C +LoadTypedefSLdrTIcon_Configurations__FR24SLdrTIcon_ConfigurationsR12CInputStream = .text:0x0001D70C; // type:function size:0x1C0 +__dt__24SLdrTIcon_ConfigurationsFv = .text:0x0001D8CC; // type:function size:0x3C +__ct__24SLdrTIcon_ConfigurationsFv = .text:0x0001D908; // type:function size:0x30 fn_82_1D938 = .text:0x0001D938; // type:function size:0xC4 fn_82_1D9FC = .text:0x0001D9FC; // type:function size:0x58 fn_82_1DA54 = .text:0x0001DA54; // type:function size:0x40 diff --git a/configure.py b/configure.py index 7eb4607..524ddf3 100644 --- a/configure.py +++ b/configure.py @@ -446,6 +446,9 @@ config.libs = [ Object(NonMatching, "MetroidPrime/ScriptLoader/Struct/SLdrTweakGame.cpp"), Object(Matching, "MetroidPrime/ScriptLoader/Struct/SLdrTweakGuiColors.cpp"), Object(NonMatching, "MetroidPrime/ScriptLoader/Struct/SLdrTweakParticle.cpp"), + Object(NonMatching, "MetroidPrime/ScriptLoader/Struct/SLdrTweakPlayerRes.cpp"), + Object(NonMatching, "MetroidPrime/ScriptLoader/Struct/SLdrTweakTargeting.cpp"), + Object(NonMatching, "MetroidPrime/ScriptLoader/Struct/SLdrTweakGui.cpp"), ], ), ] diff --git a/src/MetroidPrime/ScriptLoader/Struct/SLdrTweakGui.cpp b/src/MetroidPrime/ScriptLoader/Struct/SLdrTweakGui.cpp new file mode 100644 index 0000000..69b6877 --- /dev/null +++ b/src/MetroidPrime/ScriptLoader/Struct/SLdrTweakGui.cpp @@ -0,0 +1,60 @@ +#include "MetroidPrime/ScriptLoader/Struct/SLdrTweakGui.hpp" + +SLdrTweakGui::SLdrTweakGui() + : instanceName() + , misc() + , scannableObjectDownloadTimes() + , unknown() + , echoVisor() + , scanVisor() + , logBook() + , credits() + , completion() + , movieVolumes() +{} + +SLdrTweakGui::~SLdrTweakGui() {} + +void LoadTypedefSLdrTweakGui(SLdrTweakGui& sldrThis, CInputStream& input) { + int propertyCount = input.ReadUint16(); + for (int i = 0; i < propertyCount; ++i) { + uint propertyId = (uint)input.ReadInt32(); + u16 propertySize = input.ReadUint16(); + + switch (propertyId) { + case 0x7fda1466: + sldrThis.instanceName = rstl::string(input); + break; + case 0xd45f7663: + LoadTypedefSLdrTweakGui_Misc(sldrThis.misc, input); + break; + case 0x80b13e60: + LoadTypedefSLdrTweakGui_ScannableObjectDownloadTimes(sldrThis.scannableObjectDownloadTimes, input); + break; + case 0x102aa38d: + LoadTypedefSLdrTweakGui_DarkVisor(sldrThis.unknown, input); + break; + case 0x2b698e45: + LoadTypedefSLdrTweakGui_EchoVisor(sldrThis.echoVisor, input); + break; + case 0x40ffb3c4: + LoadTypedefSLdrTweakGui_ScanVisor(sldrThis.scanVisor, input); + break; + case 0x97b8a76a: + LoadTypedefSLdrTweakGui_LogBook(sldrThis.logBook, input); + break; + case 0x77393416: + LoadTypedefSLdrTweakGui_Credits(sldrThis.credits, input); + break; + case 0x02149892: + LoadTypedefSLdrTweakGui_Completion(sldrThis.completion, input); + break; + case 0xa4f61e92: + LoadTypedefSLdrTweakGui_MovieVolumes(sldrThis.movieVolumes, input); + break; + default: + input.ReadBytes(nullptr, propertySize); + break; + } + } +} \ No newline at end of file diff --git a/src/MetroidPrime/ScriptLoader/Struct/SLdrTweakPlayerRes.cpp b/src/MetroidPrime/ScriptLoader/Struct/SLdrTweakPlayerRes.cpp new file mode 100644 index 0000000..855e903 --- /dev/null +++ b/src/MetroidPrime/ScriptLoader/Struct/SLdrTweakPlayerRes.cpp @@ -0,0 +1,44 @@ +#include "MetroidPrime/ScriptLoader/Struct/SLdrTweakPlayerRes.hpp" + +SLdrTweakPlayerRes::SLdrTweakPlayerRes() + : instanceName() + , autoMapperIcons() + , mapScreenIcons() + , ballTransitionResources() + , cinematicResources() + , unknown(-0.0) +{} + +SLdrTweakPlayerRes::~SLdrTweakPlayerRes() {} + +void LoadTypedefSLdrTweakPlayerRes(SLdrTweakPlayerRes& sldrThis, CInputStream& input) { + int propertyCount = input.ReadUint16(); + for (int i = 0; i < propertyCount; ++i) { + uint propertyId = (uint)input.ReadInt32(); + u16 propertySize = input.ReadUint16(); + + switch (propertyId) { + case 0x7fda1466: + sldrThis.instanceName = rstl::string(input); + break; + case 0x357741e0: + LoadTypedefSLdrTweakPlayerRes_AutoMapperIcons(sldrThis.autoMapperIcons, input); + break; + case 0x0d5e02a0: + LoadTypedefSLdrTweakPlayerRes_MapScreenIcons(sldrThis.mapScreenIcons, input); + break; + case 0x279852ba: + LoadTypedefSLdrTBallTransitionResources(sldrThis.ballTransitionResources, input); + break; + case 0x5e630608: + LoadTypedefSLdrTGunResources(sldrThis.cinematicResources, input); + break; + case 0x36ad9d19: + sldrThis.unknown = input.ReadFloat(); + break; + default: + input.ReadBytes(nullptr, propertySize); + break; + } + } +} \ No newline at end of file diff --git a/src/MetroidPrime/ScriptLoader/Struct/SLdrTweakTargeting.cpp b/src/MetroidPrime/ScriptLoader/Struct/SLdrTweakTargeting.cpp new file mode 100644 index 0000000..7464cf1 --- /dev/null +++ b/src/MetroidPrime/ScriptLoader/Struct/SLdrTweakTargeting.cpp @@ -0,0 +1,488 @@ +#include "MetroidPrime/ScriptLoader/Struct/SLdrTweakTargeting.hpp" + +SLdrTweakTargeting::SLdrTweakTargeting() + : instanceName() + , unknown_0x5173932f() + , unknown_0x23ff4be4() + , unknown_0x92e98613() + , unknown_0x64833842() + , unknown_0x8dfd6e3c() + , chargeGauge() + , lockFire() + , lockDagger() + , scan() + , unknown_0xc3410560(1) + , unknown_0x3eb13041(0.15000001) + , unknown_0x5e67cab0(0.30000001) + , unknown_0xe0ca98ac(0.15000001) + , lockOnConfirmReticleScale(1.0) + , unknown_0x9f8d62c1(0.40000001) + , unknown_0xff5eeeb9(0.40000001) + , unknown_0x0d0b660d(0.2) + , seekerTargetReticleScale(0.5) + , unknown_0x03efc783(-120.0) + , unknown_0xdcbd7bf8(120.0) + , unknown_0x2acd6b4b(0.95999998) + , unknown_0xb4c6c331(0.46000001) + , unknown_0x27d02089(0.17) + , unknown_0xae89310e(1.0) + , unknown_0xb27644df(1.0) + , unknown_0x21e2d1cc(1.0) + , orbitPointOccludedOpacity(0.0) + , unknown_0x5c489cb5(0.0) + , orbitPointZOffset(-0.40000001) + , unknown_0x61a6a38e(0.1) + , unknown_0xfbdf31f9(0.30000001) + , unknown_0xf76f7d0b(0.30000001) + , unknown_0x810b3a08(0.0) + , unknown_0x73fe1553(1.0) + , unknown_0xc8aef6f2(0.0) + , unknown_0x69b1e76c(1.0) + , unknown_0x8a0dfd23(1.0) + , unknown_0x8299e96e(1.0) + , unknown_0xa18a3f25(1.0) + , unknown_0x23be9bb2(1.0) + , unknown_0x8d512b82(0.0) + , unknown_0x39f1698d(1.0) + , unknown_0xc768c1e9(1.0) + , unknown_0x55c47b0e(1.0) + , unknown_0xa009aea2(0.40000001) + , unknown_0x38080bbf(0.69999999) + , unknown_0x71017dbe(0.80000001) + , unknown_0x4a996997(0.40000001) + , unknown_0x9f9fa6f3(0.30000001) + , unknown_0x932fea01(0.30000001) + , unknown_0x165f0fa8(2.0) + , unknown_0x6bd6b11f(0.0) + , unknown_0x42420f6e(CColor::Black()) + , flowerReticleScale(1.0) + , flowerReticleColor(CColor::Black()) + , unknown_0xb090e147(0.5) + , unknown_0x4c73a43d(1.0) + , unknown_0x6543d31b(0.89999998) + , unknown_0x8cd2d1ce(0.15000001) + , missileBracketColor(CColor::Black()) + , unknown_0x45910e5d(0.5) + , unknown_0x07b30fa0(1.0) + , unknown_0x13ce8500(CColor::Black()) + , unknown_0x9829f256(CColor::Black()) + , unknown_0x77a613b9(CColor::Black()) + , unknown_0xdfa81287(CColor::Black()) + , lockOnConfirmReticleColor(CColor::Black()) + , seekerReticleColor(CColor::Black()) + , unknown_0x618d150a(160.0) + , unknown_0x209a2a8c(240.0) + , unknown_0xacb3f8f7(160.0) + , unknown_0xeda4c771(240.0) + , unknown_0xd3427574(160.0) + , unknown_0x92554af2(240.0) + , unknown_0x1e134e75(160.0) + , unknown_0x5f0471f3(240.0) + , unknown_0xe90548ac(160.0) + , unknown_0xa812772a(240.0) + , unknown_0x2d75c7be(160.0) + , unknown_0x6c62f838(240.0) + , unknown_0xf98e6242(160.0) + , unknown_0xb8995dc4(240.0) + , unknown_0x5009c614(160.0) + , unknown_0x111ef992(240.0) + , grappleIconScale(1.0) + , grappleIconScaleInactive(0.5) + , unknown_0x498d794a(80.0) + , unknown_0x089a46cc(240.0) + , grappleIconColor(CColor::Black()) + , grappleIconColorInactive(CColor::Black()) + , unknown_0x083b1cc8(CColor::Black()) + , unknown_0x966982b1(0.5) + , unknown_0xf9799f5f(CColor::Black()) + , unknown_0x9b980788(0.5) + , orbitPointModelColor(CColor::Black()) + , crosshairsColor(CColor::Black()) + , unknown_0x2ff52290(0.30000001) + , unknown_0x8a548cc9(true) + , unknown_0x65d449e1(CColor::Black()) + , unknown_0x42c7fbe4(0.80000001) + , unknown_0x13820c03(80.0) + , unknown_0x52953385(80.0) + , xRaySeekerReticleColor(CColor::Black()) + , unknown_0xdd8cf478(1.0) + , unknown_0xcbac6d52(32.0) + , unknown_0x980a75b6(120.0) + , unknown_0xcd1e0e91(18.0) + , unknown_0xce9cf241(1.4) + , unknown_0xb6531e99(0.5) + , unknown_0x77e5c6b5(2.0) + , unknown_0xfef5668b(8.0) + , healthColor(CColor::Black()) + , powerVulnerabilityIndicator() + , lightVulnerabilityIndicator() + , darkVulnerabilityIndicator() + , annihilatorVulnerabilityIndicator() +{} + +SLdrTweakTargeting::~SLdrTweakTargeting() {} + +void LoadTypedefSLdrTweakTargeting(SLdrTweakTargeting& sldrThis, CInputStream& input) { + int propertyCount = input.ReadUint16(); + for (int i = 0; i < propertyCount; ++i) { + uint propertyId = (uint)input.ReadInt32(); + u16 propertySize = input.ReadUint16(); + + switch (propertyId) { + case 0x7fda1466: + sldrThis.instanceName = rstl::string(input); + break; + case 0x5173932f: + LoadTypedefSLdrTweakTargeting_OuterBeamIcon(sldrThis.unknown_0x5173932f, input); + break; + case 0x23ff4be4: + LoadTypedefSLdrTIcon_Configurations(sldrThis.unknown_0x23ff4be4, input); + break; + case 0x92e98613: + LoadTypedefSLdrTIcon_Configurations(sldrThis.unknown_0x92e98613, input); + break; + case 0x64833842: + LoadTypedefSLdrTIcon_Configurations(sldrThis.unknown_0x64833842, input); + break; + case 0x8dfd6e3c: + LoadTypedefSLdrTIcon_Configurations(sldrThis.unknown_0x8dfd6e3c, input); + break; + case 0xbc5a41b2: + LoadTypedefSLdrTweakTargeting_Charge_Gauge(sldrThis.chargeGauge, input); + break; + case 0x00183589: + LoadTypedefSLdrTweakTargeting_LockFire(sldrThis.lockFire, input); + break; + case 0xd20ecc07: + LoadTypedefSLdrTweakTargeting_LockDagger(sldrThis.lockDagger, input); + break; + case 0x65ef9f2a: + LoadTypedefSLdrTweakTargeting_Scan(sldrThis.scan, input); + break; + case 0xc3410560: + sldrThis.unknown_0xc3410560 = input.ReadInt32(); + break; + case 0x3eb13041: + sldrThis.unknown_0x3eb13041 = input.ReadFloat(); + break; + case 0x5e67cab0: + sldrThis.unknown_0x5e67cab0 = input.ReadFloat(); + break; + case 0xe0ca98ac: + sldrThis.unknown_0xe0ca98ac = input.ReadFloat(); + break; + case 0xc1e35abb: + sldrThis.lockOnConfirmReticleScale = input.ReadFloat(); + break; + case 0x9f8d62c1: + sldrThis.unknown_0x9f8d62c1 = input.ReadFloat(); + break; + case 0xff5eeeb9: + sldrThis.unknown_0xff5eeeb9 = input.ReadFloat(); + break; + case 0x0d0b660d: + sldrThis.unknown_0x0d0b660d = input.ReadFloat(); + break; + case 0x132dd09e: + sldrThis.seekerTargetReticleScale = input.ReadFloat(); + break; + case 0x03efc783: + sldrThis.unknown_0x03efc783 = input.ReadFloat(); + break; + case 0xdcbd7bf8: + sldrThis.unknown_0xdcbd7bf8 = input.ReadFloat(); + break; + case 0x2acd6b4b: + sldrThis.unknown_0x2acd6b4b = input.ReadFloat(); + break; + case 0xb4c6c331: + sldrThis.unknown_0xb4c6c331 = input.ReadFloat(); + break; + case 0x27d02089: + sldrThis.unknown_0x27d02089 = input.ReadFloat(); + break; + case 0xae89310e: + sldrThis.unknown_0xae89310e = input.ReadFloat(); + break; + case 0xb27644df: + sldrThis.unknown_0xb27644df = input.ReadFloat(); + break; + case 0x21e2d1cc: + sldrThis.unknown_0x21e2d1cc = input.ReadFloat(); + break; + case 0x8e3afef8: + sldrThis.orbitPointOccludedOpacity = input.ReadFloat(); + break; + case 0x5c489cb5: + sldrThis.unknown_0x5c489cb5 = input.ReadFloat(); + break; + case 0xef2c842e: + sldrThis.orbitPointZOffset = input.ReadFloat(); + break; + case 0x61a6a38e: + sldrThis.unknown_0x61a6a38e = input.ReadFloat(); + break; + case 0xfbdf31f9: + sldrThis.unknown_0xfbdf31f9 = input.ReadFloat(); + break; + case 0xf76f7d0b: + sldrThis.unknown_0xf76f7d0b = input.ReadFloat(); + break; + case 0x810b3a08: + sldrThis.unknown_0x810b3a08 = input.ReadFloat(); + break; + case 0x73fe1553: + sldrThis.unknown_0x73fe1553 = input.ReadFloat(); + break; + case 0xc8aef6f2: + sldrThis.unknown_0xc8aef6f2 = input.ReadFloat(); + break; + case 0x69b1e76c: + sldrThis.unknown_0x69b1e76c = input.ReadFloat(); + break; + case 0x8a0dfd23: + sldrThis.unknown_0x8a0dfd23 = input.ReadFloat(); + break; + case 0x8299e96e: + sldrThis.unknown_0x8299e96e = input.ReadFloat(); + break; + case 0xa18a3f25: + sldrThis.unknown_0xa18a3f25 = input.ReadFloat(); + break; + case 0x23be9bb2: + sldrThis.unknown_0x23be9bb2 = input.ReadFloat(); + break; + case 0x8d512b82: + sldrThis.unknown_0x8d512b82 = input.ReadFloat(); + break; + case 0x39f1698d: + sldrThis.unknown_0x39f1698d = input.ReadFloat(); + break; + case 0xc768c1e9: + sldrThis.unknown_0xc768c1e9 = input.ReadFloat(); + break; + case 0x55c47b0e: + sldrThis.unknown_0x55c47b0e = input.ReadFloat(); + break; + case 0xa009aea2: + sldrThis.unknown_0xa009aea2 = input.ReadFloat(); + break; + case 0x38080bbf: + sldrThis.unknown_0x38080bbf = input.ReadFloat(); + break; + case 0x71017dbe: + sldrThis.unknown_0x71017dbe = input.ReadFloat(); + break; + case 0x4a996997: + sldrThis.unknown_0x4a996997 = input.ReadFloat(); + break; + case 0x9f9fa6f3: + sldrThis.unknown_0x9f9fa6f3 = input.ReadFloat(); + break; + case 0x932fea01: + sldrThis.unknown_0x932fea01 = input.ReadFloat(); + break; + case 0x165f0fa8: + sldrThis.unknown_0x165f0fa8 = input.ReadFloat(); + break; + case 0x6bd6b11f: + sldrThis.unknown_0x6bd6b11f = input.ReadFloat(); + break; + case 0x42420f6e: + sldrThis.unknown_0x42420f6e = CColor(input); + break; + case 0xa63229f1: + sldrThis.flowerReticleScale = input.ReadFloat(); + break; + case 0xbda45f1a: + sldrThis.flowerReticleColor = CColor(input); + break; + case 0xb090e147: + sldrThis.unknown_0xb090e147 = input.ReadFloat(); + break; + case 0x4c73a43d: + sldrThis.unknown_0x4c73a43d = input.ReadFloat(); + break; + case 0x6543d31b: + sldrThis.unknown_0x6543d31b = input.ReadFloat(); + break; + case 0x8cd2d1ce: + sldrThis.unknown_0x8cd2d1ce = input.ReadFloat(); + break; + case 0xe42f6be0: + sldrThis.missileBracketColor = CColor(input); + break; + case 0x45910e5d: + sldrThis.unknown_0x45910e5d = input.ReadFloat(); + break; + case 0x07b30fa0: + sldrThis.unknown_0x07b30fa0 = input.ReadFloat(); + break; + case 0x13ce8500: + sldrThis.unknown_0x13ce8500 = CColor(input); + break; + case 0x9829f256: + sldrThis.unknown_0x9829f256 = CColor(input); + break; + case 0x77a613b9: + sldrThis.unknown_0x77a613b9 = CColor(input); + break; + case 0xdfa81287: + sldrThis.unknown_0xdfa81287 = CColor(input); + break; + case 0xda752c50: + sldrThis.lockOnConfirmReticleColor = CColor(input); + break; + case 0x7b544e14: + sldrThis.seekerReticleColor = CColor(input); + break; + case 0x618d150a: + sldrThis.unknown_0x618d150a = input.ReadFloat(); + break; + case 0x209a2a8c: + sldrThis.unknown_0x209a2a8c = input.ReadFloat(); + break; + case 0xacb3f8f7: + sldrThis.unknown_0xacb3f8f7 = input.ReadFloat(); + break; + case 0xeda4c771: + sldrThis.unknown_0xeda4c771 = input.ReadFloat(); + break; + case 0xd3427574: + sldrThis.unknown_0xd3427574 = input.ReadFloat(); + break; + case 0x92554af2: + sldrThis.unknown_0x92554af2 = input.ReadFloat(); + break; + case 0x1e134e75: + sldrThis.unknown_0x1e134e75 = input.ReadFloat(); + break; + case 0x5f0471f3: + sldrThis.unknown_0x5f0471f3 = input.ReadFloat(); + break; + case 0xe90548ac: + sldrThis.unknown_0xe90548ac = input.ReadFloat(); + break; + case 0xa812772a: + sldrThis.unknown_0xa812772a = input.ReadFloat(); + break; + case 0x2d75c7be: + sldrThis.unknown_0x2d75c7be = input.ReadFloat(); + break; + case 0x6c62f838: + sldrThis.unknown_0x6c62f838 = input.ReadFloat(); + break; + case 0xf98e6242: + sldrThis.unknown_0xf98e6242 = input.ReadFloat(); + break; + case 0xb8995dc4: + sldrThis.unknown_0xb8995dc4 = input.ReadFloat(); + break; + case 0x5009c614: + sldrThis.unknown_0x5009c614 = input.ReadFloat(); + break; + case 0x111ef992: + sldrThis.unknown_0x111ef992 = input.ReadFloat(); + break; + case 0xec0ff888: + sldrThis.grappleIconScale = input.ReadFloat(); + break; + case 0xf229e05e: + sldrThis.grappleIconScaleInactive = input.ReadFloat(); + break; + case 0x498d794a: + sldrThis.unknown_0x498d794a = input.ReadFloat(); + break; + case 0x089a46cc: + sldrThis.unknown_0x089a46cc = input.ReadFloat(); + break; + case 0xf7998e63: + sldrThis.grappleIconColor = CColor(input); + break; + case 0x3ce853e3: + sldrThis.grappleIconColorInactive = CColor(input); + break; + case 0x083b1cc8: + sldrThis.unknown_0x083b1cc8 = CColor(input); + break; + case 0x966982b1: + sldrThis.unknown_0x966982b1 = input.ReadFloat(); + break; + case 0xf9799f5f: + sldrThis.unknown_0xf9799f5f = CColor(input); + break; + case 0x9b980788: + sldrThis.unknown_0x9b980788 = input.ReadFloat(); + break; + case 0x3523a47f: + sldrThis.orbitPointModelColor = CColor(input); + break; + case 0x27358b4d: + sldrThis.crosshairsColor = CColor(input); + break; + case 0x2ff52290: + sldrThis.unknown_0x2ff52290 = input.ReadFloat(); + break; + case 0x8a548cc9: + sldrThis.unknown_0x8a548cc9 = input.ReadBool(); + break; + case 0x65d449e1: + sldrThis.unknown_0x65d449e1 = CColor(input); + break; + case 0x42c7fbe4: + sldrThis.unknown_0x42c7fbe4 = input.ReadFloat(); + break; + case 0x13820c03: + sldrThis.unknown_0x13820c03 = input.ReadFloat(); + break; + case 0x52953385: + sldrThis.unknown_0x52953385 = input.ReadFloat(); + break; + case 0x0cd8fe5d: + sldrThis.xRaySeekerReticleColor = CColor(input); + break; + case 0xdd8cf478: + sldrThis.unknown_0xdd8cf478 = input.ReadFloat(); + break; + case 0xcbac6d52: + sldrThis.unknown_0xcbac6d52 = input.ReadFloat(); + break; + case 0x980a75b6: + sldrThis.unknown_0x980a75b6 = input.ReadFloat(); + break; + case 0xcd1e0e91: + sldrThis.unknown_0xcd1e0e91 = input.ReadFloat(); + break; + case 0xce9cf241: + sldrThis.unknown_0xce9cf241 = input.ReadFloat(); + break; + case 0xb6531e99: + sldrThis.unknown_0xb6531e99 = input.ReadFloat(); + break; + case 0x77e5c6b5: + sldrThis.unknown_0x77e5c6b5 = input.ReadFloat(); + break; + case 0xfef5668b: + sldrThis.unknown_0xfef5668b = input.ReadFloat(); + break; + case 0x5ce2a16f: + sldrThis.healthColor = CColor(input); + break; + case 0x1e179603: + LoadTypedefSLdrTweakTargeting_VulnerabilityIndicator(sldrThis.powerVulnerabilityIndicator, input); + break; + case 0x2b70cef8: + LoadTypedefSLdrTweakTargeting_VulnerabilityIndicator(sldrThis.lightVulnerabilityIndicator, input); + break; + case 0x946cefde: + LoadTypedefSLdrTweakTargeting_VulnerabilityIndicator(sldrThis.darkVulnerabilityIndicator, input); + break; + case 0x921c86e1: + LoadTypedefSLdrTweakTargeting_VulnerabilityIndicator(sldrThis.annihilatorVulnerabilityIndicator, input); + break; + default: + input.ReadBytes(nullptr, propertySize); + break; + } + } +} \ No newline at end of file