Initial code for Tweaks REL

This commit is contained in:
Henrique Gemignani Passos Lima 2025-01-14 03:13:17 +02:00
parent bbf17f6a57
commit f38f6b1736
No known key found for this signature in database
GPG Key ID: E224F951761145F8
25 changed files with 1666 additions and 39 deletions

View File

@ -5,6 +5,10 @@ Sections:
.rodata type:rodata align:8
.bss type:bss align:8
MetroidPrime/Tweaks/Tweaks.cpp:
.text start:0x00000000 end:0x0001DECC
.bss start:0x00000000 end:0x0000000C
REL/REL_Setup.cpp:
.text start:0x0001DECC end:0x0001E070
.rodata start:0x00000408 end:0x0000048C

View File

@ -1,72 +1,72 @@
fn_82_0 = .text:0x00000000; // type:function size:0x24
fn_82_24 = .text:0x00000024; // type:function size:0x20
fn_82_44 = .text:0x00000044; // type:function size:0x48
fn_82_8C = .text:0x0000008C; // type:function size:0x278
RELExit = .text:0x00000000; // type:function size:0x24
RELMain = .text:0x00000024; // type:function size:0x20
TweaksInit__Fv = .text:0x00000044; // type:function size:0x48
REL_FreeTweaks__Fv = .text:0x0000008C; // type:function size:0x278
fn_82_304 = .text:0x00000304; // type:function size:0x48
fn_82_34C = .text:0x0000034C; // type:function size:0x88
fn_82_3D4 = .text:0x000003D4; // type:function size:0x58
fn_82_42C = .text:0x0000042C; // type:function size:0x54
fn_82_480 = .text:0x00000480; // type:function size:0x88
fn_82_508 = .text:0x00000508; // type:function size:0x5AC
REL_CreateTweakGlobals__Fv = .text:0x00000508; // type:function size:0x5AC
fn_82_AB4 = .text:0x00000AB4; // type:function size:0x94
fn_82_B48 = .text:0x00000B48; // type:function size:0x3C
fn_82_B84 = .text:0x00000B84; // type:function size:0x3C
fn_82_BC0 = .text:0x00000BC0; // type:function size:0x8C
fn_82_C4C = .text:0x00000C4C; // type:function size:0x38
fn_82_C84 = .text:0x00000C84; // type:function size:0x50
fn_82_CD4 = .text:0x00000CD4; // type:function size:0x218
fn_82_EEC = .text:0x00000EEC; // type:function size:0x298
REL_LoadTweaks__FR12CInputStream = .text:0x00000CD4; // type:function size:0x218
DecodeAnyTweak__FUiR12CInputStream = .text:0x00000EEC; // type:function size:0x298
fn_82_1184 = .text:0x00001184; // type:function size:0x10C
fn_82_1290 = .text:0x00001290; // type:function size:0xA8
fn_82_1338 = .text:0x00001338; // type:function size:0x28C
__ct__14CTweakContentsFv = .text:0x00001290; // type:function size:0xA8
LoadTypedefSLdrTweakPlayer__FR15SLdrTweakPlayerR12CInputStream = .text:0x00001338; // type:function size:0x28C
fn_82_15C4 = .text:0x000015C4; // type:function size:0xF8
fn_82_16BC = .text:0x000016BC; // type:function size:0xAC
fn_82_1768 = .text:0x00001768; // type:function size:0x2B0
LoadTypedefSLdrTweakCameraBob__FR18SLdrTweakCameraBobR12CInputStream = .text:0x00001768; // type:function size:0x2B0
fn_82_1A18 = .text:0x00001A18; // type:function size:0x54
fn_82_1A6C = .text:0x00001A6C; // type:function size:0xD0
fn_82_1B3C = .text:0x00001B3C; // type:function size:0x2B0
LoadTypedefSLdrTweakPlayerGun__FR18SLdrTweakPlayerGunR12CInputStream = .text:0x00001B3C; // type:function size:0x2B0
fn_82_1DEC = .text:0x00001DEC; // type:function size:0x104
fn_82_1EF0 = .text:0x00001EF0; // type:function size:0xD4
fn_82_1FC4 = .text:0x00001FC4; // type:function size:0x2B0
fn_82_2274 = .text:0x00002274; // type:function size:0x104
fn_82_2378 = .text:0x00002378; // type:function size:0xD4
fn_82_244C = .text:0x0000244C; // type:function size:0x100
LoadTypedefSLdrTweakPlayerControls__FR23SLdrTweakPlayerControlsR12CInputStream = .text:0x0000244C; // type:function size:0x100
fn_82_254C = .text:0x0000254C; // type:function size:0x74
fn_82_25C0 = .text:0x000025C0; // type:function size:0x54
fn_82_2614 = .text:0x00002614; // type:function size:0x100
LoadTypedefSLdrTweakAutoMapper__FR19SLdrTweakAutoMapperR12CInputStream = .text:0x00002614; // type:function size:0x100
fn_82_2714 = .text:0x00002714; // type:function size:0x74
fn_82_2788 = .text:0x00002788; // type:function size:0x54
fn_82_27DC = .text:0x000027DC; // type:function size:0x1B4
LoadTypedefSLdrTweakBall__FR13SLdrTweakBallR12CInputStream = .text:0x000027DC; // type:function size:0x1B4
fn_82_2990 = .text:0x00002990; // type:function size:0xB0
fn_82_2A40 = .text:0x00002A40; // type:function size:0x7C
fn_82_2ABC = .text:0x00002ABC; // type:function size:0x37C
LoadTypedefSLdrTweakSlideShow__FR18SLdrTweakSlideShowR12CInputStream = .text:0x00002ABC; // type:function size:0x37C
fn_82_2E38 = .text:0x00002E38; // type:function size:0x8C
fn_82_2EC4 = .text:0x00002EC4; // type:function size:0x1AC
fn_82_3070 = .text:0x00003070; // type:function size:0x28C
fn_82_32FC = .text:0x000032FC; // type:function size:0xF8
fn_82_33F4 = .text:0x000033F4; // type:function size:0xAC
fn_82_34A0 = .text:0x000034A0; // type:function size:0x480
LoadTypedefSLdrTweakGame__FR13SLdrTweakGameR12CInputStream = .text:0x000034A0; // type:function size:0x480
fn_82_3920 = .text:0x00003920; // type:function size:0xAC
fn_82_39CC = .text:0x000039CC; // type:function size:0xE0
fn_82_3AAC = .text:0x00003AAC; // type:function size:0xC
fn_82_3AB8 = .text:0x00003AB8; // type:function size:0xB8
fn_82_3B70 = .text:0x00003B70; // type:function size:0x150
fn_82_3CC0 = .text:0x00003CC0; // type:function size:0x2B0
LoadTypedefSLdrTweakGuiColors__FR18SLdrTweakGuiColorsR12CInputStream = .text:0x00003CC0; // type:function size:0x2B0
fn_82_3F70 = .text:0x00003F70; // type:function size:0x104
fn_82_4074 = .text:0x00004074; // type:function size:0xB4
fn_82_4128 = .text:0x00004128; // type:function size:0x16C
LoadTypedefSLdrTweakParticle__FR17SLdrTweakParticleR12CInputStream = .text:0x00004128; // type:function size:0x16C
fn_82_4294 = .text:0x00004294; // type:function size:0x8C
fn_82_4320 = .text:0x00004320; // type:function size:0x40
fn_82_4360 = .text:0x00004360; // type:function size:0x100
fn_82_4460 = .text:0x00004460; // type:function size:0x74
fn_82_44D4 = .text:0x000044D4; // type:function size:0x54
fn_82_4528 = .text:0x00004528; // type:function size:0x16C
LoadTypedefSLdrTweakPlayerRes__FR18SLdrTweakPlayerResR12CInputStream = .text:0x00004528; // type:function size:0x16C
fn_82_4694 = .text:0x00004694; // type:function size:0x8C
fn_82_4720 = .text:0x00004720; // type:function size:0x70
fn_82_4790 = .text:0x00004790; // type:function size:0x11B4
LoadTypedefSLdrTweakTargeting__FR18SLdrTweakTargetingR12CInputStream = .text:0x00004790; // type:function size:0x11B4
fn_82_5944 = .text:0x00005944; // type:function size:0xF8
fn_82_5A3C = .text:0x00005A3C; // type:function size:0x93C
fn_82_6378 = .text:0x00006378; // type:function size:0x1FC
LoadTypedefSLdrTweakGui__FR12SLdrTweakGuiR12CInputStream = .text:0x00006378; // type:function size:0x1FC
fn_82_6574 = .text:0x00006574; // type:function size:0xC8
fn_82_663C = .text:0x0000663C; // type:function size:0x8C
fn_82_66C8 = .text:0x000066C8; // type:function size:0x208
@ -524,4 +524,4 @@ lbl_82_section4_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float
lbl_82_section4_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float
lbl_82_section4_3F0 = .rodata:0x000003F0; // type:object size:0x18
lbl_82_section4_408 = .rodata:0x00000408; // type:object size:0x84
lbl_82_bss_0 = .bss:0x00000000; // type:object size:0xC data:4byte
REL_loader_Tweaks = .bss:0x00000000; // type:object size:0xC data:4byte

