From 1d7cd590bda463f3eded0bf2a4e56059e79b7b6e Mon Sep 17 00:00:00 2001 From: Henrique Gemignani Passos Lima Date: Tue, 14 Jan 2025 17:50:11 +0200 Subject: [PATCH] More properties --- config/G2ME01/rels/Tweaks/splits.txt | 6 +++ configure.py | 2 + .../ScriptLoader/SLdrTweakTargeting_Scan.cpp | 44 +++++++++++++++++++ ...rTweakTargeting_VulnerabilityIndicator.cpp | 28 ++++++++++++ 4 files changed, 80 insertions(+) create mode 100644 src/MetroidPrime/ScriptLoader/SLdrTweakTargeting_Scan.cpp create mode 100644 src/MetroidPrime/ScriptLoader/SLdrTweakTargeting_VulnerabilityIndicator.cpp diff --git a/config/G2ME01/rels/Tweaks/splits.txt b/config/G2ME01/rels/Tweaks/splits.txt index 7a311aa..29c410a 100644 --- a/config/G2ME01/rels/Tweaks/splits.txt +++ b/config/G2ME01/rels/Tweaks/splits.txt @@ -51,6 +51,12 @@ MetroidPrime/ScriptLoader/Struct/SLdrTweakGui.cpp: MetroidPrime/ScriptLoader/SLdrTweakPlayerGun_Weapons.cpp: .text start:0x000066C8 end:0x00006B34 +MetroidPrime/ScriptLoader/SLdrTweakTargeting_VulnerabilityIndicator.cpp: + .text start:0x00006B34 end:0x00006CA8 + +MetroidPrime/ScriptLoader/SLdrTweakTargeting_Scan.cpp: + .text start:0x00006CA8 end:0x00006EC4 + REL/REL_Setup.cpp: .text start:0x0001DECC end:0x0001E070 .rodata start:0x00000408 end:0x0000048C diff --git a/configure.py b/configure.py index bf51c6d..fbeed79 100644 --- a/configure.py +++ b/configure.py @@ -450,6 +450,8 @@ config.libs = [ Object(NonMatching, "MetroidPrime/ScriptLoader/Struct/SLdrTweakTargeting.cpp"), Object(NonMatching, "MetroidPrime/ScriptLoader/Struct/SLdrTweakGui.cpp"), Object(NonMatching, "MetroidPrime/ScriptLoader/SLdrTweakPlayerGun_Weapons.cpp"), + Object(NonMatching, "MetroidPrime/ScriptLoader/SLdrTweakTargeting_VulnerabilityIndicator.cpp"), + Object(NonMatching, "MetroidPrime/ScriptLoader/SLdrTweakTargeting_Scan.cpp"), ], ), ] diff --git a/src/MetroidPrime/ScriptLoader/SLdrTweakTargeting_Scan.cpp b/src/MetroidPrime/ScriptLoader/SLdrTweakTargeting_Scan.cpp new file mode 100644 index 0000000..7889218 --- /dev/null +++ b/src/MetroidPrime/ScriptLoader/SLdrTweakTargeting_Scan.cpp @@ -0,0 +1,44 @@ +#include "MetroidPrime/ScriptLoader/SLdrTweakTargeting_Scan.hpp" + +SLdrTweakTargeting_Scan::SLdrTweakTargeting_Scan() +: unknown(CColor::Green()) +, scanLockLockedColor(CColor::Green()) +, scanLockUnlockedColor(CColor::Green()) { + scanLockScale = 1.0f; + scanLockTransitionTime = 0.30000001f; + scanLockTranslation = 1.0f; +} + +SLdrTweakTargeting_Scan::~SLdrTweakTargeting_Scan() {} + +void LoadTypedefSLdrTweakTargeting_Scan(SLdrTweakTargeting_Scan& 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 0xa0857b6e: + sldrThis.scanLockScale = input.ReadFloat(); + break; + case 0xa4cce30f: + sldrThis.scanLockTransitionTime = input.ReadFloat(); + break; + case 0x8e9bfea3: + sldrThis.scanLockTranslation = input.ReadFloat(); + break; + case 0x768110cd: + sldrThis.unknown = CColor(input); + break; + case 0x319f966b: + sldrThis.scanLockLockedColor = CColor(input); + break; + case 0xa81f378c: + sldrThis.scanLockUnlockedColor = CColor(input); + break; + default: + input.ReadBytes(nullptr, propertySize); + break; + } + } +} diff --git a/src/MetroidPrime/ScriptLoader/SLdrTweakTargeting_VulnerabilityIndicator.cpp b/src/MetroidPrime/ScriptLoader/SLdrTweakTargeting_VulnerabilityIndicator.cpp new file mode 100644 index 0000000..bb593ee --- /dev/null +++ b/src/MetroidPrime/ScriptLoader/SLdrTweakTargeting_VulnerabilityIndicator.cpp @@ -0,0 +1,28 @@ +#include "MetroidPrime/ScriptLoader/SLdrTweakTargeting_VulnerabilityIndicator.hpp" + +SLdrTweakTargeting_VulnerabilityIndicator::SLdrTweakTargeting_VulnerabilityIndicator() { + indicatorAngle = 0.0f; + indicatorColor = CColor::Black(); +} + +SLdrTweakTargeting_VulnerabilityIndicator::~SLdrTweakTargeting_VulnerabilityIndicator() {} + +void LoadTypedefSLdrTweakTargeting_VulnerabilityIndicator(SLdrTweakTargeting_VulnerabilityIndicator& 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 0x4c86af42: + sldrThis.indicatorAngle = input.ReadFloat(); + break; + case 0x436b66ac: + sldrThis.indicatorColor = CColor(input); + break; + default: + input.ReadBytes(nullptr, propertySize); + break; + } + } +}