WopsS / RED4ext.SDK

A library to create mods for REDengine 4 (Cyberpunk 2077), independently of RED4ext.
MIT License
100 stars 33 forks source link

Decoded Rig.hpp properties #114

Closed Mozz3d closed 4 months ago

Mozz3d commented 6 months ago

Replaces the unk40 placeholder and adds boneParentIndexes and boneTransforms properties at offsets 0x40 and 0x48 respectively. Which have been confirmed through testing.

poirierlouis commented 6 months ago

I'm wondering, should it be defined here, without redscript declaration... Or better be in Codeware, as it already provides such kind of native extensions? FYI @psiberx

psiberx commented 6 months ago

It should be in SDK but not in Generated.

Mozz3d commented 6 months ago

Thanks for the PR :)

This file will be overwritten when every time we dump the types. You can move it out of the "Generated" directory and it should be fine, like we did for others (https://github.com/WopsS/RED4ext.SDK/tree/master/include/RED4ext/Scripting/Natives).

I moved it to Natives, I hope that's alright!

psiberx commented 6 months ago

Look at how other files are handled.

  1. Remove generated comments.
  2. Add generated stub that includes your manual override. After the edit you should still include generated header in your plugin, not the new one.

Also you could add a comment for new fields that the size is the same as boneNames.size.

Mozz3d commented 6 months ago

Is this better? I've never really used github for anything besides viewing code so you'll have to excuse me if it's a little messy. Trying my best to figure it out.

psiberx commented 6 months ago

Scripting/Natives/Generated/anim/Rig.hpp should include your overridden header. Look at Scripting/Natives/Generated/ink/Layer.hpp as an example. You can generate it by running GameReflection::Dump() again, but for a single file it's easier to create it manually.

Mozz3d commented 4 months ago

A little late, but here are the requested changes along with some further decoded properties.

WopsS commented 4 months ago

You also have to update the Reflection-inl file to exclude it from being generated in the future.

See https://github.com/WopsS/RED4ext.SDK/pull/121/files#diff-859ef96671f9a21f801808df16274cd12c0711860ddf5e6787fa521a088fae06L310.

Mozz3d commented 4 months ago

Is that okay? Also thank you for helping me help this project :3

psiberx commented 4 months ago

It should be placed at include/RED4ext/Scripting/Natives/animRig.hpp to exclude from being generated and keep existing includes valid, no manual override in Reflection-inl.

Mozz3d commented 4 months ago

Let me know if I need to adjust anything else.