View File

@ -9454,7 +9454,7 @@ fn_80218698 = .text:0x80218698; // type:function size:0xC8
fn_80218760 = .text:0x80218760; // type:function size:0x2C
fn_8021878C = .text:0x8021878C; // type:function size:0x2C
fn_802187B8 = .text:0x802187B8; // type:function size:0x2C
fn_802187E4 = .text:0x802187E4; // type:function size:0x8 align:4
SetTweaks_FuncPtrs__FP16STweaks_FuncPtrs = .text:0x802187E4; // type:function size:0x8 align:4
fn_802187EC = .text:0x802187EC; // type:function size:0x2C align:4
fn_80218818 = .text:0x80218818; // type:function size:0x38 align:4
fn_80218850 = .text:0x80218850; // type:function size:0x2C align:4
@ -20438,7 +20438,7 @@ lbl_80419398 = .sbss:0x80419398; // type:object size:0x1 data:byte
lbl_8041939C = .sbss:0x8041939C; // type:object size:0x1 data:byte
lbl_804193A0 = .sbss:0x804193A0; // type:object size:0x8 data:byte
lbl_804193A8 = .sbss:0x804193A8; // type:object size:0x8 data:4byte
lbl_804193B0 = .sbss:0x804193B0; // type:object size:0x8
gpTweakContents = .sbss:0x804193B0; // type:object size:0x8
lbl_804193B8 = .sbss:0x804193B8; // type:object size:0x8 data:4byte
lbl_804193C0 = .sbss:0x804193C0; // type:object size:0x8 data:4byte
lbl_804193C8 = .sbss:0x804193C8; // type:object size:0x8 data:4byte

View File

@ -432,6 +432,12 @@ config.libs = [
Object(NonMatching, "MetroidPrime/ScriptObjects/CScriptCannonBall.cpp"),
],
),
Rel(
"Tweaks",
[
Object(NonMatching, "MetroidPrime/Tweaks/Tweaks.cpp"),
],
),
]

View File

@ -1,6 +1,7 @@
#ifndef _SLDRCAMERASHAKERDATA
#define _SLDRCAMERASHAKERDATA
#include "Kyoto/Math/CMayaSpline.hpp"
#include "Kyoto/Streams/CInputStream.hpp"
struct SLdrCameraShakerData {
@ -9,9 +10,9 @@ struct SLdrCameraShakerData {
int flagsCameraShaker;
float attenuationDistance;
spline horizontalMotion;
spline verticalMotion;
spline forwardMotion;
SLdrSpline horizontalMotion;
SLdrSpline verticalMotion;
SLdrSpline forwardMotion;
float duration;
int audioEffect;
};

View File

@ -1,6 +1,7 @@
#ifndef _SLDRTBALLTRANSITIONRESOURCES
#define _SLDRTBALLTRANSITIONRESOURCES
#include "Kyoto/Math/CMayaSpline.hpp"
#include "Kyoto/Streams/CInputStream.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTGunResources.hpp"
#include "rstl/string.hpp"
@ -12,11 +13,11 @@ struct SLdrTBallTransitionResources {
rstl::string unknown_0xd48e4124;
SLdrTGunResources unknown_0x01e12c84;
SLdrTGunResources unknown_0xf24b055d;
spline unknown_0xa342c3a6;
spline unknown_0x15b6840d;
spline unknown_0x23fb0e93;
spline unknown_0x564262f0;
spline movementControl;
SLdrSpline unknown_0xa342c3a6;
SLdrSpline unknown_0x15b6840d;
SLdrSpline unknown_0x23fb0e93;
SLdrSpline unknown_0x564262f0;
SLdrSpline movementControl;
};
void LoadTypedefSLdrTBallTransitionResources(SLdrTBallTransitionResources&, CInputStream&);

View File

@ -2,6 +2,7 @@
#define _SLDRTWEAKGUI_LOGBOOK
#include "Kyoto/Graphics/CColor.hpp"
#include "Kyoto/Math/CMayaSpline.hpp"
#include "Kyoto/Math/CVector3f.hpp"
#include "Kyoto/Streams/CInputStream.hpp"
@ -24,15 +25,15 @@ struct SLdrTweakGui_LogBook {
float textScale;
float selectedTextScale;
float transitionTime;
spline nodeCollapseMotion;
spline selectedNodeCollapseMotion;
spline nodeExpandMotion;
SLdrSpline nodeCollapseMotion;
SLdrSpline selectedNodeCollapseMotion;
SLdrSpline nodeExpandMotion;
float rotationSpeed;
float nodeScale;
float selectedNodeScale;
float selectedTextCursorScale;
float scanModelScale;
spline unknown_0x925b9d4a;
SLdrSpline unknown_0x925b9d4a;
CColor unknown_0x075a0734;
float unknown_0x8ef43309;
float fogNear;

View File

@ -2,6 +2,7 @@
#define _SLDRTWEAKGUI_MISC
#include "Kyoto/Graphics/CColor.hpp"
#include "Kyoto/Math/CMayaSpline.hpp"
#include "Kyoto/Math/CVector3f.hpp"
#include "Kyoto/Streams/CInputStream.hpp"
#include "rstl/string.hpp"
@ -130,9 +131,9 @@ struct SLdrTweakGui_Misc {
float unknown_0x138f1104;
float unknown_0xd0d1760e;
float unknown_0xce9f5770;
spline unknown_0xeaf17d45;
spline unknown_0xd81537b6;
spline unknown_0x3ba84552;
SLdrSpline unknown_0xeaf17d45;
SLdrSpline unknown_0xd81537b6;
SLdrSpline unknown_0x3ba84552;
float unknown_0xeeb7839b;
float unknown_0x24cf1719;
float unknown_0xa4adf6ea;

View File

@ -0,0 +1,43 @@
#ifndef _SLDRTWEAKAUTOMAPPER
#define _SLDRTWEAKAUTOMAPPER
#include "Kyoto/Streams/CInputStream.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakAutoMapper_Base.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakAutoMapper_DoorColors.hpp"
#include "rstl/string.hpp"
struct SLdrTweakAutoMapper {
SLdrTweakAutoMapper();
~SLdrTweakAutoMapper();
rstl::string instanceName;
SLdrTweakAutoMapper_Base base;
SLdrTweakAutoMapper_DoorColors doorColors;
};
void LoadTypedefSLdrTweakAutoMapper(SLdrTweakAutoMapper&, CInputStream&);
/* {
SLdrTweakAutoMapper sldrThis;
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 = TODO
break;
case 0x18b2f423:
LoadTypedefSLdrTweakAutoMapper_Base(sldrThis.base, input);
break;
case 0xc5368863:
LoadTypedefSLdrTweakAutoMapper_DoorColors(sldrThis.doorColors, input);
break;
default:
input.ReadBytes(nullptr, propertySize);
break;
}
}
} */
#endif // _SLDRTWEAKAUTOMAPPER

View File

@ -0,0 +1,68 @@
#ifndef _SLDRTWEAKBALL
#define _SLDRTWEAKBALL
#include "Kyoto/Streams/CInputStream.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakBall_BoostBall.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakBall_Camera.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakBall_CannonBall.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakBall_DeathBall.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakBall_Misc.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakBall_Movement.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakBall_ScrewAttack.hpp"
#include "rstl/string.hpp"
struct SLdrTweakBall {
SLdrTweakBall();
~SLdrTweakBall();
rstl::string instanceName;
SLdrTweakBall_Movement movement;
SLdrTweakBall_Camera camera;
SLdrTweakBall_Misc misc;
SLdrTweakBall_BoostBall boostBall;
SLdrTweakBall_CannonBall cannonBall;
SLdrTweakBall_ScrewAttack screwAttack;
SLdrTweakBall_DeathBall deathBall;
};
void LoadTypedefSLdrTweakBall(SLdrTweakBall&, CInputStream&);
/* {
SLdrTweakBall sldrThis;
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 = TODO
break;
case 0x0def1ffb:
LoadTypedefSLdrTweakBall_Movement(sldrThis.movement, input);
break;
case 0x7aac09b9:
LoadTypedefSLdrTweakBall_Camera(sldrThis.camera, input);
break;
case 0x0c67b730:
LoadTypedefSLdrTweakBall_Misc(sldrThis.misc, input);
break;
case 0xcb4ea3bf:
LoadTypedefSLdrTweakBall_BoostBall(sldrThis.boostBall, input);
break;
case 0x5fb9e808:
LoadTypedefSLdrTweakBall_CannonBall(sldrThis.cannonBall, input);
break;
case 0x4b1c7b7d:
LoadTypedefSLdrTweakBall_ScrewAttack(sldrThis.screwAttack, input);
break;
case 0xbb5fc8a4:
LoadTypedefSLdrTweakBall_DeathBall(sldrThis.deathBall, input);
break;
default:
input.ReadBytes(nullptr, propertySize);
break;
}
}
} */
#endif // _SLDRTWEAKBALL

View File

@ -0,0 +1,89 @@
#ifndef _SLDRTWEAKCAMERABOB
#define _SLDRTWEAKCAMERABOB
#include "Kyoto/Streams/CInputStream.hpp"
#include "rstl/string.hpp"
struct SLdrTweakCameraBob {
SLdrTweakCameraBob();
~SLdrTweakCameraBob();
rstl::string instanceName;
float cameraBobExtentX;
float cameraBobExtentY;
float cameraBobPeriod;
float unknown_0xa27bb5a7;
float unknown_0xe3580b2b;
float slowSpeedPeriodScale;
float targetMagnitudeTrackingRate;
float landingBobSpringConstant;
float viewWanderRadius;
float viewWanderSpeedMin;
float viewWanderSpeedMax;
float viewWanderRollVariation;
float gunBobMagnitude;
float helmetBobMagnitude;
};
void LoadTypedefSLdrTweakCameraBob(SLdrTweakCameraBob&, CInputStream&);
/* {
SLdrTweakCameraBob sldrThis;
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 = TODO
break;
case 0xe2a0b6f1:
sldrThis.cameraBobExtentX = input.ReadFloat();
break;
case 0x29fc6554:
sldrThis.cameraBobExtentY = input.ReadFloat();
break;
case 0x149d7339:
sldrThis.cameraBobPeriod = input.ReadFloat();
break;
case 0xa27bb5a7:
sldrThis.unknown_0xa27bb5a7 = input.ReadFloat();
break;
case 0xe3580b2b:
sldrThis.unknown_0xe3580b2b = input.ReadFloat();
break;
case 0xb05dade7:
sldrThis.slowSpeedPeriodScale = input.ReadFloat();
break;
case 0x6dc5d440:
sldrThis.targetMagnitudeTrackingRate = input.ReadFloat();
break;
case 0xd16539a7:
sldrThis.landingBobSpringConstant = input.ReadFloat();
break;
case 0xadbb0a42:
sldrThis.viewWanderRadius = input.ReadFloat();
break;
case 0xe7f8f11b:
sldrThis.viewWanderSpeedMin = input.ReadFloat();
break;
case 0x01985efa:
sldrThis.viewWanderSpeedMax = input.ReadFloat();
break;
case 0xef19ba33:
sldrThis.viewWanderRollVariation = input.ReadFloat();
break;
case 0x7f59be96:
sldrThis.gunBobMagnitude = input.ReadFloat();
break;
case 0x38a82ac1:
sldrThis.helmetBobMagnitude = input.ReadFloat();
break;
default:
input.ReadBytes(nullptr, propertySize);
break;
}
}
} */
#endif // _SLDRTWEAKCAMERABOB

View File

@ -0,0 +1,129 @@
#ifndef _SLDRTWEAKGAME
#define _SLDRTWEAKGAME
#include "Kyoto/Math/CMayaSpline.hpp"
#include "Kyoto/Streams/CInputStream.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakGame_CoinLimitChoices.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakGame_FragLimitChoices.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakGame_TimeLimitChoices.hpp"
#include "rstl/string.hpp"
struct SLdrTweakGame {
SLdrTweakGame();
~SLdrTweakGame();
rstl::string instanceName;
rstl::string pakFile;
rstl::string asset;
float fieldofView;
float fieldofView2Player;
bool disableDebugMenu;
bool unknown_0x7262d27b;
bool developmentMode;
float unknown_0xa3dcf42a;
float unknown_0xb35c72be;
float unknown_0x4a02103c;
float unknown_0xe1fca71b;
float unknown_0xfbce966a;
float unknown_0x09c6ca10;
float hardModeDamageMultiplier;
float hardModeWeaponMultiplier;
float unknown_0x5ab5812c;
float unknown_0x53401390;
int totalPercentage;
SLdrTweakGame_FragLimitChoices unknown_0x1d627808;
SLdrTweakGame_TimeLimitChoices unknown_0xb2e8828d;
SLdrTweakGame_CoinLimitChoices unknown_0x06af87bd;
SLdrTweakGame_TimeLimitChoices unknown_0x1533ea4e;
SLdrSpline unknown_0x40818220;
};
void LoadTypedefSLdrTweakGame(SLdrTweakGame&, CInputStream&);
/* {
SLdrTweakGame sldrThis;
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 = TODO
break;
case 0x2bd13ab3:
// sldrThis.pakFile = TODO
break;
case 0xf8be005a:
// sldrThis.asset = TODO
break;
case 0xfc93ceb8:
sldrThis.fieldofView = input.ReadFloat();
break;
case 0x9fb2faa6:
sldrThis.fieldofView2Player = input.ReadFloat();
break;
case 0xa9096914:
sldrThis.disableDebugMenu = input.ReadBool();
break;
case 0x7262d27b:
sldrThis.unknown_0x7262d27b = input.ReadBool();
break;
case 0xe943ba12:
sldrThis.developmentMode = input.ReadBool();
break;
case 0xa3dcf42a:
sldrThis.unknown_0xa3dcf42a = input.ReadFloat();
break;
case 0xb35c72be:
sldrThis.unknown_0xb35c72be = input.ReadFloat();
break;
case 0x4a02103c:
sldrThis.unknown_0x4a02103c = input.ReadFloat();
break;
case 0xe1fca71b:
sldrThis.unknown_0xe1fca71b = input.ReadFloat();
break;
case 0xfbce966a:
sldrThis.unknown_0xfbce966a = input.ReadFloat();
break;
case 0x09c6ca10:
sldrThis.unknown_0x09c6ca10 = input.ReadFloat();
break;
case 0x4dfcd432:
sldrThis.hardModeDamageMultiplier = input.ReadFloat();
break;
case 0xae1831d9:
sldrThis.hardModeWeaponMultiplier = input.ReadFloat();
break;
case 0x5ab5812c:
sldrThis.unknown_0x5ab5812c = input.ReadFloat();
break;
case 0x53401390:
sldrThis.unknown_0x53401390 = input.ReadFloat();
break;
case 0xd09f373b:
sldrThis.totalPercentage = input.ReadInt32();
break;
case 0x1d627808:
LoadTypedefSLdrTweakGame_FragLimitChoices(sldrThis.unknown_0x1d627808, input);
break;
case 0xb2e8828d:
LoadTypedefSLdrTweakGame_TimeLimitChoices(sldrThis.unknown_0xb2e8828d, input);
break;
case 0x06af87bd:
LoadTypedefSLdrTweakGame_CoinLimitChoices(sldrThis.unknown_0x06af87bd, input);
break;
case 0x1533ea4e:
LoadTypedefSLdrTweakGame_TimeLimitChoices(sldrThis.unknown_0x1533ea4e, input);
break;
case 0x40818220:
// sldrThis.unknown_0x40818220 = TODO
break;
default:
input.ReadBytes(nullptr, propertySize);
break;
}
}
} */
#endif // _SLDRTWEAKGAME

View File

@ -0,0 +1,78 @@
#ifndef _SLDRTWEAKGUI
#define _SLDRTWEAKGUI
#include "Kyoto/Streams/CInputStream.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakGui_Completion.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakGui_Credits.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakGui_DarkVisor.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakGui_EchoVisor.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakGui_LogBook.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakGui_Misc.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakGui_MovieVolumes.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakGui_ScanVisor.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakGui_ScannableObjectDownloadTimes.hpp"
#include "rstl/string.hpp"
struct SLdrTweakGui {
SLdrTweakGui();
~SLdrTweakGui();
rstl::string instanceName;
SLdrTweakGui_Misc misc;
SLdrTweakGui_ScannableObjectDownloadTimes scannableObjectDownloadTimes;
SLdrTweakGui_DarkVisor unknown;
SLdrTweakGui_EchoVisor echoVisor;
SLdrTweakGui_ScanVisor scanVisor;
SLdrTweakGui_LogBook logBook;
SLdrTweakGui_Credits credits;
SLdrTweakGui_Completion completion;
SLdrTweakGui_MovieVolumes movieVolumes;
};
void LoadTypedefSLdrTweakGui(SLdrTweakGui&, CInputStream&);
/* {
SLdrTweakGui sldrThis;
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 = TODO
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;
}
}
} */
#endif // _SLDRTWEAKGUI

View File

@ -0,0 +1,95 @@
#ifndef _SLDRTWEAKGUICOLORS
#define _SLDRTWEAKGUICOLORS
#include "Kyoto/Streams/CInputStream.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakGuiColors_HUDColorsTypedef.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakGuiColors_Misc.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakGuiColors_Multiplayer.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakGuiColors_TurretHudTypedef.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakGui_HudColorTypedef.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakGui_VisorColorSchemeTypedef.hpp"
#include "rstl/string.hpp"
struct SLdrTweakGuiColors {
SLdrTweakGuiColors();
~SLdrTweakGuiColors();
rstl::string instanceName;
SLdrTweakGuiColors_HUDColorsTypedef hudColors;
SLdrTweakGuiColors_Misc misc;
SLdrTweakGuiColors_Multiplayer multiplayer;
SLdrTweakGui_VisorColorSchemeTypedef combatHudColorScheme;
SLdrTweakGui_VisorColorSchemeTypedef echoHudColorScheme;
SLdrTweakGui_VisorColorSchemeTypedef scanHudColorScheme;
SLdrTweakGui_VisorColorSchemeTypedef darkHudColorScheme;
SLdrTweakGui_VisorColorSchemeTypedef ballHudColorScheme;
SLdrTweakGui_HudColorTypedef combatHud;
SLdrTweakGui_HudColorTypedef scanHud;
SLdrTweakGui_HudColorTypedef xRayHud;
SLdrTweakGui_HudColorTypedef thermalHud;
SLdrTweakGui_HudColorTypedef ballHud;
SLdrTweakGuiColors_TurretHudTypedef turretHud;
};
void LoadTypedefSLdrTweakGuiColors(SLdrTweakGuiColors&, CInputStream&);
/* {
SLdrTweakGuiColors sldrThis;
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 = TODO
break;
case 0xcb737724:
LoadTypedefSLdrTweakGuiColors_HUDColorsTypedef(sldrThis.hudColors, input);
break;
case 0x6756d4de:
LoadTypedefSLdrTweakGuiColors_Misc(sldrThis.misc, input);
break;
case 0x697613e9:
LoadTypedefSLdrTweakGuiColors_Multiplayer(sldrThis.multiplayer, input);
break;
case 0x67c70055:
LoadTypedefSLdrTweakGui_VisorColorSchemeTypedef(sldrThis.combatHudColorScheme, input);
break;
case 0x62e0a08f:
LoadTypedefSLdrTweakGui_VisorColorSchemeTypedef(sldrThis.echoHudColorScheme, input);
break;
case 0x80becd6e:
LoadTypedefSLdrTweakGui_VisorColorSchemeTypedef(sldrThis.scanHudColorScheme, input);
break;
case 0x7de4b297:
LoadTypedefSLdrTweakGui_VisorColorSchemeTypedef(sldrThis.darkHudColorScheme, input);
break;
case 0xc0181762:
LoadTypedefSLdrTweakGui_VisorColorSchemeTypedef(sldrThis.ballHudColorScheme, input);
break;
case 0x45d7a40f:
LoadTypedefSLdrTweakGui_HudColorTypedef(sldrThis.combatHud, input);
break;
case 0x594b44cf:
LoadTypedefSLdrTweakGui_HudColorTypedef(sldrThis.scanHud, input);
break;
case 0x8f5ebeb9:
LoadTypedefSLdrTweakGui_HudColorTypedef(sldrThis.xRayHud, input);
break;
case 0xf12b1e59:
LoadTypedefSLdrTweakGui_HudColorTypedef(sldrThis.thermalHud, input);
break;
case 0x58cd6373:
LoadTypedefSLdrTweakGui_HudColorTypedef(sldrThis.ballHud, input);
break;
case 0xde139081:
LoadTypedefSLdrTweakGuiColors_TurretHudTypedef(sldrThis.turretHud, input);
break;
default:
input.ReadBytes(nullptr, propertySize);
break;
}
}
} */
#endif // _SLDRTWEAKGUICOLORS

View File

@ -0,0 +1,45 @@
#ifndef _SLDRTWEAKPARTICLE
#define _SLDRTWEAKPARTICLE
#include "Kyoto/Streams/CInputStream.hpp"
#include "rstl/string.hpp"
struct SLdrTweakParticle {
SLdrTweakParticle();
~SLdrTweakParticle();
rstl::string instanceName;
rstl::string pakFile;
rstl::string primaryWeapon;
rstl::string secondaryWeapon;
};
void LoadTypedefSLdrTweakParticle(SLdrTweakParticle&, CInputStream&);
/* {
SLdrTweakParticle sldrThis;
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 = TODO
break;
case 0x2bd13ab3:
// sldrThis.pakFile = TODO
break;
case 0x5e15868a:
// sldrThis.primaryWeapon = TODO
break;
case 0xbc401445:
// sldrThis.secondaryWeapon = TODO
break;
default:
input.ReadBytes(nullptr, propertySize);
break;
}
}
} */
#endif // _SLDRTWEAKPARTICLE

View File

@ -0,0 +1,98 @@
#ifndef _SLDRTWEAKPLAYER
#define _SLDRTWEAKPLAYER
#include "Kyoto/Streams/CInputStream.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakPlayer_AimStuff.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakPlayer_Collision.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakPlayer_DarkWorld.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakPlayer_FirstPersonCamera.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakPlayer_Frozen.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakPlayer_Grapple.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakPlayer_GrappleBeam.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakPlayer_Misc.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakPlayer_Motion.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakPlayer_Orbit.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakPlayer_ScanVisor.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakPlayer_Shield.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakPlayer_SuitDamageReduction.hpp"
#include "rstl/string.hpp"
struct SLdrTweakPlayer {
SLdrTweakPlayer();
~SLdrTweakPlayer();
rstl::string instanceName;
SLdrTweakPlayer_DarkWorld darkWorld;
SLdrTweakPlayer_GrappleBeam grappleBeam;
SLdrTweakPlayer_Motion motion;
SLdrTweakPlayer_Misc misc;
SLdrTweakPlayer_AimStuff aimStuff;
SLdrTweakPlayer_Orbit orbit;
SLdrTweakPlayer_ScanVisor scanVisor;
SLdrTweakPlayer_Grapple grapple;
SLdrTweakPlayer_Collision collision;
SLdrTweakPlayer_FirstPersonCamera firstPersonCamera;
SLdrTweakPlayer_Shield shield;
SLdrTweakPlayer_Frozen frozen;
SLdrTweakPlayer_SuitDamageReduction suitDamageReduction;
};
void LoadTypedefSLdrTweakPlayer(SLdrTweakPlayer&, CInputStream&);
/* {
SLdrTweakPlayer sldrThis;
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 = TODO
break;
case 0xdfd08eba:
LoadTypedefSLdrTweakPlayer_DarkWorld(sldrThis.darkWorld, input);
break;
case 0x45171a96:
LoadTypedefSLdrTweakPlayer_GrappleBeam(sldrThis.grappleBeam, input);
break;
case 0x82cf4cf1:
LoadTypedefSLdrTweakPlayer_Motion(sldrThis.motion, input);
break;
case 0x56a720c8:
LoadTypedefSLdrTweakPlayer_Misc(sldrThis.misc, input);
break;
case 0x42a17438:
LoadTypedefSLdrTweakPlayer_AimStuff(sldrThis.aimStuff, input);
break;
case 0x243ae038:
LoadTypedefSLdrTweakPlayer_Orbit(sldrThis.orbit, input);
break;
case 0x20124c3d:
LoadTypedefSLdrTweakPlayer_ScanVisor(sldrThis.scanVisor, input);
break;
case 0x30412440:
LoadTypedefSLdrTweakPlayer_Grapple(sldrThis.grapple, input);
break;
case 0xc4d32ae5:
LoadTypedefSLdrTweakPlayer_Collision(sldrThis.collision, input);
break;
case 0xd6155d4b:
LoadTypedefSLdrTweakPlayer_FirstPersonCamera(sldrThis.firstPersonCamera, input);
break;
case 0xbcca767e:
LoadTypedefSLdrTweakPlayer_Shield(sldrThis.shield, input);
break;
case 0x4d3b20b7:
LoadTypedefSLdrTweakPlayer_Frozen(sldrThis.frozen, input);
break;
case 0xaeaff210:
LoadTypedefSLdrTweakPlayer_SuitDamageReduction(sldrThis.suitDamageReduction, input);
break;
default:
input.ReadBytes(nullptr, propertySize);
break;
}
}
} */
#endif // _SLDRTWEAKPLAYER

View File

@ -0,0 +1,43 @@
#ifndef _SLDRTWEAKPLAYERCONTROLS
#define _SLDRTWEAKPLAYERCONTROLS
#include "Kyoto/Streams/CInputStream.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakPlayerControls_UnknownStruct1.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakPlayerControls_UnknownStruct2.hpp"
#include "rstl/string.hpp"
struct SLdrTweakPlayerControls {
SLdrTweakPlayerControls();
~SLdrTweakPlayerControls();
rstl::string instanceName;
SLdrTweakPlayerControls_UnknownStruct1 unknown_0x3c34dfed;
SLdrTweakPlayerControls_UnknownStruct2 unknown_0x168a79f1;
};
void LoadTypedefSLdrTweakPlayerControls(SLdrTweakPlayerControls&, CInputStream&);
/* {
SLdrTweakPlayerControls sldrThis;
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 = TODO
break;
case 0x3c34dfed:
LoadTypedefSLdrTweakPlayerControls_UnknownStruct1(sldrThis.unknown_0x3c34dfed, input);
break;
case 0x168a79f1:
LoadTypedefSLdrTweakPlayerControls_UnknownStruct2(sldrThis.unknown_0x168a79f1, input);
break;
default:
input.ReadBytes(nullptr, propertySize);
break;
}
}
} */
#endif // _SLDRTWEAKPLAYERCONTROLS

View File

@ -0,0 +1,98 @@
#ifndef _SLDRTWEAKPLAYERGUN
#define _SLDRTWEAKPLAYERGUN
#include "Kyoto/Streams/CInputStream.hpp"
#include "MetroidPrime/ScriptLoader/SLdrCameraShakerData.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakPlayerGun_Arm_Position.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakPlayerGun_Beam_Misc.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakPlayerGun_Holstering.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakPlayerGun_Misc.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakPlayerGun_Position.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakPlayerGun_RicochetDamage_Factor.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakPlayerGun_UnknownStruct1.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakPlayerGun_Weapons.hpp"
#include "rstl/string.hpp"
struct SLdrTweakPlayerGun {
SLdrTweakPlayerGun();
~SLdrTweakPlayerGun();
rstl::string instanceName;
SLdrTweakPlayerGun_Misc misc;
SLdrTweakPlayerGun_Holstering holstering;
SLdrTweakPlayerGun_Position position;
SLdrTweakPlayerGun_Arm_Position armPosition;
SLdrTweakPlayerGun_Weapons weapons;
SLdrTweakPlayerGun_UnknownStruct1 combos;
SLdrTweakPlayerGun_Beam_Misc beamMisc;
SLdrTweakPlayerGun_RicochetDamage_Factor ricochetDamageFactor;
SLdrCameraShakerData recoil;
SLdrCameraShakerData comboRecoil;
SLdrCameraShakerData projectileRecoil;
SLdrCameraShakerData flameThrower;
SLdrCameraShakerData waveBuster;
SLdrCameraShakerData projectileImpact;
};
void LoadTypedefSLdrTweakPlayerGun(SLdrTweakPlayerGun&, CInputStream&);
/* {
SLdrTweakPlayerGun sldrThis;
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 = TODO
break;
case 0xb82ed424:
LoadTypedefSLdrTweakPlayerGun_Misc(sldrThis.misc, input);
break;
case 0x6b6bdc47:
LoadTypedefSLdrTweakPlayerGun_Holstering(sldrThis.holstering, input);
break;
case 0x87882cb0:
LoadTypedefSLdrTweakPlayerGun_Position(sldrThis.position, input);
break;
case 0x255007ad:
LoadTypedefSLdrTweakPlayerGun_Arm_Position(sldrThis.armPosition, input);
break;
case 0x83d758ab:
LoadTypedefSLdrTweakPlayerGun_Weapons(sldrThis.weapons, input);
break;
case 0x888c8775:
LoadTypedefSLdrTweakPlayerGun_UnknownStruct1(sldrThis.combos, input);
break;
case 0xaaebb73e:
LoadTypedefSLdrTweakPlayerGun_Beam_Misc(sldrThis.beamMisc, input);
break;
case 0x8da058fe:
LoadTypedefSLdrTweakPlayerGun_RicochetDamage_Factor(sldrThis.ricochetDamageFactor, input);
break;
case 0xffdb4bb7:
LoadTypedefSLdrCameraShakerData(sldrThis.recoil, input);
break;
case 0x937a35bd:
LoadTypedefSLdrCameraShakerData(sldrThis.comboRecoil, input);
break;
case 0x26196738:
LoadTypedefSLdrCameraShakerData(sldrThis.projectileRecoil, input);
break;
case 0xf40808c9:
LoadTypedefSLdrCameraShakerData(sldrThis.flameThrower, input);
break;
case 0x9a6d7a31:
LoadTypedefSLdrCameraShakerData(sldrThis.waveBuster, input);
break;
case 0x12f14c5a:
LoadTypedefSLdrCameraShakerData(sldrThis.projectileImpact, input);
break;
default:
input.ReadBytes(nullptr, propertySize);
break;
}
}
} */
#endif // _SLDRTWEAKPLAYERGUN

View File

@ -0,0 +1,57 @@
#ifndef _SLDRTWEAKPLAYERRES
#define _SLDRTWEAKPLAYERRES
#include "Kyoto/Streams/CInputStream.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTBallTransitionResources.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTGunResources.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakPlayerRes_AutoMapperIcons.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakPlayerRes_MapScreenIcons.hpp"
#include "rstl/string.hpp"
struct SLdrTweakPlayerRes {
SLdrTweakPlayerRes();
~SLdrTweakPlayerRes();
rstl::string instanceName;
SLdrTweakPlayerRes_AutoMapperIcons autoMapperIcons;
SLdrTweakPlayerRes_MapScreenIcons mapScreenIcons;
SLdrTBallTransitionResources ballTransitionResources;
SLdrTGunResources cinematicResources;
float unknown;
};
void LoadTypedefSLdrTweakPlayerRes(SLdrTweakPlayerRes&, CInputStream&);
/* {
SLdrTweakPlayerRes sldrThis;
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 = TODO
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;
}
}
} */
#endif // _SLDRTWEAKPLAYERRES

View File

@ -0,0 +1,102 @@
#ifndef _SLDRTWEAKSLIDESHOW
#define _SLDRTWEAKSLIDESHOW
#include "Kyoto/Graphics/CColor.hpp"
#include "Kyoto/Streams/CInputStream.hpp"
#include "rstl/string.hpp"
struct SLdrTweakSlideShow {
SLdrTweakSlideShow();
~SLdrTweakSlideShow();
rstl::string instanceName;
rstl::string pakFile;
rstl::string font;
CColor fontColor;
CColor fontOutlineColor;
float unknown_0xd398dac2;
float unknown_0x03757d08;
float translationMultiplier;
float scaleMultiplier;
float slideShowDelay;
CColor helpFrameColor;
float helpTransitionTime;
float slideBlendTime;
float unknown_0x029d2082;
float unknown_0xb187cd9b;
float fadeInTime;
float fadeOutTime;
rstl::string unknown_0xc0544bc1;
};
void LoadTypedefSLdrTweakSlideShow(SLdrTweakSlideShow&, CInputStream&);
/* {
SLdrTweakSlideShow sldrThis;
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 = TODO
break;
case 0x2bd13ab3:
// sldrThis.pakFile = TODO
break;
case 0xfe31fba0:
// sldrThis.font = TODO
break;
case 0x1a96ec67:
// sldrThis.fontColor = TODO
break;
case 0x844ab6b0:
// sldrThis.fontOutlineColor = TODO
break;
case 0xd398dac2:
sldrThis.unknown_0xd398dac2 = input.ReadFloat();
break;
case 0x03757d08:
sldrThis.unknown_0x03757d08 = input.ReadFloat();
break;
case 0x59276e14:
sldrThis.translationMultiplier = input.ReadFloat();
break;
case 0x3ce7a013:
sldrThis.scaleMultiplier = input.ReadFloat();
break;
case 0x278c0893:
sldrThis.slideShowDelay = input.ReadFloat();
break;
case 0xd75d29f8:
// sldrThis.helpFrameColor = TODO
break;
case 0x27515c7b:
sldrThis.helpTransitionTime = input.ReadFloat();
break;
case 0xae47dc81:
sldrThis.slideBlendTime = input.ReadFloat();
break;
case 0x029d2082:
sldrThis.unknown_0x029d2082 = input.ReadFloat();
break;
case 0xb187cd9b:
sldrThis.unknown_0xb187cd9b = input.ReadFloat();
break;
case 0x90aa341f:
sldrThis.fadeInTime = input.ReadFloat();
break;
case 0x7c269ebc:
sldrThis.fadeOutTime = input.ReadFloat();
break;
case 0xc0544bc1:
// sldrThis.unknown_0xc0544bc1 = TODO
break;
default:
input.ReadBytes(nullptr, propertySize);
break;
}
}
} */
#endif // _SLDRTWEAKSLIDESHOW

View File

@ -0,0 +1,505 @@
#ifndef _SLDRTWEAKTARGETING
#define _SLDRTWEAKTARGETING
#include "Kyoto/Graphics/CColor.hpp"
#include "Kyoto/Streams/CInputStream.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTIcon_Configurations.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakTargeting_Charge_Gauge.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakTargeting_LockDagger.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakTargeting_LockFire.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakTargeting_OuterBeamIcon.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakTargeting_Scan.hpp"
#include "MetroidPrime/ScriptLoader/SLdrTweakTargeting_VulnerabilityIndicator.hpp"
#include "rstl/string.hpp"
struct SLdrTweakTargeting {
SLdrTweakTargeting();
~SLdrTweakTargeting();
rstl::string instanceName;
SLdrTweakTargeting_OuterBeamIcon unknown_0x5173932f;
SLdrTIcon_Configurations unknown_0x23ff4be4;
SLdrTIcon_Configurations unknown_0x92e98613;
SLdrTIcon_Configurations unknown_0x64833842;
SLdrTIcon_Configurations unknown_0x8dfd6e3c;
SLdrTweakTargeting_Charge_Gauge chargeGauge;
SLdrTweakTargeting_LockFire lockFire;
SLdrTweakTargeting_LockDagger lockDagger;
SLdrTweakTargeting_Scan scan;
int unknown_0xc3410560;
float unknown_0x3eb13041;
float unknown_0x5e67cab0;
float unknown_0xe0ca98ac;
float lockOnConfirmReticleScale;
float unknown_0x9f8d62c1;
float unknown_0xff5eeeb9;
float unknown_0x0d0b660d;
float seekerTargetReticleScale;
float unknown_0x03efc783;
float unknown_0xdcbd7bf8;
float unknown_0x2acd6b4b;
float unknown_0xb4c6c331;
float unknown_0x27d02089;
float unknown_0xae89310e;
float unknown_0xb27644df;
float unknown_0x21e2d1cc;
float orbitPointOccludedOpacity;
float unknown_0x5c489cb5;
float orbitPointZOffset;
float unknown_0x61a6a38e;
float unknown_0xfbdf31f9;
float unknown_0xf76f7d0b;
float unknown_0x810b3a08;
float unknown_0x73fe1553;
float unknown_0xc8aef6f2;
float unknown_0x69b1e76c;
float unknown_0x8a0dfd23;
float unknown_0x8299e96e;
float unknown_0xa18a3f25;
float unknown_0x23be9bb2;
float unknown_0x8d512b82;
float unknown_0x39f1698d;
float unknown_0xc768c1e9;
float unknown_0x55c47b0e;
float unknown_0xa009aea2;
float unknown_0x38080bbf;
float unknown_0x71017dbe;
float unknown_0x4a996997;
float unknown_0x9f9fa6f3;
float unknown_0x932fea01;
float unknown_0x165f0fa8;
float unknown_0x6bd6b11f;
CColor unknown_0x42420f6e;
float flowerReticleScale;
CColor flowerReticleColor;
float unknown_0xb090e147;
float unknown_0x4c73a43d;
float unknown_0x6543d31b;
float unknown_0x8cd2d1ce;
CColor missileBracketColor;
float unknown_0x45910e5d;
float unknown_0x07b30fa0;
CColor unknown_0x13ce8500;
CColor unknown_0x9829f256;
CColor unknown_0x77a613b9;
CColor unknown_0xdfa81287;
CColor lockOnConfirmReticleColor;
CColor seekerReticleColor;
float unknown_0x618d150a;
float unknown_0x209a2a8c;
float unknown_0xacb3f8f7;
float unknown_0xeda4c771;
float unknown_0xd3427574;
float unknown_0x92554af2;
float unknown_0x1e134e75;
float unknown_0x5f0471f3;
float unknown_0xe90548ac;
float unknown_0xa812772a;
float unknown_0x2d75c7be;
float unknown_0x6c62f838;
float unknown_0xf98e6242;
float unknown_0xb8995dc4;
float unknown_0x5009c614;
float unknown_0x111ef992;
float grappleIconScale;
float grappleIconScaleInactive;
float unknown_0x498d794a;
float unknown_0x089a46cc;
CColor grappleIconColor;
CColor grappleIconColorInactive;
CColor unknown_0x083b1cc8;
float unknown_0x966982b1;
CColor unknown_0xf9799f5f;
float unknown_0x9b980788;
CColor orbitPointModelColor;
CColor crosshairsColor;
float unknown_0x2ff52290;
bool unknown_0x8a548cc9;
CColor unknown_0x65d449e1;
float unknown_0x42c7fbe4;
float unknown_0x13820c03;
float unknown_0x52953385;
CColor xRaySeekerReticleColor;
float unknown_0xdd8cf478;
float unknown_0xcbac6d52;
float unknown_0x980a75b6;
float unknown_0xcd1e0e91;
float unknown_0xce9cf241;
float unknown_0xb6531e99;
float unknown_0x77e5c6b5;
float unknown_0xfef5668b;
CColor healthColor;
SLdrTweakTargeting_VulnerabilityIndicator powerVulnerabilityIndicator;
SLdrTweakTargeting_VulnerabilityIndicator lightVulnerabilityIndicator;
SLdrTweakTargeting_VulnerabilityIndicator darkVulnerabilityIndicator;
SLdrTweakTargeting_VulnerabilityIndicator annihilatorVulnerabilityIndicator;
};
void LoadTypedefSLdrTweakTargeting(SLdrTweakTargeting&, CInputStream&);
/* {
SLdrTweakTargeting sldrThis;
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 = TODO
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 = TODO
break;
case 0xa63229f1:
sldrThis.flowerReticleScale = input.ReadFloat();
break;
case 0xbda45f1a:
// sldrThis.flowerReticleColor = TODO
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 = TODO
break;
case 0x45910e5d:
sldrThis.unknown_0x45910e5d = input.ReadFloat();
break;
case 0x07b30fa0:
sldrThis.unknown_0x07b30fa0 = input.ReadFloat();
break;
case 0x13ce8500:
// sldrThis.unknown_0x13ce8500 = TODO
break;
case 0x9829f256:
// sldrThis.unknown_0x9829f256 = TODO
break;
case 0x77a613b9:
// sldrThis.unknown_0x77a613b9 = TODO
break;
case 0xdfa81287:
// sldrThis.unknown_0xdfa81287 = TODO
break;
case 0xda752c50:
// sldrThis.lockOnConfirmReticleColor = TODO
break;
case 0x7b544e14:
// sldrThis.seekerReticleColor = TODO
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 = TODO
break;
case 0x3ce853e3:
// sldrThis.grappleIconColorInactive = TODO
break;
case 0x083b1cc8:
// sldrThis.unknown_0x083b1cc8 = TODO
break;
case 0x966982b1:
sldrThis.unknown_0x966982b1 = input.ReadFloat();
break;
case 0xf9799f5f:
// sldrThis.unknown_0xf9799f5f = TODO
break;
case 0x9b980788:
sldrThis.unknown_0x9b980788 = input.ReadFloat();
break;
case 0x3523a47f:
// sldrThis.orbitPointModelColor = TODO
break;
case 0x27358b4d:
// sldrThis.crosshairsColor = TODO
break;
case 0x2ff52290:
sldrThis.unknown_0x2ff52290 = input.ReadFloat();
break;
case 0x8a548cc9:
sldrThis.unknown_0x8a548cc9 = input.ReadBool();
break;
case 0x65d449e1:
// sldrThis.unknown_0x65d449e1 = TODO
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 = TODO
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 = TODO
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;
}
}
} */
#endif // _SLDRTWEAKTARGETING

View File

@ -61,4 +61,11 @@ void SetSScriptForgottenObject_FuncPtrs(SScriptForgottenObject_FuncPtrs*);
void SetLoader_CannonBall(FScriptLoader* loader);
struct STweaks_FuncPtrs {
void (*Loader)(CInputStream&);
void (*CreateGlobals)();
void (*FreeTweaks)();
};
void SetTweaks_FuncPtrs(STweaks_FuncPtrs*);
#endif // _SCRIPTLOADERREL

View File

@ -0,0 +1,45 @@
#ifndef _CTWEAKCONTENTS
#define _CTWEAKCONTENTS
#include "rstl/string.hpp"
#include "MetroidPrime/ScriptLoader/Struct/SLdrTweakAutoMapper.hpp"
#include "MetroidPrime/ScriptLoader/Struct/SLdrTweakBall.hpp"
#include "MetroidPrime/ScriptLoader/Struct/SLdrTweakCameraBob.hpp"
#include "MetroidPrime/ScriptLoader/Struct/SLdrTweakGame.hpp"
#include "MetroidPrime/ScriptLoader/Struct/SLdrTweakGui.hpp"
#include "MetroidPrime/ScriptLoader/Struct/SLdrTweakGuiColors.hpp"
#include "MetroidPrime/ScriptLoader/Struct/SLdrTweakParticle.hpp"
#include "MetroidPrime/ScriptLoader/Struct/SLdrTweakPlayer.hpp"
#include "MetroidPrime/ScriptLoader/Struct/SLdrTweakPlayerControls.hpp"
#include "MetroidPrime/ScriptLoader/Struct/SLdrTweakPlayerGun.hpp"
#include "MetroidPrime/ScriptLoader/Struct/SLdrTweakPlayerRes.hpp"
#include "MetroidPrime/ScriptLoader/Struct/SLdrTweakSlideShow.hpp"
#include "MetroidPrime/ScriptLoader/Struct/SLdrTweakTargeting.hpp"
class CTweakContents {
public:
CTweakContents();
~CTweakContents();
SLdrTweakAutoMapper TweakAutoMapper;
SLdrTweakBall TweakBall;
SLdrTweakCameraBob TweakCameraBob;
SLdrTweakGame TweakGame;
SLdrTweakGui TweakGui;
SLdrTweakGuiColors TweakGuiColors;
SLdrTweakParticle TweakParticle;
SLdrTweakPlayer TweakPlayer;
SLdrTweakPlayer TweakPlayer2;
SLdrTweakPlayerControls TweakPlayerControls;
SLdrTweakPlayerControls TweakPlayerControls2;
SLdrTweakPlayerGun TweakPlayerGun;
SLdrTweakPlayerGun TweakPlayerGunMuli;
SLdrTweakPlayerRes TweakPlayerRes;
SLdrTweakSlideShow TweakSlideShow;
SLdrTweakTargeting TweakTargeting;
};
extern CTweakContents* gpTweakContents;
#endif

View File

@ -16,6 +16,7 @@ FScriptLoader* gLoader_PlayerController;
FScriptLoader* gLoader_WallWalker;
FScriptLoader* gLoader_CannonBall;
STweaks_FuncPtrs* gLoader_Tweaks;
void SetLoader_WallWalker(FScriptLoader* loader) { gLoader_WallWalker = loader; }
CEntity* Load_WallWalker(CStateManager& mgr, CInputStream& input, const CEntityInfo& info) {
@ -135,3 +136,5 @@ void SetLoader_CannonBall(FScriptLoader* loader) { gLoader_CannonBall = loader;
CEntity* LoadCannonBall(CStateManager& mgr, CInputStream& input, const CEntityInfo& info) {
return (*gLoader_CannonBall)(mgr, input, info);
}
void SetTweaks_FuncPtrs(STweaks_FuncPtrs* loaders) { gLoader_Tweaks = loaders; }

View File

@ -0,0 +1,108 @@
#include "MetroidPrime/ScriptLoaderRel.hpp"
#include "REL/REL_Setup.h"
#include "MetroidPrime/Tweaks/CTweakContents.hpp"
#include "MetroidPrime/Tweaks/CTweakGame.hpp"
#include "dolphin/types.h"
STweaks_FuncPtrs REL_loader_Tweaks;
void DecodeAnyTweak(uint instanceId, CInputStream& input) {
switch (instanceId) {
case 0x5457414d:
LoadTypedefSLdrTweakAutoMapper(gpTweakContents->TweakAutoMapper, input);
break;
case 0x5457424c:
LoadTypedefSLdrTweakBall(gpTweakContents->TweakBall, input);
break;
case 0x54574342:
LoadTypedefSLdrTweakCameraBob(gpTweakContents->TweakCameraBob, input);
break;
case 0x5457474d:
LoadTypedefSLdrTweakGame(gpTweakContents->TweakGame, input);
break;
case 0x54574755:
LoadTypedefSLdrTweakGui(gpTweakContents->TweakGui, input);
break;
case 0x54574743:
LoadTypedefSLdrTweakGuiColors(gpTweakContents->TweakGuiColors, input);
break;
case 0x54575041:
LoadTypedefSLdrTweakParticle(gpTweakContents->TweakParticle, input);
break;
case 0x5457504c:
LoadTypedefSLdrTweakPlayer(gpTweakContents->TweakPlayer, input);
break;
case 0x54575032:
LoadTypedefSLdrTweakPlayer(gpTweakContents->TweakPlayer2, input);
break;
case 0x54575043:
LoadTypedefSLdrTweakPlayerControls(gpTweakContents->TweakPlayerControls, input);
break;
case 0x54574332:
LoadTypedefSLdrTweakPlayerControls(gpTweakContents->TweakPlayerControls2, input);
break;
case 0x54575047:
LoadTypedefSLdrTweakPlayerGun(gpTweakContents->TweakPlayerGun, input);
break;
case 0x5457504d:
LoadTypedefSLdrTweakPlayerGun(gpTweakContents->TweakPlayerGunMuli, input);
break;
case 0x54575052:
LoadTypedefSLdrTweakPlayerRes(gpTweakContents->TweakPlayerRes, input);
break;
case 0x54575353:
LoadTypedefSLdrTweakSlideShow(gpTweakContents->TweakSlideShow, input);
break;
case 0x54575447:
LoadTypedefSLdrTweakTargeting(gpTweakContents->TweakTargeting, input);
break;
default:
break;
}
}
void REL_LoadTweaks(CInputStream& input) {
if ((uint)input.ReadInt32() == 0x4e54574b && input.ReadInt8() == 1) {
gpTweakContents = new CTweakContents();
for (int instanceCount = input.ReadInt32(); instanceCount != 0; --instanceCount) {
uint instanceType = (uint)input.ReadInt32();
u16 instanceSize = input.ReadUint16();
input.ReadInt32(); // skip instance id
instanceSize -= 6;
for (int connectionCount = input.ReadInt32(); connectionCount != 0; connectionCount--) {
instanceSize -= 0xc;
input.ReadInt32();
input.ReadInt32();
input.ReadInt32();
}
// Record current position of input
DecodeAnyTweak(instanceType, input);
// Read instanceSize - (current position - old position)
}
}
}
void REL_CreateTweakGlobals() {}
void REL_FreeTweaks() {
delete gpTweakGame;
gpTweakGame = nullptr;
}
void TweaksInit() {
REL_loader_Tweaks.Loader = REL_LoadTweaks;
REL_loader_Tweaks.CreateGlobals = REL_CreateTweakGlobals;
REL_loader_Tweaks.FreeTweaks = REL_FreeTweaks;
SetTweaks_FuncPtrs(&REL_loader_Tweaks);
}
extern "C" void RELMain() { TweaksInit(); }
extern "C" void RELExit() { SetTweaks_FuncPtrs(nullptr); }