From 4226451adf37a0c3b6e95c1f95bdc74a4e9e1de6 Mon Sep 17 00:00:00 2001 From: praydog Date: Sun, 10 Mar 2024 01:26:33 -0800 Subject: [PATCH 01/13] ida_namer improvements, function rebasing --- reversing/scripts/ida_namer/ida_namer.py | 55 ++++++++++++++++-------- 1 file changed, 36 insertions(+), 19 deletions(-) diff --git a/reversing/scripts/ida_namer/ida_namer.py b/reversing/scripts/ida_namer/ida_namer.py index d7ed5586e..cb4e18ed3 100644 --- a/reversing/scripts/ida_namer/ida_namer.py +++ b/reversing/scripts/ida_namer/ida_namer.py @@ -5,7 +5,7 @@ import fire import os -def main(il2cpp_path="", out_path=""): +def main(il2cpp_path=None, out_path=None, imagebase = None, new_imagebase = None): if il2cpp_path is None: print("--il2cpp_path not specified") return @@ -22,7 +22,7 @@ def main(il2cpp_path="", out_path=""): il2cpp_dump = json.load(f) out_str = "" - bad_chars = ['<', '>', '`', ".", ","] + bad_chars = ['<', '>', '`', ".", ",", "[", "]", "|", ' ', '='] num_methods_found = 0 num_reflection_methods_found = 0 @@ -43,32 +43,49 @@ def main(il2cpp_path="", out_path=""): for bad_char in bad_chars: method_name = method_name.replace(bad_char, "_") - address = method_entry["function"] # is a string not an int + #print(hex(int("0x" + method_entry["function"], 16))) + address = str(hex(int("0x" + method_entry["function"], 16))) # is a string not an int if address == "0" or address in seen_functions: continue seen_functions.add(address) - out_str = out_str + "idc.MakeName(0x%s, '%s__%s')\n" % (address, class_name, method_name) + if imagebase is not None and new_imagebase is not None: + address_int = int("0x" + method_entry["function"], 16) + address_int = address_int - imagebase + address_int = address_int + new_imagebase + address = str(hex(address_int)) + + out_str = out_str + "idc.MakeName(%s, '%s__%s')\n" % (address, class_name, method_name) num_methods_found = num_methods_found + 1 if "reflection_methods" in entry: - for method_name, method_entry in entry["reflection_methods"].items(): - if method_entry is None: - continue - - for bad_char in bad_chars: - method_name = method_name.replace(bad_char, "_") - - if address == "0" or address in seen_functions: - continue - - seen_functions.add(address) - - address = method_entry["function"] # is a string not an int - out_str = out_str + "idc.MakeName(0x%s, 'reflection_methods_%s')\n" % (address, method_name) - num_reflection_methods_found = num_reflection_methods_found + 1 + try: + for method_name, method_entry in entry["reflection_methods"].items(): + if method_entry is None: + continue + + for bad_char in bad_chars: + method_name = method_name.replace(bad_char, "_") + + address = str(hex(int("0x" + method_entry["function"], 16))) # is a string not an int + + if address == "0" or address in seen_functions: + continue + + seen_functions.add(address) + + if imagebase is not None and new_imagebase is not None: + address_int = int("0x" + method_entry["function"], 16) + address_int = address_int - imagebase + address_int = address_int + new_imagebase + address = str(hex(address_int)) + + out_str = out_str + "idc.MakeName(%s, 'reflection_methods_%s')\n" % (address, method_name) + num_reflection_methods_found = num_reflection_methods_found + 1 + except: + continue except (KeyError, TypeError): print("Error processing class %s" % class_name) continue From e1a13a637728ef78058ae223e18a78340111771e Mon Sep 17 00:00:00 2001 From: praydog Date: Mon, 11 Mar 2024 22:18:50 -0700 Subject: [PATCH 02/13] Add Dragon's Dogma 2 build --- .github/workflows/build-pr.yml | 2 +- .github/workflows/dev-release.yml | 2 +- CMakeLists.txt | 918 ++++++ cmake.toml | 10 + shared/sdk/ReClass.hpp | 2 + shared/sdk/ReClass_Internal_DD2.hpp | 4063 +++++++++++++++++++++++++++ shared/sdk/Renderer.hpp | 2 +- shared/sdk/TDBVer.hpp | 7 +- src/REFramework.hpp | 2 + src/mods/IntegrityCheckBypass.cpp | 4 +- 10 files changed, 5007 insertions(+), 5 deletions(-) create mode 100644 shared/sdk/ReClass_Internal_DD2.hpp diff --git a/.github/workflows/build-pr.yml b/.github/workflows/build-pr.yml index 8d9310b73..0161853ab 100644 --- a/.github/workflows/build-pr.yml +++ b/.github/workflows/build-pr.yml @@ -7,7 +7,7 @@ jobs: runs-on: windows-latest strategy: matrix: - target: [RE2, RE2_TDB66, RE3, RE3_TDB67, RE4, RE7, RE7_TDB49, RE8, DMC5, MHRISE, SF6] + target: [RE2, RE2_TDB66, RE3, RE3_TDB67, RE4, RE7, RE7_TDB49, RE8, DMC5, MHRISE, SF6, DD2] steps: - name: Checkout uses: actions/checkout@v3 diff --git a/.github/workflows/dev-release.yml b/.github/workflows/dev-release.yml index c2235fd21..fe3229d4a 100644 --- a/.github/workflows/dev-release.yml +++ b/.github/workflows/dev-release.yml @@ -7,7 +7,7 @@ jobs: runs-on: windows-latest strategy: matrix: - target: [RE2, RE2_TDB66, RE3, RE3_TDB67, RE4, RE7, RE7_TDB49, RE8, DMC5, MHRISE, SF6] + target: [RE2, RE2_TDB66, RE3, RE3_TDB67, RE4, RE7, RE7_TDB49, RE8, DMC5, MHRISE, SF6, DD2] steps: - name: Checkout uses: actions/checkout@v3 diff --git a/CMakeLists.txt b/CMakeLists.txt index 94719830a..eb01f3e4b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,6 +40,7 @@ option(REF_BUILD_RE8_SDK OFF) option(REF_BUILD_DMC5_SDK OFF) option(REF_BUILD_MHRISE_SDK OFF) option(REF_BUILD_SF6_SDK OFF) +option(REF_BUILD_DD2_SDK OFF) option(REF_BUILD_FRAMEWORK "Enable building the full REFramework" ON) option(REF_BUILD_DEPENDENCIES "Enable building dependencies" ON) @@ -10601,6 +10602,923 @@ if(REF_BUILD_FRAMEWORK AND CMAKE_SIZEOF_VOID_P EQUAL 8) # build-framework unset(CMKR_SOURCES) endif() +# Target DD2SDK +if(REF_BUILD_DD2_SDK OR REF_BUILD_FRAMEWORK) # build-dd2-sdk + set(CMKR_TARGET DD2SDK) + set(DD2SDK_SOURCES "") + + list(APPEND DD2SDK_SOURCES + "shared/sdk/Application.cpp" + "shared/sdk/ManagedObject.cpp" + "shared/sdk/Memory.cpp" + "shared/sdk/MotionFsm2Layer.cpp" + "shared/sdk/MurmurHash.cpp" + "shared/sdk/REArray.cpp" + "shared/sdk/REContext.cpp" + "shared/sdk/REGlobals.cpp" + "shared/sdk/REManagedObject.cpp" + "shared/sdk/RETransform.cpp" + "shared/sdk/REType.cpp" + "shared/sdk/RETypeDB.cpp" + "shared/sdk/RETypeDefinition.cpp" + "shared/sdk/RETypes.cpp" + "shared/sdk/REVTableHook.cpp" + "shared/sdk/Renderer.cpp" + "shared/sdk/ResourceManager.cpp" + "shared/sdk/SDK.cpp" + "shared/sdk/SF6Utility.cpp" + "shared/sdk/SceneManager.cpp" + "shared/sdk/SystemArray.cpp" + "shared/sdk/helpers/NativeObject.cpp" + "shared/sdk/renderer/RenderResource.cpp" + "shared/sdk/Application.hpp" + "shared/sdk/Enums_Internal.hpp" + "shared/sdk/ManagedObject.hpp" + "shared/sdk/Math.hpp" + "shared/sdk/Memory.hpp" + "shared/sdk/MotionFsm2Layer.hpp" + "shared/sdk/MurmurHash.hpp" + "shared/sdk/REArray.hpp" + "shared/sdk/REComponent.hpp" + "shared/sdk/REContext.hpp" + "shared/sdk/REGlobals.hpp" + "shared/sdk/REManagedObject.hpp" + "shared/sdk/REMath.hpp" + "shared/sdk/RENativeArray.hpp" + "shared/sdk/REString.hpp" + "shared/sdk/RETransform.hpp" + "shared/sdk/REType.hpp" + "shared/sdk/RETypeCLR.hpp" + "shared/sdk/RETypeDB.hpp" + "shared/sdk/RETypeDefinition.hpp" + "shared/sdk/RETypes.hpp" + "shared/sdk/REVTableHook.hpp" + "shared/sdk/REVariableDescriptor.hpp" + "shared/sdk/ReClass.hpp" + "shared/sdk/ReClass_Internal.hpp" + "shared/sdk/ReClass_Internal_DMC5.hpp" + "shared/sdk/ReClass_Internal_RE2_TDB70.hpp" + "shared/sdk/ReClass_Internal_RE3.hpp" + "shared/sdk/ReClass_Internal_RE3_TDB70.hpp" + "shared/sdk/ReClass_Internal_RE4.hpp" + "shared/sdk/ReClass_Internal_RE7.hpp" + "shared/sdk/ReClass_Internal_RE8.hpp" + "shared/sdk/ReClass_Internal_SF6.hpp" + "shared/sdk/Renderer.hpp" + "shared/sdk/ResourceManager.hpp" + "shared/sdk/RopewaySweetLightManager.hpp" + "shared/sdk/SDK.hpp" + "shared/sdk/SF6Utility.hpp" + "shared/sdk/SceneManager.hpp" + "shared/sdk/SystemArray.hpp" + "shared/sdk/TDBVer.hpp" + "shared/sdk/helpers/NativeObject.hpp" + "shared/sdk/intrusive_ptr.hpp" + "shared/sdk/regenny/mhrise/via/Capsule.hpp" + "shared/sdk/regenny/mhrise/via/OBB.hpp" + "shared/sdk/regenny/mhrise/via/Sphere.hpp" + "shared/sdk/regenny/mhrise/via/motion/AxisDirection.hpp" + "shared/sdk/regenny/mhrise/via/motion/Chain.hpp" + "shared/sdk/regenny/mhrise/via/motion/ChainCollisionArray.hpp" + "shared/sdk/regenny/mhrise/via/motion/ChainCollisionData.hpp" + "shared/sdk/regenny/mhrise/via/motion/ChainCollisions.hpp" + "shared/sdk/regenny/mhrise/via/motion/SecondaryAnimation.hpp" + "shared/sdk/regenny/mhrise/via/vec3.hpp" + "shared/sdk/regenny/mhrise/via/vec4.hpp" + "shared/sdk/regenny/mhrise_tdb71/tdb71/AttributeDef.hpp" + "shared/sdk/regenny/mhrise_tdb71/tdb71/Field.hpp" + "shared/sdk/regenny/mhrise_tdb71/tdb71/FieldImpl.hpp" + "shared/sdk/regenny/mhrise_tdb71/tdb71/MethodDefinition.hpp" + "shared/sdk/regenny/mhrise_tdb71/tdb71/MethodImpl.hpp" + "shared/sdk/regenny/mhrise_tdb71/tdb71/ParamList.hpp" + "shared/sdk/regenny/mhrise_tdb71/tdb71/ParameterDef.hpp" + "shared/sdk/regenny/mhrise_tdb71/tdb71/Property.hpp" + "shared/sdk/regenny/mhrise_tdb71/tdb71/PropertyImpl.hpp" + "shared/sdk/regenny/mhrise_tdb71/tdb71/TDB.hpp" + "shared/sdk/regenny/mhrise_tdb71/tdb71/TypeDefinition.hpp" + "shared/sdk/regenny/mhrise_tdb71/tdb71/TypeImpl.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/BasisPlane.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/CameraType.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/Capsule.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/Color.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/Component.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/DeviceOrientation.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/DisplayType.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/IntArray.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/ManagedObjectArray.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/MobileBarState.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/Point.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/RenderType.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/Scene.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/SceneView.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/Size.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/Sphere.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/UInt8Array.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/UIntArray.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/UIntArrayArray.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/Window.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/behaviortree/BehaviorTree.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/behaviortree/BehaviorTreeCoreHandleArray.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/behaviortree/Condition.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/behaviortree/Core.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/behaviortree/CoreHandle.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/behaviortree/NodeArray.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/behaviortree/NodeArray2.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/behaviortree/NodeStatus.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/behaviortree/Selector.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/behaviortree/SelectorFSM.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/behaviortree/TreeNode.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/behaviortree/TreeNodeData.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/behaviortree/TreeObject.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/behaviortree/TreeObjectData.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/clr/ManagedObject.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/motion/AxisDirection.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/motion/Chain.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/motion/ChainCollisionArray.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/motion/ChainCollisionData.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/motion/ChainCollisionTop.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/motion/ChainCollisions.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/motion/MotionFsm2.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/motion/MotionFsm2Layer.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/motion/SecondaryAnimation.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/typeinfo/TypeInfo.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/vec3.hpp" + "shared/sdk/regenny/mhrise_tdb71/via/vec4.hpp" + "shared/sdk/regenny/re2_tdb70/BullShit.hpp" + "shared/sdk/regenny/re2_tdb70/DeserializeSequence.hpp" + "shared/sdk/regenny/re2_tdb70/ManagedVtable.hpp" + "shared/sdk/regenny/re2_tdb70/System/String.hpp" + "shared/sdk/regenny/re2_tdb70/TypeDefinition.hpp" + "shared/sdk/regenny/re2_tdb70/game/IkArmFit.hpp" + "shared/sdk/regenny/re2_tdb70/game/InputSystem.hpp" + "shared/sdk/regenny/re2_tdb70/tdb67/AttributeDef.hpp" + "shared/sdk/regenny/re2_tdb70/tdb67/Field.hpp" + "shared/sdk/regenny/re2_tdb70/tdb67/FieldImpl.hpp" + "shared/sdk/regenny/re2_tdb70/tdb67/MethodDefinition.hpp" + "shared/sdk/regenny/re2_tdb70/tdb67/MethodImpl.hpp" + "shared/sdk/regenny/re2_tdb70/tdb67/ParamList.hpp" + "shared/sdk/regenny/re2_tdb70/tdb67/ParameterDef.hpp" + "shared/sdk/regenny/re2_tdb70/tdb67/Property.hpp" + "shared/sdk/regenny/re2_tdb70/tdb67/PropertyImpl.hpp" + "shared/sdk/regenny/re2_tdb70/tdb67/TDB.hpp" + "shared/sdk/regenny/re2_tdb70/tdb67/TypeDefinition.hpp" + "shared/sdk/regenny/re2_tdb70/tdb67/TypeImpl.hpp" + "shared/sdk/regenny/re2_tdb70/via/BasisPlane.hpp" + "shared/sdk/regenny/re2_tdb70/via/CameraType.hpp" + "shared/sdk/regenny/re2_tdb70/via/Capsule.hpp" + "shared/sdk/regenny/re2_tdb70/via/Color.hpp" + "shared/sdk/regenny/re2_tdb70/via/Component.hpp" + "shared/sdk/regenny/re2_tdb70/via/DeviceOrientation.hpp" + "shared/sdk/regenny/re2_tdb70/via/DisplayType.hpp" + "shared/sdk/regenny/re2_tdb70/via/Folder.hpp" + "shared/sdk/regenny/re2_tdb70/via/GameObject.hpp" + "shared/sdk/regenny/re2_tdb70/via/JobSet.hpp" + "shared/sdk/regenny/re2_tdb70/via/Joint.hpp" + "shared/sdk/regenny/re2_tdb70/via/JointArray.hpp" + "shared/sdk/regenny/re2_tdb70/via/JointData.hpp" + "shared/sdk/regenny/re2_tdb70/via/JointDesc.hpp" + "shared/sdk/regenny/re2_tdb70/via/JointMap.hpp" + "shared/sdk/regenny/re2_tdb70/via/ManagedObjectArray.hpp" + "shared/sdk/regenny/re2_tdb70/via/MobileBarState.hpp" + "shared/sdk/regenny/re2_tdb70/via/Motion.hpp" + "shared/sdk/regenny/re2_tdb70/via/OBB.hpp" + "shared/sdk/regenny/re2_tdb70/via/Object.hpp" + "shared/sdk/regenny/re2_tdb70/via/Plane.hpp" + "shared/sdk/regenny/re2_tdb70/via/Point.hpp" + "shared/sdk/regenny/re2_tdb70/via/Range.hpp" + "shared/sdk/regenny/re2_tdb70/via/RenderType.hpp" + "shared/sdk/regenny/re2_tdb70/via/Scene.hpp" + "shared/sdk/regenny/re2_tdb70/via/SceneArray.hpp" + "shared/sdk/regenny/re2_tdb70/via/SceneManager.hpp" + "shared/sdk/regenny/re2_tdb70/via/SceneView.hpp" + "shared/sdk/regenny/re2_tdb70/via/Size.hpp" + "shared/sdk/regenny/re2_tdb70/via/Sphere.hpp" + "shared/sdk/regenny/re2_tdb70/via/Transform.hpp" + "shared/sdk/regenny/re2_tdb70/via/Window.hpp" + "shared/sdk/regenny/re2_tdb70/via/array.hpp" + "shared/sdk/regenny/re2_tdb70/via/behaviortree/BehaviorTree.hpp" + "shared/sdk/regenny/re2_tdb70/via/behaviortree/BehaviorTreeCoreHandleArray.hpp" + "shared/sdk/regenny/re2_tdb70/via/behaviortree/Condition.hpp" + "shared/sdk/regenny/re2_tdb70/via/behaviortree/Core.hpp" + "shared/sdk/regenny/re2_tdb70/via/behaviortree/CoreHandle.hpp" + "shared/sdk/regenny/re2_tdb70/via/behaviortree/NodeArray.hpp" + "shared/sdk/regenny/re2_tdb70/via/behaviortree/NodeStatus.hpp" + "shared/sdk/regenny/re2_tdb70/via/behaviortree/Selector.hpp" + "shared/sdk/regenny/re2_tdb70/via/behaviortree/TreeNode.hpp" + "shared/sdk/regenny/re2_tdb70/via/behaviortree/TreeNodeData.hpp" + "shared/sdk/regenny/re2_tdb70/via/behaviortree/TreeObject.hpp" + "shared/sdk/regenny/re2_tdb70/via/behaviortree/TreeObjectData.hpp" + "shared/sdk/regenny/re2_tdb70/via/clr/ManagedObject.hpp" + "shared/sdk/regenny/re2_tdb70/via/fixed_array_jobs.hpp" + "shared/sdk/regenny/re2_tdb70/via/gui/Control.hpp" + "shared/sdk/regenny/re2_tdb70/via/gui/GUI.hpp" + "shared/sdk/regenny/re2_tdb70/via/gui/GUIManager.hpp" + "shared/sdk/regenny/re2_tdb70/via/gui/GUIMeshRenderer.hpp" + "shared/sdk/regenny/re2_tdb70/via/gui/PlayObject.hpp" + "shared/sdk/regenny/re2_tdb70/via/gui/PrimitiveContext.hpp" + "shared/sdk/regenny/re2_tdb70/via/gui/TransformObject.hpp" + "shared/sdk/regenny/re2_tdb70/via/gui/View.hpp" + "shared/sdk/regenny/re2_tdb70/via/gui/Window.hpp" + "shared/sdk/regenny/re2_tdb70/via/mat4.hpp" + "shared/sdk/regenny/re2_tdb70/via/motion/AxisDirection.hpp" + "shared/sdk/regenny/re2_tdb70/via/motion/Chain.hpp" + "shared/sdk/regenny/re2_tdb70/via/motion/ChainCollisionArray.hpp" + "shared/sdk/regenny/re2_tdb70/via/motion/ChainCollisionData.hpp" + "shared/sdk/regenny/re2_tdb70/via/motion/ChainCollisionTop.hpp" + "shared/sdk/regenny/re2_tdb70/via/motion/ChainCollisions.hpp" + "shared/sdk/regenny/re2_tdb70/via/motion/MotionFsm2.hpp" + "shared/sdk/regenny/re2_tdb70/via/motion/MotionFsm2Layer.hpp" + "shared/sdk/regenny/re2_tdb70/via/motion/SecondaryAnimation.hpp" + "shared/sdk/regenny/re2_tdb70/via/typeinfo/TypeInfo.hpp" + "shared/sdk/regenny/re2_tdb70/via/vec3.hpp" + "shared/sdk/regenny/re2_tdb70/via/vec4.hpp" + "shared/sdk/regenny/re3/DeserializeSequence.hpp" + "shared/sdk/regenny/re3/ManagedVtable.hpp" + "shared/sdk/regenny/re3/System/String.hpp" + "shared/sdk/regenny/re3/TypeDefinition.hpp" + "shared/sdk/regenny/re3/game/IkArmFit.hpp" + "shared/sdk/regenny/re3/game/InputSystem.hpp" + "shared/sdk/regenny/re3/tdb67/MethodDefinition.hpp" + "shared/sdk/regenny/re3/tdb67/TDB.hpp" + "shared/sdk/regenny/re3/via/BasisPlane.hpp" + "shared/sdk/regenny/re3/via/CameraType.hpp" + "shared/sdk/regenny/re3/via/Capsule.hpp" + "shared/sdk/regenny/re3/via/Color.hpp" + "shared/sdk/regenny/re3/via/Component.hpp" + "shared/sdk/regenny/re3/via/DeviceOrientation.hpp" + "shared/sdk/regenny/re3/via/DisplayType.hpp" + "shared/sdk/regenny/re3/via/Folder.hpp" + "shared/sdk/regenny/re3/via/GameObject.hpp" + "shared/sdk/regenny/re3/via/Joint.hpp" + "shared/sdk/regenny/re3/via/JointArray.hpp" + "shared/sdk/regenny/re3/via/JointData.hpp" + "shared/sdk/regenny/re3/via/JointDesc.hpp" + "shared/sdk/regenny/re3/via/JointMap.hpp" + "shared/sdk/regenny/re3/via/MobileBarState.hpp" + "shared/sdk/regenny/re3/via/Motion.hpp" + "shared/sdk/regenny/re3/via/OBB.hpp" + "shared/sdk/regenny/re3/via/Point.hpp" + "shared/sdk/regenny/re3/via/Range.hpp" + "shared/sdk/regenny/re3/via/RenderType.hpp" + "shared/sdk/regenny/re3/via/Scene.hpp" + "shared/sdk/regenny/re3/via/SceneArray.hpp" + "shared/sdk/regenny/re3/via/SceneManager.hpp" + "shared/sdk/regenny/re3/via/SceneView.hpp" + "shared/sdk/regenny/re3/via/Size.hpp" + "shared/sdk/regenny/re3/via/Sphere.hpp" + "shared/sdk/regenny/re3/via/Transform.hpp" + "shared/sdk/regenny/re3/via/Window.hpp" + "shared/sdk/regenny/re3/via/array.hpp" + "shared/sdk/regenny/re3/via/behaviortree/BehaviorTree.hpp" + "shared/sdk/regenny/re3/via/behaviortree/BehaviorTreeCoreHandleArray.hpp" + "shared/sdk/regenny/re3/via/behaviortree/BehaviorTreeData.hpp" + "shared/sdk/regenny/re3/via/behaviortree/Condition.hpp" + "shared/sdk/regenny/re3/via/behaviortree/Core.hpp" + "shared/sdk/regenny/re3/via/behaviortree/CoreHandle.hpp" + "shared/sdk/regenny/re3/via/behaviortree/IntArray.hpp" + "shared/sdk/regenny/re3/via/behaviortree/ManagedObjectArray.hpp" + "shared/sdk/regenny/re3/via/behaviortree/NodeArray.hpp" + "shared/sdk/regenny/re3/via/behaviortree/NodeArray2.hpp" + "shared/sdk/regenny/re3/via/behaviortree/NodeStatus.hpp" + "shared/sdk/regenny/re3/via/behaviortree/Selector.hpp" + "shared/sdk/regenny/re3/via/behaviortree/SelectorFSM.hpp" + "shared/sdk/regenny/re3/via/behaviortree/TreeNode.hpp" + "shared/sdk/regenny/re3/via/behaviortree/TreeNodeData.hpp" + "shared/sdk/regenny/re3/via/behaviortree/TreeObject.hpp" + "shared/sdk/regenny/re3/via/behaviortree/TreeObjectData.hpp" + "shared/sdk/regenny/re3/via/behaviortree/UInt8Array.hpp" + "shared/sdk/regenny/re3/via/behaviortree/UIntArray.hpp" + "shared/sdk/regenny/re3/via/clr/ManagedObject.hpp" + "shared/sdk/regenny/re3/via/mat4.hpp" + "shared/sdk/regenny/re3/via/motion/AxisDirection.hpp" + "shared/sdk/regenny/re3/via/motion/Chain.hpp" + "shared/sdk/regenny/re3/via/motion/ChainCollisionArray.hpp" + "shared/sdk/regenny/re3/via/motion/ChainCollisionData.hpp" + "shared/sdk/regenny/re3/via/motion/ChainCollisions.hpp" + "shared/sdk/regenny/re3/via/motion/Data.hpp" + "shared/sdk/regenny/re3/via/motion/MotionFsm2.hpp" + "shared/sdk/regenny/re3/via/motion/MotionFsm2Internal.hpp" + "shared/sdk/regenny/re3/via/motion/MotionFsm2Layer.hpp" + "shared/sdk/regenny/re3/via/motion/MotionFsm2RawData.hpp" + "shared/sdk/regenny/re3/via/motion/MotionFsm2Resource.hpp" + "shared/sdk/regenny/re3/via/motion/SecondaryAnimation.hpp" + "shared/sdk/regenny/re3/via/motion/TransitionData.hpp" + "shared/sdk/regenny/re3/via/motion/TransitionMap.hpp" + "shared/sdk/regenny/re3/via/typeinfo/TypeInfo.hpp" + "shared/sdk/regenny/re3/via/vec3.hpp" + "shared/sdk/regenny/re3/via/vec4.hpp" + "shared/sdk/regenny/re4/BullShit.hpp" + "shared/sdk/regenny/re4/DeserializeSequence.hpp" + "shared/sdk/regenny/re4/ManagedVtable.hpp" + "shared/sdk/regenny/re4/RTInternal.hpp" + "shared/sdk/regenny/re4/RayTrace.hpp" + "shared/sdk/regenny/re4/RenderEntity.hpp" + "shared/sdk/regenny/re4/System/String.hpp" + "shared/sdk/regenny/re4/TypeDefinition.hpp" + "shared/sdk/regenny/re4/game/IkArmFit.hpp" + "shared/sdk/regenny/re4/game/InputSystem.hpp" + "shared/sdk/regenny/re4/tdb71/AttributeDef.hpp" + "shared/sdk/regenny/re4/tdb71/Field.hpp" + "shared/sdk/regenny/re4/tdb71/FieldImpl.hpp" + "shared/sdk/regenny/re4/tdb71/MethodDefinition.hpp" + "shared/sdk/regenny/re4/tdb71/MethodImpl.hpp" + "shared/sdk/regenny/re4/tdb71/ParamList.hpp" + "shared/sdk/regenny/re4/tdb71/ParameterDef.hpp" + "shared/sdk/regenny/re4/tdb71/Property.hpp" + "shared/sdk/regenny/re4/tdb71/PropertyImpl.hpp" + "shared/sdk/regenny/re4/tdb71/TDB.hpp" + "shared/sdk/regenny/re4/tdb71/TypeDefinition.hpp" + "shared/sdk/regenny/re4/tdb71/TypeImpl.hpp" + "shared/sdk/regenny/re4/via/BasisPlane.hpp" + "shared/sdk/regenny/re4/via/CameraType.hpp" + "shared/sdk/regenny/re4/via/Capsule.hpp" + "shared/sdk/regenny/re4/via/Color.hpp" + "shared/sdk/regenny/re4/via/Component.hpp" + "shared/sdk/regenny/re4/via/DeviceOrientation.hpp" + "shared/sdk/regenny/re4/via/DisplayType.hpp" + "shared/sdk/regenny/re4/via/Folder.hpp" + "shared/sdk/regenny/re4/via/GameObject.hpp" + "shared/sdk/regenny/re4/via/IntArray.hpp" + "shared/sdk/regenny/re4/via/JobSet.hpp" + "shared/sdk/regenny/re4/via/Joint.hpp" + "shared/sdk/regenny/re4/via/JointArray.hpp" + "shared/sdk/regenny/re4/via/JointData.hpp" + "shared/sdk/regenny/re4/via/JointDesc.hpp" + "shared/sdk/regenny/re4/via/JointMap.hpp" + "shared/sdk/regenny/re4/via/ManagedObjectArray.hpp" + "shared/sdk/regenny/re4/via/MobileBarState.hpp" + "shared/sdk/regenny/re4/via/Motion.hpp" + "shared/sdk/regenny/re4/via/Object.hpp" + "shared/sdk/regenny/re4/via/Point.hpp" + "shared/sdk/regenny/re4/via/Range.hpp" + "shared/sdk/regenny/re4/via/RenderType.hpp" + "shared/sdk/regenny/re4/via/Scene.hpp" + "shared/sdk/regenny/re4/via/SceneArray.hpp" + "shared/sdk/regenny/re4/via/SceneManager.hpp" + "shared/sdk/regenny/re4/via/SceneView.hpp" + "shared/sdk/regenny/re4/via/Size.hpp" + "shared/sdk/regenny/re4/via/Sphere.hpp" + "shared/sdk/regenny/re4/via/Transform.hpp" + "shared/sdk/regenny/re4/via/UInt8Array.hpp" + "shared/sdk/regenny/re4/via/UIntArray.hpp" + "shared/sdk/regenny/re4/via/UIntArrayArray.hpp" + "shared/sdk/regenny/re4/via/Window.hpp" + "shared/sdk/regenny/re4/via/array.hpp" + "shared/sdk/regenny/re4/via/behaviortree/BehaviorTree.hpp" + "shared/sdk/regenny/re4/via/behaviortree/BehaviorTreeCoreHandleArray.hpp" + "shared/sdk/regenny/re4/via/behaviortree/BehaviorTreeData.hpp" + "shared/sdk/regenny/re4/via/behaviortree/Condition.hpp" + "shared/sdk/regenny/re4/via/behaviortree/Core.hpp" + "shared/sdk/regenny/re4/via/behaviortree/CoreHandle.hpp" + "shared/sdk/regenny/re4/via/behaviortree/NodeArray.hpp" + "shared/sdk/regenny/re4/via/behaviortree/NodeArray2.hpp" + "shared/sdk/regenny/re4/via/behaviortree/NodeStatus.hpp" + "shared/sdk/regenny/re4/via/behaviortree/Selector.hpp" + "shared/sdk/regenny/re4/via/behaviortree/SelectorFSM.hpp" + "shared/sdk/regenny/re4/via/behaviortree/TreeNode.hpp" + "shared/sdk/regenny/re4/via/behaviortree/TreeNodeData.hpp" + "shared/sdk/regenny/re4/via/behaviortree/TreeObject.hpp" + "shared/sdk/regenny/re4/via/behaviortree/TreeObjectData.hpp" + "shared/sdk/regenny/re4/via/clr/ManagedObject.hpp" + "shared/sdk/regenny/re4/via/fixed_array_jobs.hpp" + "shared/sdk/regenny/re4/via/gui/Control.hpp" + "shared/sdk/regenny/re4/via/gui/GUI.hpp" + "shared/sdk/regenny/re4/via/gui/GUIManager.hpp" + "shared/sdk/regenny/re4/via/gui/GUIMeshRenderer.hpp" + "shared/sdk/regenny/re4/via/gui/PlayObject.hpp" + "shared/sdk/regenny/re4/via/gui/PrimitiveContext.hpp" + "shared/sdk/regenny/re4/via/gui/TransformObject.hpp" + "shared/sdk/regenny/re4/via/gui/View.hpp" + "shared/sdk/regenny/re4/via/gui/Window.hpp" + "shared/sdk/regenny/re4/via/mat4.hpp" + "shared/sdk/regenny/re4/via/motion/AxisDirection.hpp" + "shared/sdk/regenny/re4/via/motion/Chain.hpp" + "shared/sdk/regenny/re4/via/motion/ChainCollisionArray.hpp" + "shared/sdk/regenny/re4/via/motion/ChainCollisionData.hpp" + "shared/sdk/regenny/re4/via/motion/ChainCollisionTop.hpp" + "shared/sdk/regenny/re4/via/motion/ChainCollisions.hpp" + "shared/sdk/regenny/re4/via/motion/Data.hpp" + "shared/sdk/regenny/re4/via/motion/InterpolationMode.hpp" + "shared/sdk/regenny/re4/via/motion/MotionFsm2.hpp" + "shared/sdk/regenny/re4/via/motion/MotionFsm2Internal.hpp" + "shared/sdk/regenny/re4/via/motion/MotionFsm2Layer.hpp" + "shared/sdk/regenny/re4/via/motion/MotionFsm2RawData.hpp" + "shared/sdk/regenny/re4/via/motion/MotionFsm2Resource.hpp" + "shared/sdk/regenny/re4/via/motion/SecondaryAnimation.hpp" + "shared/sdk/regenny/re4/via/motion/TransitionData.hpp" + "shared/sdk/regenny/re4/via/motion/TransitionMap.hpp" + "shared/sdk/regenny/re4/via/render/RenderOutput.hpp" + "shared/sdk/regenny/re4/via/render/SceneArray2.hpp" + "shared/sdk/regenny/re4/via/render/layer/PrepareOutput.hpp" + "shared/sdk/regenny/re4/via/typeinfo/TypeInfo.hpp" + "shared/sdk/regenny/re4/via/vec3.hpp" + "shared/sdk/regenny/re4/via/vec4.hpp" + "shared/sdk/regenny/re7/BullShit.hpp" + "shared/sdk/regenny/re7/DeserializeSequence.hpp" + "shared/sdk/regenny/re7/ManagedVtable.hpp" + "shared/sdk/regenny/re7/RenderDeviceDX11.hpp" + "shared/sdk/regenny/re7/StdMap.hpp" + "shared/sdk/regenny/re7/StdMapData.hpp" + "shared/sdk/regenny/re7/StdMapNode.hpp" + "shared/sdk/regenny/re7/System/String.hpp" + "shared/sdk/regenny/re7/System/Type.hpp" + "shared/sdk/regenny/re7/TypeArray.hpp" + "shared/sdk/regenny/re7/TypeDefinition.hpp" + "shared/sdk/regenny/re7/Unk.hpp" + "shared/sdk/regenny/re7/game/IkArmFit.hpp" + "shared/sdk/regenny/re7/game/InputSystem.hpp" + "shared/sdk/regenny/re7/tdb49/Event.hpp" + "shared/sdk/regenny/re7/tdb49/FieldDefinition.hpp" + "shared/sdk/regenny/re7/tdb49/MethodDefinition.hpp" + "shared/sdk/regenny/re7/tdb49/MethodParam.hpp" + "shared/sdk/regenny/re7/tdb49/Module.hpp" + "shared/sdk/regenny/re7/tdb49/PropertyDefinition.hpp" + "shared/sdk/regenny/re7/tdb49/TDB.hpp" + "shared/sdk/regenny/re7/tdb49/TypeDefinition.hpp" + "shared/sdk/regenny/re7/tdb67/MethodDefinition.hpp" + "shared/sdk/regenny/re7/tdb67/TDB.hpp" + "shared/sdk/regenny/re7/via/Application.hpp" + "shared/sdk/regenny/re7/via/BasisPlane.hpp" + "shared/sdk/regenny/re7/via/CameraType.hpp" + "shared/sdk/regenny/re7/via/Color.hpp" + "shared/sdk/regenny/re7/via/Component.hpp" + "shared/sdk/regenny/re7/via/DeviceOrientation.hpp" + "shared/sdk/regenny/re7/via/DisplayType.hpp" + "shared/sdk/regenny/re7/via/Entry.hpp" + "shared/sdk/regenny/re7/via/Folder.hpp" + "shared/sdk/regenny/re7/via/GameObject.hpp" + "shared/sdk/regenny/re7/via/JobSet.hpp" + "shared/sdk/regenny/re7/via/Joint.hpp" + "shared/sdk/regenny/re7/via/JointArray.hpp" + "shared/sdk/regenny/re7/via/JointData.hpp" + "shared/sdk/regenny/re7/via/JointDesc.hpp" + "shared/sdk/regenny/re7/via/JointMap.hpp" + "shared/sdk/regenny/re7/via/MobileBarState.hpp" + "shared/sdk/regenny/re7/via/Motion.hpp" + "shared/sdk/regenny/re7/via/Object.hpp" + "shared/sdk/regenny/re7/via/Point.hpp" + "shared/sdk/regenny/re7/via/Range.hpp" + "shared/sdk/regenny/re7/via/RenderType.hpp" + "shared/sdk/regenny/re7/via/Scene.hpp" + "shared/sdk/regenny/re7/via/SceneArray.hpp" + "shared/sdk/regenny/re7/via/SceneManager.hpp" + "shared/sdk/regenny/re7/via/SceneView.hpp" + "shared/sdk/regenny/re7/via/Size.hpp" + "shared/sdk/regenny/re7/via/Transform.hpp" + "shared/sdk/regenny/re7/via/Window.hpp" + "shared/sdk/regenny/re7/via/array.hpp" + "shared/sdk/regenny/re7/via/clr/ManagedObject.hpp" + "shared/sdk/regenny/re7/via/clr/VM.hpp" + "shared/sdk/regenny/re7/via/delegate.hpp" + "shared/sdk/regenny/re7/via/dictionary.hpp" + "shared/sdk/regenny/re7/via/fixed_array_jobs.hpp" + "shared/sdk/regenny/re7/via/gui/Control.hpp" + "shared/sdk/regenny/re7/via/gui/GUI.hpp" + "shared/sdk/regenny/re7/via/gui/GUIManager.hpp" + "shared/sdk/regenny/re7/via/gui/GUIMeshRenderer.hpp" + "shared/sdk/regenny/re7/via/gui/PlayObject.hpp" + "shared/sdk/regenny/re7/via/gui/PrimitiveContext.hpp" + "shared/sdk/regenny/re7/via/gui/TransformObject.hpp" + "shared/sdk/regenny/re7/via/gui/View.hpp" + "shared/sdk/regenny/re7/via/gui/Window.hpp" + "shared/sdk/regenny/re7/via/mat4.hpp" + "shared/sdk/regenny/re7/via/motion/AxisDirection.hpp" + "shared/sdk/regenny/re7/via/reflection/Method.hpp" + "shared/sdk/regenny/re7/via/reflection/MethodArray.hpp" + "shared/sdk/regenny/re7/via/reflection/Property.hpp" + "shared/sdk/regenny/re7/via/reflection/PropertyArray.hpp" + "shared/sdk/regenny/re7/via/reflection/Reflection.hpp" + "shared/sdk/regenny/re7/via/render/LayerList.hpp" + "shared/sdk/regenny/re7/via/render/LightRenderer.hpp" + "shared/sdk/regenny/re7/via/render/OutputTargetState.hpp" + "shared/sdk/regenny/re7/via/render/OutputTargetStateDX11.hpp" + "shared/sdk/regenny/re7/via/render/OutputTargetStateDX12.hpp" + "shared/sdk/regenny/re7/via/render/RenderLayer.hpp" + "shared/sdk/regenny/re7/via/render/RenderResource.hpp" + "shared/sdk/regenny/re7/via/render/RenderTargetView.hpp" + "shared/sdk/regenny/re7/via/render/RenderTargetViewDX11.hpp" + "shared/sdk/regenny/re7/via/render/RenderTargetViewDX12.hpp" + "shared/sdk/regenny/re7/via/render/Renderer.hpp" + "shared/sdk/regenny/re7/via/render/TargetDescriptorDX11.hpp" + "shared/sdk/regenny/re7/via/render/TargetDescriptorDX12.hpp" + "shared/sdk/regenny/re7/via/render/layer/Output.hpp" + "shared/sdk/regenny/re7/via/typeinfo/DeserializeSequence.hpp" + "shared/sdk/regenny/re7/via/typeinfo/Deserializer.hpp" + "shared/sdk/regenny/re7/via/typeinfo/TypeInfo.hpp" + "shared/sdk/regenny/re7/via/typeinfo/TypeInfoCLR.hpp" + "shared/sdk/regenny/re7/via/vec3.hpp" + "shared/sdk/regenny/re7/via/vec4.hpp" + "shared/sdk/regenny/re8/DeserializeSequence.hpp" + "shared/sdk/regenny/re8/ManagedVtable.hpp" + "shared/sdk/regenny/re8/System/String.hpp" + "shared/sdk/regenny/re8/TypeDefinition.hpp" + "shared/sdk/regenny/re8/game/IkArmFit.hpp" + "shared/sdk/regenny/re8/game/InputSystem.hpp" + "shared/sdk/regenny/re8/tdb67/MethodDefinition.hpp" + "shared/sdk/regenny/re8/tdb67/TDB.hpp" + "shared/sdk/regenny/re8/via/BasisPlane.hpp" + "shared/sdk/regenny/re8/via/CameraType.hpp" + "shared/sdk/regenny/re8/via/Capsule.hpp" + "shared/sdk/regenny/re8/via/Color.hpp" + "shared/sdk/regenny/re8/via/Component.hpp" + "shared/sdk/regenny/re8/via/DeviceOrientation.hpp" + "shared/sdk/regenny/re8/via/DisplayType.hpp" + "shared/sdk/regenny/re8/via/Folder.hpp" + "shared/sdk/regenny/re8/via/GameObject.hpp" + "shared/sdk/regenny/re8/via/JobSet.hpp" + "shared/sdk/regenny/re8/via/Joint.hpp" + "shared/sdk/regenny/re8/via/JointArray.hpp" + "shared/sdk/regenny/re8/via/JointData.hpp" + "shared/sdk/regenny/re8/via/JointDesc.hpp" + "shared/sdk/regenny/re8/via/JointMap.hpp" + "shared/sdk/regenny/re8/via/MobileBarState.hpp" + "shared/sdk/regenny/re8/via/Motion.hpp" + "shared/sdk/regenny/re8/via/OBB.hpp" + "shared/sdk/regenny/re8/via/Object.hpp" + "shared/sdk/regenny/re8/via/Plane.hpp" + "shared/sdk/regenny/re8/via/Point.hpp" + "shared/sdk/regenny/re8/via/Range.hpp" + "shared/sdk/regenny/re8/via/RenderType.hpp" + "shared/sdk/regenny/re8/via/Scene.hpp" + "shared/sdk/regenny/re8/via/SceneArray.hpp" + "shared/sdk/regenny/re8/via/SceneManager.hpp" + "shared/sdk/regenny/re8/via/SceneView.hpp" + "shared/sdk/regenny/re8/via/Size.hpp" + "shared/sdk/regenny/re8/via/Sphere.hpp" + "shared/sdk/regenny/re8/via/Transform.hpp" + "shared/sdk/regenny/re8/via/Window.hpp" + "shared/sdk/regenny/re8/via/array.hpp" + "shared/sdk/regenny/re8/via/clr/ManagedObject.hpp" + "shared/sdk/regenny/re8/via/fixed_array_jobs.hpp" + "shared/sdk/regenny/re8/via/gui/Control.hpp" + "shared/sdk/regenny/re8/via/gui/GUI.hpp" + "shared/sdk/regenny/re8/via/gui/GUIManager.hpp" + "shared/sdk/regenny/re8/via/gui/GUIMeshRenderer.hpp" + "shared/sdk/regenny/re8/via/gui/PlayObject.hpp" + "shared/sdk/regenny/re8/via/gui/PrimitiveContext.hpp" + "shared/sdk/regenny/re8/via/gui/TransformObject.hpp" + "shared/sdk/regenny/re8/via/gui/View.hpp" + "shared/sdk/regenny/re8/via/gui/Window.hpp" + "shared/sdk/regenny/re8/via/mat4.hpp" + "shared/sdk/regenny/re8/via/motion/AxisDirection.hpp" + "shared/sdk/regenny/re8/via/motion/Chain.hpp" + "shared/sdk/regenny/re8/via/motion/ChainCollisionArray.hpp" + "shared/sdk/regenny/re8/via/motion/ChainCollisionData.hpp" + "shared/sdk/regenny/re8/via/motion/ChainCollisionTop.hpp" + "shared/sdk/regenny/re8/via/motion/ChainCollisions.hpp" + "shared/sdk/regenny/re8/via/motion/SecondaryAnimation.hpp" + "shared/sdk/regenny/re8/via/typeinfo/TypeInfo.hpp" + "shared/sdk/regenny/re8/via/vec3.hpp" + "shared/sdk/regenny/re8/via/vec4.hpp" + "shared/sdk/regenny/sf6/BullShit.hpp" + "shared/sdk/regenny/sf6/DeserializeSequence.hpp" + "shared/sdk/regenny/sf6/ManagedVtable.hpp" + "shared/sdk/regenny/sf6/RTInternal.hpp" + "shared/sdk/regenny/sf6/RayTrace.hpp" + "shared/sdk/regenny/sf6/RenderEntity.hpp" + "shared/sdk/regenny/sf6/System/String.hpp" + "shared/sdk/regenny/sf6/TypeDefinition.hpp" + "shared/sdk/regenny/sf6/game/IkArmFit.hpp" + "shared/sdk/regenny/sf6/game/InputSystem.hpp" + "shared/sdk/regenny/sf6/tdb71/AttributeDef.hpp" + "shared/sdk/regenny/sf6/tdb71/Field.hpp" + "shared/sdk/regenny/sf6/tdb71/FieldImpl.hpp" + "shared/sdk/regenny/sf6/tdb71/MethodDefinition.hpp" + "shared/sdk/regenny/sf6/tdb71/MethodImpl.hpp" + "shared/sdk/regenny/sf6/tdb71/ParamList.hpp" + "shared/sdk/regenny/sf6/tdb71/ParameterDef.hpp" + "shared/sdk/regenny/sf6/tdb71/Property.hpp" + "shared/sdk/regenny/sf6/tdb71/PropertyImpl.hpp" + "shared/sdk/regenny/sf6/tdb71/TDB.hpp" + "shared/sdk/regenny/sf6/tdb71/TypeDefinition.hpp" + "shared/sdk/regenny/sf6/tdb71/TypeImpl.hpp" + "shared/sdk/regenny/sf6/via/BasisPlane.hpp" + "shared/sdk/regenny/sf6/via/CameraType.hpp" + "shared/sdk/regenny/sf6/via/Capsule.hpp" + "shared/sdk/regenny/sf6/via/Color.hpp" + "shared/sdk/regenny/sf6/via/Component.hpp" + "shared/sdk/regenny/sf6/via/DeviceOrientation.hpp" + "shared/sdk/regenny/sf6/via/DisplayType.hpp" + "shared/sdk/regenny/sf6/via/Folder.hpp" + "shared/sdk/regenny/sf6/via/GameObject.hpp" + "shared/sdk/regenny/sf6/via/IntArray.hpp" + "shared/sdk/regenny/sf6/via/JobSet.hpp" + "shared/sdk/regenny/sf6/via/Joint.hpp" + "shared/sdk/regenny/sf6/via/JointArray.hpp" + "shared/sdk/regenny/sf6/via/JointData.hpp" + "shared/sdk/regenny/sf6/via/JointDesc.hpp" + "shared/sdk/regenny/sf6/via/JointMap.hpp" + "shared/sdk/regenny/sf6/via/ManagedObjectArray.hpp" + "shared/sdk/regenny/sf6/via/MobileBarState.hpp" + "shared/sdk/regenny/sf6/via/Motion.hpp" + "shared/sdk/regenny/sf6/via/Object.hpp" + "shared/sdk/regenny/sf6/via/Point.hpp" + "shared/sdk/regenny/sf6/via/Range.hpp" + "shared/sdk/regenny/sf6/via/RenderType.hpp" + "shared/sdk/regenny/sf6/via/Scene.hpp" + "shared/sdk/regenny/sf6/via/SceneArray.hpp" + "shared/sdk/regenny/sf6/via/SceneManager.hpp" + "shared/sdk/regenny/sf6/via/SceneView.hpp" + "shared/sdk/regenny/sf6/via/Size.hpp" + "shared/sdk/regenny/sf6/via/Sphere.hpp" + "shared/sdk/regenny/sf6/via/Transform.hpp" + "shared/sdk/regenny/sf6/via/UInt8Array.hpp" + "shared/sdk/regenny/sf6/via/UIntArray.hpp" + "shared/sdk/regenny/sf6/via/UIntArrayArray.hpp" + "shared/sdk/regenny/sf6/via/Window.hpp" + "shared/sdk/regenny/sf6/via/array.hpp" + "shared/sdk/regenny/sf6/via/behaviortree/BehaviorTree.hpp" + "shared/sdk/regenny/sf6/via/behaviortree/BehaviorTreeCoreHandleArray.hpp" + "shared/sdk/regenny/sf6/via/behaviortree/BehaviorTreeData.hpp" + "shared/sdk/regenny/sf6/via/behaviortree/Condition.hpp" + "shared/sdk/regenny/sf6/via/behaviortree/Core.hpp" + "shared/sdk/regenny/sf6/via/behaviortree/CoreHandle.hpp" + "shared/sdk/regenny/sf6/via/behaviortree/NodeArray.hpp" + "shared/sdk/regenny/sf6/via/behaviortree/NodeArray2.hpp" + "shared/sdk/regenny/sf6/via/behaviortree/NodeStatus.hpp" + "shared/sdk/regenny/sf6/via/behaviortree/Selector.hpp" + "shared/sdk/regenny/sf6/via/behaviortree/SelectorFSM.hpp" + "shared/sdk/regenny/sf6/via/behaviortree/TreeNode.hpp" + "shared/sdk/regenny/sf6/via/behaviortree/TreeNodeData.hpp" + "shared/sdk/regenny/sf6/via/behaviortree/TreeObject.hpp" + "shared/sdk/regenny/sf6/via/behaviortree/TreeObjectData.hpp" + "shared/sdk/regenny/sf6/via/clr/ManagedObject.hpp" + "shared/sdk/regenny/sf6/via/fixed_array_jobs.hpp" + "shared/sdk/regenny/sf6/via/gui/Control.hpp" + "shared/sdk/regenny/sf6/via/gui/GUI.hpp" + "shared/sdk/regenny/sf6/via/gui/GUIManager.hpp" + "shared/sdk/regenny/sf6/via/gui/GUIMeshRenderer.hpp" + "shared/sdk/regenny/sf6/via/gui/PlayObject.hpp" + "shared/sdk/regenny/sf6/via/gui/PrimitiveContext.hpp" + "shared/sdk/regenny/sf6/via/gui/TransformObject.hpp" + "shared/sdk/regenny/sf6/via/gui/View.hpp" + "shared/sdk/regenny/sf6/via/gui/Window.hpp" + "shared/sdk/regenny/sf6/via/mat4.hpp" + "shared/sdk/regenny/sf6/via/motion/AxisDirection.hpp" + "shared/sdk/regenny/sf6/via/motion/Chain.hpp" + "shared/sdk/regenny/sf6/via/motion/ChainCollisionArray.hpp" + "shared/sdk/regenny/sf6/via/motion/ChainCollisionData.hpp" + "shared/sdk/regenny/sf6/via/motion/ChainCollisionTop.hpp" + "shared/sdk/regenny/sf6/via/motion/ChainCollisions.hpp" + "shared/sdk/regenny/sf6/via/motion/Data.hpp" + "shared/sdk/regenny/sf6/via/motion/InterpolationMode.hpp" + "shared/sdk/regenny/sf6/via/motion/MotionFsm2.hpp" + "shared/sdk/regenny/sf6/via/motion/MotionFsm2Internal.hpp" + "shared/sdk/regenny/sf6/via/motion/MotionFsm2Layer.hpp" + "shared/sdk/regenny/sf6/via/motion/MotionFsm2RawData.hpp" + "shared/sdk/regenny/sf6/via/motion/MotionFsm2Resource.hpp" + "shared/sdk/regenny/sf6/via/motion/SecondaryAnimation.hpp" + "shared/sdk/regenny/sf6/via/motion/TransitionData.hpp" + "shared/sdk/regenny/sf6/via/motion/TransitionMap.hpp" + "shared/sdk/regenny/sf6/via/render/RenderOutput.hpp" + "shared/sdk/regenny/sf6/via/render/SceneArray2.hpp" + "shared/sdk/regenny/sf6/via/render/layer/PrepareOutput.hpp" + "shared/sdk/regenny/sf6/via/typeinfo/TypeInfo.hpp" + "shared/sdk/regenny/sf6/via/vec3.hpp" + "shared/sdk/regenny/sf6/via/vec4.hpp" + "shared/sdk/renderer/RenderResource.hpp" + ) + + list(APPEND DD2SDK_SOURCES + cmake.toml + ) + + set(CMKR_SOURCES ${DD2SDK_SOURCES}) + add_library(DD2SDK STATIC) + + if(DD2SDK_SOURCES) + target_sources(DD2SDK PRIVATE ${DD2SDK_SOURCES}) + endif() + + target_compile_features(DD2SDK PUBLIC + cxx_std_23 + ) + + target_compile_options(DD2SDK PUBLIC + "/EHa" + ) + + target_include_directories(DD2SDK PUBLIC + "shared/" + "include/" + ) + + target_link_libraries(DD2SDK PUBLIC + glm_static + spdlog + ) + + target_link_libraries(DD2SDK PRIVATE + utility + ) + + target_compile_definitions(DD2SDK PUBLIC + DD2 + REENGINE_PACKED + REENGINE_AT + ) + + unset(CMKR_TARGET) + unset(CMKR_SOURCES) +endif() + +# Target DD2 +if(REF_BUILD_FRAMEWORK AND CMAKE_SIZEOF_VOID_P EQUAL 8) # build-framework + set(CMKR_TARGET DD2) + set(DD2_SOURCES "") + + list(APPEND DD2_SOURCES + "src/D3D11Hook.cpp" + "src/D3D12Hook.cpp" + "src/DInputHook.cpp" + "src/ExceptionHandler.cpp" + "src/HookManager.cpp" + "src/Main.cpp" + "src/Mods.cpp" + "src/REFramework.cpp" + "src/WindowFilter.cpp" + "src/WindowsMessageHook.cpp" + "src/mods/APIProxy.cpp" + "src/mods/Camera.cpp" + "src/mods/DeveloperTools.cpp" + "src/mods/FirstPerson.cpp" + "src/mods/FreeCam.cpp" + "src/mods/Graphics.cpp" + "src/mods/Hooks.cpp" + "src/mods/IntegrityCheckBypass.cpp" + "src/mods/ManualFlashlight.cpp" + "src/mods/PluginLoader.cpp" + "src/mods/REFrameworkConfig.cpp" + "src/mods/Scene.cpp" + "src/mods/ScriptRunner.cpp" + "src/mods/VR.cpp" + "src/mods/bindings/FS.cpp" + "src/mods/bindings/ImGui.cpp" + "src/mods/bindings/Json.cpp" + "src/mods/bindings/Sdk.cpp" + "src/mods/tools/ChainViewer.cpp" + "src/mods/tools/GameObjectsDisplay.cpp" + "src/mods/tools/ObjectExplorer.cpp" + "src/mods/vr/Bindings.cpp" + "src/mods/vr/D3D11Component.cpp" + "src/mods/vr/D3D12Component.cpp" + "src/mods/vr/OverlayComponent.cpp" + "src/mods/vr/d3d12/CommandContext.cpp" + "src/mods/vr/d3d12/ResourceCopier.cpp" + "src/mods/vr/d3d12/TextureContext.cpp" + "src/mods/vr/games/RE8VR.cpp" + "src/mods/vr/runtimes/OpenVR.cpp" + "src/mods/vr/runtimes/OpenXR.cpp" + "src/re2-imgui/imgui_impl_dx11.cpp" + "src/re2-imgui/imgui_impl_dx12.cpp" + "src/re2-imgui/imgui_impl_win32.cpp" + "src/utility/ImGui.cpp" + "src/D3D11Hook.hpp" + "src/D3D12Hook.hpp" + "src/DInputHook.hpp" + "src/ExceptionHandler.hpp" + "src/Genny.hpp" + "src/GennyIda.hpp" + "src/HookManager.hpp" + "src/LicenseStrings.hpp" + "src/Mod.hpp" + "src/Mods.hpp" + "src/REFramework.hpp" + "src/Tool.hpp" + "src/WindowFilter.hpp" + "src/WindowsMessageHook.hpp" + "src/mods/APIProxy.hpp" + "src/mods/Camera.hpp" + "src/mods/DeveloperTools.hpp" + "src/mods/FirstPerson.hpp" + "src/mods/FreeCam.hpp" + "src/mods/Graphics.hpp" + "src/mods/Hooks.hpp" + "src/mods/IntegrityCheckBypass.hpp" + "src/mods/ManualFlashlight.hpp" + "src/mods/PluginLoader.hpp" + "src/mods/REFrameworkConfig.hpp" + "src/mods/Scene.hpp" + "src/mods/ScriptRunner.hpp" + "src/mods/VR.hpp" + "src/mods/bindings/FS.hpp" + "src/mods/bindings/ImGui.hpp" + "src/mods/bindings/Json.hpp" + "src/mods/bindings/Sdk.hpp" + "src/mods/tools/ChainViewer.hpp" + "src/mods/tools/GameObjectsDisplay.hpp" + "src/mods/tools/ObjectExplorer.hpp" + "src/mods/vr/D3D11Component.hpp" + "src/mods/vr/D3D12Component.hpp" + "src/mods/vr/OverlayComponent.hpp" + "src/mods/vr/d3d12/ComPtr.hpp" + "src/mods/vr/d3d12/CommandContext.hpp" + "src/mods/vr/d3d12/ResourceCopier.hpp" + "src/mods/vr/d3d12/TextureContext.hpp" + "src/mods/vr/games/RE8VR.hpp" + "src/mods/vr/runtimes/OpenVR.hpp" + "src/mods/vr/runtimes/OpenXR.hpp" + "src/mods/vr/runtimes/VRRuntime.hpp" + "src/re2-imgui/af_baidu.hpp" + "src/re2-imgui/af_faprolight.hpp" + "src/re2-imgui/font_robotomedium.hpp" + "src/re2-imgui/re2_imconfig.hpp" + "src/utility/ImGui.hpp" + "src/re2-imgui/af_fadef.h" + "src/re2-imgui/imgui_impl_dx11.h" + "src/re2-imgui/imgui_impl_dx12.h" + "src/re2-imgui/imgui_impl_win32.h" + ) + + list(APPEND DD2_SOURCES + cmake.toml + ) + + set(CMKR_SOURCES ${DD2_SOURCES}) + add_library(DD2 SHARED) + + if(DD2_SOURCES) + target_sources(DD2 PRIVATE ${DD2_SOURCES}) + endif() + + target_compile_definitions(DD2 PUBLIC + ${CMKR_TARGET} + REFRAMEWORK_EXPORTS + "REFRAMEWORK_GAME_NAME=\"${CMKR_TARGET}\"" + ) + + if(DEVELOPER_MODE) # developer-mode + target_compile_definitions(DD2 PUBLIC + DEVELOPER + ) + endif() + + target_compile_features(DD2 PUBLIC + cxx_std_23 + ) + + target_compile_options(DD2 PUBLIC + "/GS-" + "/bigobj" + "/EHa" + ) + + target_include_directories(DD2 PUBLIC + "shared/" + "src/" + "include/" + "${OPENXR_SOURCE_DIR}/src" + ) + + target_link_directories(DD2 PUBLIC + "dependencies/openvr/lib/win64/" + ) + + target_link_libraries(DD2 PUBLIC + ${CMKR_TARGET}SDK + utility + asmjit::asmjit + nlohmann_json + spdlog + lua + sol2 + imgui + imguizmo + imnodes + minhook + d3d11 + glm_static + shlwapi + openvr + openxr_loader + delayimp + DirectXTK + DirectXTK12 + ) + + set_target_properties(DD2 PROPERTIES + OUTPUT_NAME + dinput8 + LINK_FLAGS + "/DELAYLOAD:openvr_api.dll /DELAYLOAD:openxr_loader.dll /DELAYLOAD:d3d11.dll /DELAYLOAD:d3d12.dll /DELAYLOAD:D3DCOMPILER_47.dll" + RUNTIME_OUTPUT_DIRECTORY_RELEASE + "${CMAKE_BINARY_DIR}/bin/${CMKR_TARGET}" + RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO + "${CMAKE_BINARY_DIR}/bin/${CMKR_TARGET}" + LIBRARY_OUTPUT_DIRECTORY_RELEASE + "${CMAKE_BINARY_DIR}/lib/${CMKR_TARGET}" + LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO + "${CMAKE_BINARY_DIR}/lib/${CMKR_TARGET}" + ARCHIVE_OUTPUT_DIRECTORY_RELEASE + "${CMAKE_BINARY_DIR}/lib/${CMKR_TARGET}" + ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO + "${CMAKE_BINARY_DIR}/lib/${CMKR_TARGET}" + ) + + unset(CMKR_TARGET) + unset(CMKR_SOURCES) +endif() + # Target example_plugin if(REF_BUILD_FRAMEWORK AND CMAKE_SIZEOF_VOID_P EQUAL 8) # build-framework set(CMKR_TARGET example_plugin) diff --git a/cmake.toml b/cmake.toml index fb927ee90..06fd0407c 100644 --- a/cmake.toml +++ b/cmake.toml @@ -44,6 +44,7 @@ REF_BUILD_RE8_SDK = false REF_BUILD_DMC5_SDK = false REF_BUILD_MHRISE_SDK = false REF_BUILD_SF6_SDK = false +REF_BUILD_DD2_SDK = false REF_BUILD_FRAMEWORK = { value = true, comment = "Enable building the full REFramework" } REF_BUILD_DEPENDENCIES = { value = true, comment = "Enable building dependencies" } @@ -61,6 +62,7 @@ build-re8-sdk = "REF_BUILD_RE8_SDK OR REF_BUILD_FRAMEWORK" build-dmc5-sdk = "REF_BUILD_DMC5_SDK OR REF_BUILD_FRAMEWORK" build-mhrise-sdk = "REF_BUILD_MHRISE_SDK OR REF_BUILD_FRAMEWORK" build-sf6-sdk = "REF_BUILD_SF6_SDK OR REF_BUILD_FRAMEWORK" +build-dd2-sdk = "REF_BUILD_DD2_SDK OR REF_BUILD_FRAMEWORK" build-framework-dependencies = "REF_BUILD_DEPENDENCIES AND CMAKE_SIZEOF_VOID_P EQUAL 8" [fetch-content.asmjit] @@ -329,6 +331,14 @@ condition = "build-sf6-sdk" [target.SF6] type = "game" +[target.DD2SDK] +type = "sdk" +compile-definitions = ["DD2", "REENGINE_PACKED", "REENGINE_AT"] +condition = "build-dd2-sdk" + +[target.DD2] +type = "game" + [template.plugin] type = "shared" include-directories = ["include/"] diff --git a/shared/sdk/ReClass.hpp b/shared/sdk/ReClass.hpp index bda6823e6..1cb7b33cb 100644 --- a/shared/sdk/ReClass.hpp +++ b/shared/sdk/ReClass.hpp @@ -8,6 +8,8 @@ #pragma pack(push, r1, 1) #ifdef DMC5 #include "ReClass_Internal_DMC5.hpp" +#elif defined(DD2) +#include "ReClass_Internal_DD2.hpp" // Copy of SF6 #elif defined(SF6) #include "ReClass_Internal_SF6.hpp" #elif defined(MHRISE) diff --git a/shared/sdk/ReClass_Internal_DD2.hpp b/shared/sdk/ReClass_Internal_DD2.hpp new file mode 100644 index 000000000..8a822e000 --- /dev/null +++ b/shared/sdk/ReClass_Internal_DD2.hpp @@ -0,0 +1,4063 @@ +// Created with ReClass.NET 1.2 by KN4CK3R + +class N0000000A +{ +public: + char pad_0000[24]; //0x0000 + class N0000005F *N0000000E; //0x0018 + char pad_0020[280]; //0x0020 +}; //Size: 0x0138 +static_assert(sizeof(N0000000A) == 0x138); + +class N0000005F +{ +public: + char pad_0000[16]; //0x0000 + class N0000007A *N00000062; //0x0010 + class N00000085 *N00000063; //0x0018 + char pad_0020[168]; //0x0020 +}; //Size: 0x00C8 +static_assert(sizeof(N0000005F) == 0xC8); + +class N0000007A +{ +public: + char pad_0000[40]; //0x0000 + uint32_t N00000080; //0x0028 + char pad_002C[28]; //0x002C +}; //Size: 0x0048 +static_assert(sizeof(N0000007A) == 0x48); + +class N00000085 +{ +public: + char pad_0000[32]; //0x0000 + uint32_t N0000008A; //0x0020 + char pad_0024[36]; //0x0024 +}; //Size: 0x0048 +static_assert(sizeof(N00000085) == 0x48); + +class ManagedTypes +{ +public: + class REClassInfo *types[2048]; //0x0000 +}; //Size: 0x4000 +static_assert(sizeof(ManagedTypes) == 0x4000); + +class N0000019E +{ +public: + char pad_0000[104]; //0x0000 + class N00000369 *N000001AC; //0x0068 + class N000001C9 *N000001AD; //0x0070 + char pad_0078[208]; //0x0078 +}; //Size: 0x0148 +static_assert(sizeof(N0000019E) == 0x148); + +class N000001C9 +{ +public: + class N0000019E *parent; //0x0000 + void* N000001CB; //0x0008 + char pad_0010[40]; //0x0010 + void* N000001D1; //0x0038 + char pad_0040[8]; //0x0040 + void* N000001D3; //0x0048 + char pad_0050[16]; //0x0050 + class N000001FF *N000001D6; //0x0060 + char pad_0068[8]; //0x0068 +}; //Size: 0x0070 +static_assert(sizeof(N000001C9) == 0x70); + +class N000001FF +{ +public: + char pad_0000[120]; //0x0000 +}; //Size: 0x0078 +static_assert(sizeof(N000001FF) == 0x78); + +class N0000027C +{ +public: + class N000002D1 *N0000027D; //0x0000 + char pad_0008[104]; //0x0008 + class N000002A6 *N0000028B; //0x0070 + char pad_0078[200]; //0x0078 +}; //Size: 0x0140 +static_assert(sizeof(N0000027C) == 0x140); + +class N000002A6 +{ +public: + char pad_0000[328]; //0x0000 +}; //Size: 0x0148 +static_assert(sizeof(N000002A6) == 0x148); + +class N000002D1 +{ +public: + char pad_0000[72]; //0x0000 +}; //Size: 0x0048 +static_assert(sizeof(N000002D1) == 0x48); + +class N00000369 +{ +public: + class N0000039C *N0000036A; //0x0000 + char pad_0008[320]; //0x0008 +}; //Size: 0x0148 +static_assert(sizeof(N00000369) == 0x148); + +class N0000039C +{ +public: + char pad_0000[72]; //0x0000 +}; //Size: 0x0048 +static_assert(sizeof(N0000039C) == 0x48); + +class CameraTypePtr +{ +public: + class REType *N000003AA; //0x0000 +}; //Size: 0x0008 +static_assert(sizeof(CameraTypePtr) == 0x8); + +class REType +{ +public: + void *N000003B4; //0x0000 + uint32_t classIndex; //0x0008 + int16_t flags; //0x000C < 0 == NoneType, 1 == abstract, 2 == concrete, 256 == interface, 16384 == root + char pad_000E[2]; //0x000E + uint64_t fastClassIndex; //0x0010 + uint32_t typeIndexProbably; //0x0018 + char pad_001C[4]; //0x001C + char *name; //0x0020 + char pad_0028[4]; //0x0028 + uint32_t size; //0x002C + uint32_t typeCRC; //0x0030 + uint32_t miscFlags; //0x0034 + class REType *super; //0x0038 + class REType *childType; //0x0040 + class REType *chainType; //0x0048 + class REFieldList *fields; //0x0050 + class REClassInfo *classInfo; //0x0058 is a managed type if this is not null +}; //Size: 0x0060 +static_assert(sizeof(REType) == 0x60); + +class N000003DE +{ +public: + char pad_0000[8]; //0x0000 + class N000008E5 *N000003E0; //0x0008 + char pad_0010[312]; //0x0010 +}; //Size: 0x0148 +static_assert(sizeof(N000003DE) == 0x148); + +class REObject +{ +public: + class REObjectInfo *info; //0x0000 +}; //Size: 0x0008 +static_assert(sizeof(REObject) == 0x8); + +class REManagedObject : public REObject +{ +public: + uint32_t referenceCount; //0x0008 + int16_t N000071AE; //0x000C + char pad_000E[2]; //0x000E +}; //Size: 0x0010 +static_assert(sizeof(REManagedObject) == 0x10); + +class REComponent : public REManagedObject +{ +public: + class REGameObject *ownerGameObject; //0x0010 + class REComponent *childComponent; //0x0018 + class REComponent *prevComponent; //0x0020 + class REComponent *nextComponent; //0x0028 +}; //Size: 0x0030 +static_assert(sizeof(REComponent) == 0x30); + +class RECamera : public REComponent +{ +public: + float nearClipPlane; //0x0030 + float farClipPlane; //0x0034 + float fov; //0x0038 + float lookAtDistance; //0x003C + bool verticalEnable; //0x0040 + char pad_0041[3]; //0x0041 + float aspectRatio; //0x0044 + int32_t N00000451; //0x0048 + char pad_004C[4]; //0x004C + int32_t cameraType; //0x0050 + char pad_0054[12]; //0x0054 + wchar_t *cameraName; //0x0060 + uint32_t N00000455; //0x0068 + char pad_006C[32]; //0x006C + float N00000D40; //0x008C + float N0000045A; //0x0090 + float N00000D43; //0x0094 + float N0000045B; //0x0098 + char pad_009C[252]; //0x009C +}; //Size: 0x0198 +static_assert(sizeof(RECamera) == 0x198); + +class REGameObject : public REManagedObject +{ +public: + bool shouldUpdate; //0x0010 + bool shouldDraw; //0x0011 + bool shouldUpdateSelf; //0x0012 + bool shouldDrawSelf; //0x0013 + bool shouldSelect; //0x0014 + char pad_0015[11]; //0x0015 + class RETransform *transform; //0x0020 + class REFolder *folder; //0x0028 + class SystemString *name; //0x0030 This can either be a pointer to the name or embedded directly + uint32_t N00000DDA; //0x0038 + float timescale; //0x003C +}; //Size: 0x0040 +static_assert(sizeof(REGameObject) == 0x40); + +class REFieldList +{ +public: + uint32_t unknown; //0x0000 + char pad_0004[4]; //0x0004 + class REFieldList *next; //0x0008 + class FunctionHolder **(*methods)[4000]; //0x0010 + int32_t num; //0x0018 + int32_t maxItems; //0x001C + class REVariableList *variables; //0x0020 + void* deserializer; //0x0028 + uint32_t N00000730; //0x0030 +}; //Size: 0x0034 +static_assert(sizeof(REFieldList) == 0x34); + +class N0000074B +{ +public: + class FunctionHolder **N0000074C[2048]; //0x0000 +}; //Size: 0x4000 +static_assert(sizeof(N0000074B) == 0x4000); + +class N00000756 +{ +public: + class FunctionHolder *func; //0x0000 +}; //Size: 0x0008 +static_assert(sizeof(N00000756) == 0x8); + +class FunctionHolder +{ +public: + class FunctionDescriptor *descriptor; //0x0000 + char pad_0008[24]; //0x0008 +}; //Size: 0x0020 +static_assert(sizeof(FunctionHolder) == 0x20); + +class FunctionDescriptor +{ +public: + char *name; //0x0000 + class MethodParamInfo (*params)[256]; //0x0008 + char pad_0010[4]; //0x0010 + int32_t numParams; //0x0014 + void* functionPtr; //0x0018 + uint32_t returnTypeFlag; //0x0020 AND 1F = via::reflection::TypeKind + uint32_t typeIndex; //0x0024 + char pad_0028[8]; //0x0028 + char *returnTypeName; //0x0030 + char pad_0038[72]; //0x0038 +}; //Size: 0x0080 +static_assert(sizeof(FunctionDescriptor) == 0x80); + +class REJointArray +{ +public: + class REArrayBase *data; //0x0000 + class JointMatrices *matrices; //0x0008 + char pad_0010[256]; //0x0010 +}; //Size: 0x0110 +static_assert(sizeof(REJointArray) == 0x110); + +class RETransform : public REComponent +{ +public: + Vector4f position; //0x0030 + Vector4f angles; //0x0040 + Vector4f scale; //0x0050 + class REScene *scene; //0x0060 + class RETransform *child; //0x0068 + class RETransform *next; //0x0070 + class RETransform *parentTransform; //0x0078 + Matrix4x4f worldTransform; //0x0080 + class N00007EEE *N000007D8; //0x00C0 + int32_t N00000804; //0x00C8 + uint32_t tickCount; //0x00CC + bool sameJointsConstraint; //0x00D0 + bool N0000081A; //0x00D1 + char pad_00D2[1]; //0x00D2 + bool absoluteScaling; //0x00D3 + char pad_00D4[4]; //0x00D4 + class REJointArray joints; //0x00D8 + char pad_01E8[8]; //0x01E8 +}; //Size: 0x01F0 +static_assert(sizeof(RETransform) == 0x1F0); + +class N0000B6D9 +{ +public: + class REManagedObject *object; //0x0000 + uint32_t v1; //0x0008 + uint32_t v2; //0x000C + uint32_t v3; //0x0010 + uint32_t v4; //0x0014 +}; //Size: 0x0018 +static_assert(sizeof(N0000B6D9) == 0x18); + +class REString +{ +public: + char pad_0000[24]; //0x0000 + int32_t length; //0x0018 if len >= 12, is a pointer + int32_t maxLength; //0x001C +}; //Size: 0x0020 +static_assert(sizeof(REString) == 0x20); + +class REScene : public REManagedObject +{ +public: + char pad_0010[3]; //0x0010 + bool enabled; //0x0013 + bool monitor; //0x0014 + bool mainScene; //0x0015 + char pad_0016[6]; //0x0016 + uint32_t frameCount; //0x001C + float timescale; //0x0020 + char pad_0024[4]; //0x0024 + class N0000B6D9 someHugeArray[65536]; //0x0028 + char pad_180028[1176]; //0x180028 + class RETransform *N0000B786; //0x1804C0 + class REFolder *firstFolder; //0x1804C8 + class REString name; //0x1804D0 + char pad_1804F0[720]; //0x1804F0 + int64_t N0000B7E3; //0x1807C0 + class REManagedObject *N0000B7E4; //0x1807C8 +}; //Size: 0x1807D0 +static_assert(sizeof(REScene) == 0x1807D0); + +class N0000091E +{ +public: + class N0000092A *N00000920; //0x0000 + char pad_0008[56]; //0x0008 +}; //Size: 0x0040 +static_assert(sizeof(N0000091E) == 0x40); + +class N0000092A +{ +public: + char pad_0000[72]; //0x0000 +}; //Size: 0x0048 +static_assert(sizeof(N0000092A) == 0x48); + +class N00000965 +{ +public: + class REObjectInfo *object; //0x0000 + char pad_0008[64]; //0x0008 +}; //Size: 0x0048 +static_assert(sizeof(N00000965) == 0x48); + +class REObjectInfo +{ +public: + class REClassInfo *classInfo; //0x0000 + void* validator; //0x0008 + void* N0000246A; //0x0010 + void* getType; //0x0018 + void* toString; //0x0020 + void* copy; //0x0028 + void* N00000995; //0x0030 + void* N00000996; //0x0038 + void* N00000997; //0x0040 + void* N00000998; //0x0048 + void* N00000999; //0x0050 + void* getSize; //0x0058 + void* N0000099B; //0x0060 + void* N0000099C; //0x0068 + void* N0000246C; //0x0070 + void* N0000246D; //0x0078 + void* N0000246E; //0x0080 + void* N0000246F; //0x0088 + void* N00002470; //0x0090 + void* N00002471; //0x0098 + void* N00002472; //0x00A0 + void* N00002473; //0x00A8 +}; //Size: 0x00B0 +static_assert(sizeof(REObjectInfo) == 0xB0); + +class REClassInfo +{ +public: + uint16_t typeIndex; //0x0000 index into global type array + char pad_0002[5]; //0x0002 + uint8_t objectFlags; //0x0007 flags >> 5 == 1 == normal type ? ?? + uint32_t _; //0x0008 + uint32_t elementBitField; //0x000C >> 4 is the value type index (RETypeImpl) + uint32_t typeFlags; //0x0010 System::Reflection::TypeAttributes or via::clr::TypeFlag + uint32_t size; //0x0014 + uint32_t fqnHash; //0x0018 + uint32_t typeCRC; //0x001C + uint32_t defaultCtor; //0x0020 + uint32_t vt; //0x0024 vtable byte pool + uint32_t memberMethod; //0x0028 + uint32_t memberField; //0x002C + uint32_t memberProp; //0x0030 + uint32_t memberEvent; //0x0034 + int32_t interfaces; //0x0038 + int32_t generics; //0x003C byte pool + class RETypeCLR *type; //0x0040 + class REObjectInfo *parentInfo; //0x0048 +}; //Size: 0x0050 +static_assert(sizeof(REClassInfo) == 0x50); + +class N00000CF1 +{ +public: + class REObjectInfo *N00000CF2; //0x0000 + char pad_0008[64]; //0x0008 +}; //Size: 0x0048 +static_assert(sizeof(N00000CF1) == 0x48); + +class RERenderOutput : public REComponent +{ +public: + char pad_0030[144]; //0x0030 +}; //Size: 0x00C0 +static_assert(sizeof(RERenderOutput) == 0xC0); + +class N00000D1D +{ +public: + class REObjectInfo *object; //0x0000 + char pad_0008[64]; //0x0008 +}; //Size: 0x0048 +static_assert(sizeof(N00000D1D) == 0x48); + +class REFolder : public REManagedObject +{ +public: + char pad_0010[8]; //0x0010 + int32_t N00000D4E; //0x0018 + char pad_001C[8]; //0x001C + float N00005BA5; //0x0024 + class REString name; //0x0028 + class REString name2; //0x0048 + class REString name3; //0x0068 + class REFolder *parentFolder; //0x0088 + class REFolder *childFolder; //0x0090 + class REFolder *childFolder2; //0x0098 + char pad_00A0[40]; //0x00A0 + class REScene *scene; //0x00C8 +}; //Size: 0x00D0 +static_assert(sizeof(REFolder) == 0xD0); + +class N00000D61 +{ +public: + class REObjectInfo *N00000D62; //0x0000 + char pad_0008[64]; //0x0008 +}; //Size: 0x0048 +static_assert(sizeof(N00000D61) == 0x48); + +class N00000DFF +{ +public: + class REObjectInfo *N00000E00; //0x0000 + char pad_0008[64]; //0x0008 +}; //Size: 0x0048 +static_assert(sizeof(N00000DFF) == 0x48); + +class N00000E15 +{ +public: + class REObjectInfo *N00000E16; //0x0000 + char pad_0008[64]; //0x0008 +}; //Size: 0x0048 +static_assert(sizeof(N00000E15) == 0x48); + +class N00000E2B +{ +public: + class REObjectInfo *N00000E2C; //0x0000 + char pad_0008[64]; //0x0008 +}; //Size: 0x0048 +static_assert(sizeof(N00000E2B) == 0x48); + +class N00004041 +{ +public: + class REObjectInfo *N00004042; //0x0000 + char pad_0008[64]; //0x0008 +}; //Size: 0x0048 +static_assert(sizeof(N00004041) == 0x48); + +class ASDF +{ +public: + class RETransform *N0000406D; //0x0000 + char pad_0008[80]; //0x0008 +}; //Size: 0x0058 +static_assert(sizeof(ASDF) == 0x58); + +class SceneObjectList : public ASDF +{ +public: + char pad_0058[48]; //0x0058 +}; //Size: 0x0088 +static_assert(sizeof(SceneObjectList) == 0x88); + +class N00004087 +{ +public: + class REObjectInfo *N00004089; //0x0000 + char pad_0008[56]; //0x0008 +}; //Size: 0x0040 +static_assert(sizeof(N00004087) == 0x40); + +class REToneMapping : public REComponent +{ +public: + void *N0000410F; //0x0030 + float N00004110; //0x0038 + bool enabled; //0x003C + char pad_003D[3]; //0x003D +}; //Size: 0x0040 +static_assert(sizeof(REToneMapping) == 0x40); + +class REBehavior : public REComponent +{ +public: + uint8_t N000076CE; //0x0030 + bool N000017DF; //0x0031 + bool enabled; //0x0032 + uint8_t N00000836; //0x0033 + uint32_t N00007712; //0x0034 + uint32_t N000076CF; //0x0038 + uint32_t N0000705D; //0x003C update cost? + char pad_0040[8]; //0x0040 +}; //Size: 0x0048 +static_assert(sizeof(REBehavior) == 0x48); + +class RECameraParam : public REBehavior +{ +public: + char pad_0048[8]; //0x0048 + uint32_t N000076C0; //0x0050 + float fov; //0x0054 fov + float param2; //0x0058 + float farClip; //0x005C far clip dist + bool useParam; //0x0060 + char pad_0061[15]; //0x0061 +}; //Size: 0x0070 +static_assert(sizeof(RECameraParam) == 0x70); + +class RopewayPlayerCameraController : public REBehavior +{ +public: + char pad_0048[24]; //0x0048 + Vector4f pivotPosition; //0x0060 + Vector4f pivotRotation; //0x0070 + Vector4f worldPosition; //0x0080 + Vector4f worldRotation; //0x0090 quaternion + char pad_00A0[24]; //0x00A0 + class RECamera *activeCamera; //0x00B8 + class REJoint *joint; //0x00C0 + class RECameraParam *cameraParam; //0x00C8 + class ValueTriggerBoolean *N0000772F; //0x00D0 + char pad_00D8[8]; //0x00D8 + class REBehavior *cascade; //0x00E0 + class RECameraParam *cameraParam2; //0x00E8 + char pad_00F0[8]; //0x00F0 + class DampingFloat *controlDamping; //0x00F8 + class DampingFloat *controlDamping2; //0x0100 + class TwirlerCameraSettings *cameraLimitSettings; //0x0108 + bool isNotUsingWeapon; //0x0110 IDK, but it gets set to true when not using a weap. + char pad_0111[7]; //0x0111 + float pitch; //0x0118 + float yaw; //0x011C + float pitchVelocity; //0x0120 + float yawVelocity; //0x0124 + class DampingFloat *controlDamping3; //0x0128 + class DampingFloat *controlDamping4; //0x0130 + char pad_0138[32]; //0x0138 + class DampingFloat *controlDamping5; //0x0158 + char pad_0160[16]; //0x0160 + uint32_t cameraMode; //0x0170 3 == in weapon? + char pad_0174[4]; //0x0174 + class RopewayCameraInterpolationPrame *N0000773F; //0x0178 + char pad_0180[72]; //0x0180 + uint32_t N00007748; //0x01C8 + char pad_01CC[52]; //0x01CC + float N00002602; //0x0200 + char pad_0204[28]; //0x0204 +}; //Size: 0x0220 +static_assert(sizeof(RopewayPlayerCameraController) == 0x220); + +class REJoint : public REManagedObject +{ +public: + class RETransform *parentTransform; //0x0010 + class REJointDesc *info; //0x0018 + Vector4f posOffset; //0x0020 + Vector3f anglesOffset; //0x0030 + float N000026BC; //0x003C + float N000026B6; //0x0040 + float N000026BF; //0x0044 + float N000026B7; //0x0048 + char pad_004C[4]; //0x004C + int32_t N00006E8E; //0x0050 + float N00006E97; //0x0054 + int32_t N00006E8F; //0x0058 + uint32_t N0000B861; //0x005C +}; //Size: 0x0060 +static_assert(sizeof(REJoint) == 0x60); + +class ValueTriggerBoolean : public REManagedObject +{ +public: + bool current; //0x0010 + bool old; //0x0011 + char pad_0012[2]; //0x0012 + uint32_t N0000785B; //0x0014 +}; //Size: 0x0018 +static_assert(sizeof(ValueTriggerBoolean) == 0x18); + +class DampingFloat : public REManagedObject +{ +public: + float current; //0x0010 + float source; //0x0014 + float dampingTime; //0x0018 + float dampingRate; //0x001C + char pad_0020[16]; //0x0020 + uint32_t N00007885; //0x0030 + float target; //0x0034 + float N00007886; //0x0038 + float N00007891; //0x003C + float progressRate; //0x0040 +}; //Size: 0x0044 +static_assert(sizeof(DampingFloat) == 0x44); + +class TwirlerCameraSettings : public REManagedObject +{ +public: + wchar_t *settingsPath; //0x0010 + char pad_0018[16]; //0x0018 + uint32_t N000078BE; //0x0028 + uint32_t N000078DE; //0x002C + float N000078BF; //0x0030 + char pad_0034[4]; //0x0034 + class REAnimationCurve *animationCurve; //0x0038 + class REAnimationCurve *animationCurve2; //0x0040 + float N000078C2; //0x0048 + float N000078E4; //0x004C + float N000078C3; //0x0050 + float N000078E7; //0x0054 + float cameraSensitivity; //0x0058 + char pad_005C[20]; //0x005C + float sensitivityScale; //0x0070 + char pad_0074[4]; //0x0074 +}; //Size: 0x0078 +static_assert(sizeof(TwirlerCameraSettings) == 0x78); + +class REAnimationCurve : public REManagedObject +{ +public: + uint32_t length; //0x0010 + float loopStartTime; //0x0014 + float loopEndTime; //0x0018 + float minValue; //0x001C + float maxValue; //0x0020 + uint16_t loopWrapNo; //0x0024 + char pad_0026[2]; //0x0026 + bool enableClamp; //0x0028 + char pad_0029[3]; //0x0029 + float N00007918; //0x002C + class CurveKeyFrames *keyframes; //0x0030 + class CurveKeyFrames *keyframes2; //0x0038 + char pad_0040[16]; //0x0040 +}; //Size: 0x0050 +static_assert(sizeof(REAnimationCurve) == 0x50); + +class REActorMotion : public REComponent +{ +public: + class REMotion *motion; //0x0030 + char pad_0038[16]; //0x0038 + class N00007A09 *N00007950; //0x0048 + char pad_0050[32]; //0x0050 +}; //Size: 0x0070 +static_assert(sizeof(REActorMotion) == 0x70); + +class REAnimation : public REComponent +{ +public: + char pad_0030[20]; //0x0030 + uint32_t playState; //0x0044 + char pad_0048[4]; //0x0048 + float currentPlaySpeed; //0x004C + float secondaryPlaySpeed; //0x0050 + float unk54; //0x0054 + char pad_0058[4]; //0x0058 + float updateIntervalFrame; //0x005C + char pad_0060[8]; //0x0060 + bool enabled; //0x0068 + bool playReset; //0x0069 + bool N00002408; //0x006A + bool N00002411; //0x006B + bool N00002409; //0x006C + bool visualUpdate; //0x006D + bool skipUpdate; //0x006E + bool N000023ED; //0x006F + bool N0000B974; //0x0070 + bool N00002415; //0x0071 + bool alwaysCallBeginEnd; //0x0072 + bool N00002402; //0x0073 + bool afterParentAnimation; //0x0074 + bool forceSkipUpdate; //0x0075 + bool enableIntervalUpdateScondaryAnimation; //0x0076 + char pad_0077[1]; //0x0077 +}; //Size: 0x0078 +static_assert(sizeof(REAnimation) == 0x78); + +class REMotion : public REAnimation +{ +public: + char pad_0078[48]; //0x0078 + class N0000256E *joints; //0x00A8 + uint32_t numJoints; //0x00B0 + char pad_00B4[4]; //0x00B4 + class REGameObject *gameObject; //0x00B8 + char pad_00C0[89]; //0x00C0 + bool updateRootOnly; //0x0119 + char pad_011A[174]; //0x011A + class JointList *joints2; //0x01C8 + int32_t numJoints2; //0x01D0 + char pad_01D4[512]; //0x01D4 + float N00002458; //0x03D4 + char pad_03D8[32]; //0x03D8 + uint32_t intervalUpdateOption; //0x03F8 + char pad_03FC[4]; //0x03FC +}; //Size: 0x0400 +static_assert(sizeof(REMotion) == 0x400); + +class N00007A09 +{ +public: + class REActorLayer *N00007A0A; //0x0000 + char pad_0008[64]; //0x0008 +}; //Size: 0x0048 +static_assert(sizeof(N00007A09) == 0x48); + +class REActorLayer : public REManagedObject +{ +public: + char pad_0010[56]; //0x0010 +}; //Size: 0x0048 +static_assert(sizeof(REActorLayer) == 0x48); + +class JointList +{ +public: + Matrix4x4f joints[2048]; //0x0000 +}; //Size: 0x20000 +static_assert(sizeof(JointList) == 0x20000); + +class N00007E99 +{ +public: + Matrix4x4f N00007E9A; //0x0000 +}; //Size: 0x0040 +static_assert(sizeof(N00007E99) == 0x40); + +class N00007EEE +{ +public: + class N00003730 *N00007EEF; //0x0000 + char pad_0008[128]; //0x0008 +}; //Size: 0x0088 +static_assert(sizeof(N00007EEE) == 0x88); + +class DotNetString_Implementation : public REManagedObject +{ +public: + class REManagedObject *N000036B9; //0x0010 + char pad_0018[8]; //0x0018 +}; //Size: 0x0020 +static_assert(sizeof(DotNetString_Implementation) == 0x20); + +class DotNetGenericList : public REManagedObject +{ +public: + class REArrayBase *data; //0x0010 + char pad_0018[72]; //0x0018 +}; //Size: 0x0060 +static_assert(sizeof(DotNetGenericList) == 0x60); + +class N00003730 +{ +public: + char pad_0000[136]; //0x0000 +}; //Size: 0x0088 +static_assert(sizeof(N00003730) == 0x88); + +class N00003745 +{ +public: + class REJoint *joints[2048]; //0x0000 +}; //Size: 0x4000 +static_assert(sizeof(N00003745) == 0x4000); + +class N0000379E +{ +public: + Matrix4x4f worldMatrix; //0x0000 +}; //Size: 0x0040 +static_assert(sizeof(N0000379E) == 0x40); + +class JointMatrices +{ +public: + class N0000379E data[2048]; //0x0000 +}; //Size: 0x20000 +static_assert(sizeof(JointMatrices) == 0x20000); + +class REJointDesc +{ +public: + wchar_t *name; //0x0000 + uint32_t nameHash; //0x0008 + int16_t parentJoint; //0x000C minus 1 + int16_t jointNumber; //0x000E + Vector4f offset; //0x0010 + float N000037B4; //0x0020 + float N0000377B; //0x0024 + float N00003770; //0x0028 + float N0000377E; //0x002C + float N00003771; //0x0030 + float N00003781; //0x0034 + float N00003772; //0x0038 + float N00003784; //0x003C +}; //Size: 0x0040 +static_assert(sizeof(REJointDesc) == 0x40); + +class PhysicsCollidableBase : public REComponent +{ +public: + char pad_0030[32]; //0x0030 +}; //Size: 0x0050 +static_assert(sizeof(PhysicsCollidableBase) == 0x50); + +class PhysicsCharacterController : public PhysicsCollidableBase +{ +public: + uint32_t N00006EB8; //0x0050 + int32_t movementFlags; //0x0054 + float height; //0x0058 + float radius; //0x005C + uint32_t N00006EBA; //0x0060 + uint32_t N00001828; //0x0064 + float N00006EBB; //0x0068 + float slopeLimit; //0x006C + float volumeGrowth; //0x0070 + float movementThreshold; //0x0074 + float N00006EE9; //0x0078 + float slideMovementLimit; //0x007C + char pad_0080[8]; //0x0080 + int32_t N00006EEB; //0x0088 + char pad_008C[4]; //0x008C + Vector3f gravityDir; //0x0090 + char pad_009C[20]; //0x009C + uint16_t groupId; //0x00B0 + char pad_00B2[2]; //0x00B2 + bool localMode; //0x00B4 + char pad_00B5[1]; //0x00B5 + bool ignoreRotation; //0x00B6 + bool ignoreParentRotation; //0x00B7 + char pad_00B8[136]; //0x00B8 + Vector3f position; //0x0140 + char pad_014C[156]; //0x014C + class PhysicsCollidable *collidable; //0x01E8 + class PhysicsFilterInfo *filterInfo; //0x01F0 + char pad_01F8[56]; //0x01F8 +}; //Size: 0x0230 +static_assert(sizeof(PhysicsCharacterController) == 0x230); + +class RopewayCameraSystem : public REBehavior +{ +public: + char pad_0048[8]; //0x0048 + float motionCameraSpeedScale; //0x0050 + char pad_0054[1]; //0x0054 + uint8_t N000009D7; //0x0055 + char pad_0056[2]; //0x0056 + class DotNetGenericList *cameraControllerInfos; //0x0058 + class RopewayCameraInterpolateSettings *cameraInterpSettings; //0x0060 + float rayCastStartOffset; //0x0068 + float maxViewShieldLength; //0x006C + class CollisionSystemAsyncCastRayHandle *castHandleTerrain; //0x0070 + class CollisionSystemAsyncCastSphereHandle *castHandleCharacter; //0x0078 + class CollisionSystemAsyncCastRayHandle *castHandleAim; //0x0080 + class REGameObject *cameraGameObject; //0x0088 + char pad_0090[8]; //0x0090 + class RopewayPlayerCameraController *cameraController; //0x0098 + class RopewayPlayerCameraController *previousController; //0x00A0 + class REManagedObject *N00006F3D; //0x00A8 + class DampingFloat *damping; //0x00B0 + class ValueTriggerBoolean *isExistStickInput; //0x00B8 + class RECamera *mainCamera; //0x00C0 + class DotNetGenericList *fixCameraIdentifiers; //0x00C8 + class DotNetGenericList *cameraGateInfoContainers; //0x00D0 + class RERenderCaptureToTexture *N00006F43; //0x00D8 + class REJoint *playerJoint; //0x00E0 + class RopewayMainCameraController *mainCameraController; //0x00E8 + bool isUseWideMonitor; //0x00F0 + char pad_00F1[7]; //0x00F1 + class REManagedObject *N00003EEC; //0x00F8 + bool N00003EED; //0x0100 + char pad_0101[71]; //0x0101 + class DotNetGenericList *stringList; //0x0148 + char pad_0150[8]; //0x0150 +}; //Size: 0x0158 +static_assert(sizeof(RopewayCameraSystem) == 0x158); + +class N000070F5 +{ +public: + Matrix3x4f localMatrix; //0x0000 +}; //Size: 0x0030 +static_assert(sizeof(N000070F5) == 0x30); + +class RopewayIkController : public REBehavior +{ +public: + char pad_0048[12]; //0x0048 + uint8_t updateTiming; //0x0054 + char pad_0055[3]; //0x0055 + uint8_t enableIkBits; //0x0058 + char pad_0059[3]; //0x0059 + int8_t defaultSkipIkBits; //0x005C + char pad_005D[3]; //0x005D + class REArrayThing *N000071C9; //0x0060 + class REArrayThing *N000071CA; //0x0068 + int32_t ikLegKind; //0x0070 + float fooatAlignBorderAngle; //0x0074 + class SystemString *someString; //0x0078 + bool useSkipIkForLeg; //0x0080 + char pad_0081[3]; //0x0081 + int32_t skipIkForLegBits; //0x0084 + bool useFootLockForLeg; //0x0088 + bool unlockFootOnAdjustTerrain; //0x0089 + bool unlockFootOnPressing; //0x008A + bool unlockFootOnMotionInterpolating; //0x008B + bool unlockFootOnPreventeringPenetrate; //0x008C + char pad_008D[3]; //0x008D + int16_t monitoringMotionLayerNoForLeg; //0x0090 + char pad_0092[2]; //0x0092 + int32_t spineKind; //0x0094 + char pad_0098[8]; //0x0098 + class SystemString *someString2; //0x00A0 + char pad_00A8[40]; //0x00A8 + class SystemString *someString3; //0x00D0 + float armDampingRate; //0x00D8 + float armDampingTime; //0x00DC + float defaultArmActivateTime; //0x00E0 + float defaultArmResetTime; //0x00E4 + float armRayRadius; //0x00E8 + float armRayIntervalFrame; //0x00EC + int32_t wristKind; //0x00F0 + char pad_00F4[4]; //0x00F4 + class N0000A9C1 *armFitIkUserData; //0x00F8 + char pad_0100[8]; //0x0100 + int32_t ikWristSolveMode; //0x0108 + int32_t liftUpWristOnGround; //0x010C + bool useSkipIkForWrist; //0x0110 + char pad_0111[3]; //0x0111 + int32_t skipIkForWristBits; //0x0114 + float skipIkDampingRateForWrist; //0x0118 + bool useFootLockForWrist; //0x011C + char pad_011D[3]; //0x011D + int32_t footLockOptionBitsForWrist; //0x0120 + int16_t monitoringMotionLayerNoForWrist; //0x0124 + char pad_0126[2]; //0x0126 + bool setupped; //0x0128 + bool setuppedHumanRetargetIk; //0x0129 + char pad_012A[2]; //0x012A + int32_t legStepStatus; //0x012C + bool alignedFoot; //0x0130 + char pad_0131[3]; //0x0131 + float alignedFootAngle; //0x0134 + char pad_0138[4]; //0x0138 + bool alignedForeFoot; //0x013C + char pad_013D[3]; //0x013D + float N0000A953; //0x0140 + int32_t appliedSkipIkForLegBits; //0x0144 + int32_t appliedFootLockForLegBits; //0x0148 + char pad_014C[4]; //0x014C + void *lookAtTarget; //0x0150 + bool autoLookAtEnable; //0x0158 + char pad_0159[15]; //0x0159 + class REArrayThing *N0000A958; //0x0168 + int32_t appliedSkipIkForWristBits; //0x0170 + int32_t appliedFootLockForWristBits; //0x0174 + class IkControlStatusArray *controlStatuses; //0x0178 + char pad_0180[16]; //0x0180 + class REManagedObject *N0000A95D; //0x0190 + char pad_0198[24]; //0x0198 + class REManagedObject *N0000A961; //0x01B0 + class REManagedObject *N0000A962; //0x01B8 + char pad_01C0[8]; //0x01C0 + class ObjectPointer *jointPtr; //0x01C8 + char pad_01D0[216]; //0x01D0 +}; //Size: 0x02A8 +static_assert(sizeof(RopewayIkController) == 0x2A8); + +class UserData : public REManagedObject +{ +public: + class REString name; //0x0010 +}; //Size: 0x0030 +static_assert(sizeof(UserData) == 0x30); + +class N0000A9C1 : public UserData +{ +public: + class REManagedObject *N0000A9C3; //0x0030 +}; //Size: 0x0038 +static_assert(sizeof(N0000A9C1) == 0x38); + +class SystemString : public REManagedObject +{ +public: + int32_t size; //0x0010 + wchar_t data[256]; //0x0014 +}; //Size: 0x0214 +static_assert(sizeof(SystemString) == 0x214); + +class N0000AA93 : public REManagedObject +{ +public: + class REClassInfo *N0000AA95; //0x0010 + char pad_0018[112]; //0x0018 +}; //Size: 0x0088 +static_assert(sizeof(N0000AA93) == 0x88); + +class N0000AAAC : public REManagedObject +{ +public: + char pad_0010[48]; //0x0010 +}; //Size: 0x0040 +static_assert(sizeof(N0000AAAC) == 0x40); + +class ObjectPointer : public REManagedObject +{ +public: + class REClassInfo *classInfo; //0x0010 + uint32_t num1; //0x0018 + uint32_t num2; //0x001C + class REManagedObject *object; //0x0020 + char pad_0028[112]; //0x0028 +}; //Size: 0x0098 +static_assert(sizeof(ObjectPointer) == 0x98); + +class REVariableList +{ +public: + char pad_0000[8]; //0x0000 + class N0000ADA4 *data; //0x0008 + int32_t num; //0x0010 + int32_t maxItems; //0x0014 +}; //Size: 0x0018 +static_assert(sizeof(REVariableList) == 0x18); + +class N0000ADA4 +{ +public: + class VariableDescriptor *descriptors[256]; //0x0000 +}; //Size: 0x0800 +static_assert(sizeof(N0000ADA4) == 0x800); + +class VariableDescriptor +{ +public: + char *name; //0x0000 + uint32_t nameHash; //0x0008 + uint16_t flags1; //0x000C + uint16_t N00008140; //0x000E + void* function; //0x0010 + int32_t flags; //0x0018 (flags AND 0x1F) gives var type (via::clr::reflection::TypeKind) + uint32_t typeFqn; //0x001C + char *typeName; //0x0020 + int32_t getter; //0x0028 + union //0x002C 1 == pointer? 3 == builtin? + { + uint32_t variableType; //0x0000 + uint32_t destructor; //0x0000 + }; + class StaticVariableDescriptor *staticVariableData; //0x0030 + int32_t setter; //0x0038 + int32_t attributes; //0x003C + char pad_0040[8]; //0x0040 +}; //Size: 0x0048 +static_assert(sizeof(VariableDescriptor) == 0x48); + +class N0000B627 +{ +public: + char pad_0000[8]; //0x0000 + class N0000B632 *N0000B629; //0x0008 + char pad_0010[56]; //0x0010 +}; //Size: 0x0048 +static_assert(sizeof(N0000B627) == 0x48); + +class N0000B632 +{ +public: + char pad_0000[136]; //0x0000 +}; //Size: 0x0088 +static_assert(sizeof(N0000B632) == 0x88); + +class REMotionStructure : public REComponent +{ +public: +}; //Size: 0x0030 +static_assert(sizeof(REMotionStructure) == 0x30); + +class SkeletonResourceHandle +{ +public: + class N0000B89B *N0000B899; //0x0000 +}; //Size: 0x0008 +static_assert(sizeof(SkeletonResourceHandle) == 0x8); + +class JointDescDTbl +{ +public: + class JointDescData *data; //0x0000 + uint32_t num; //0x0008 + char pad_000C[4]; //0x000C +}; //Size: 0x0010 +static_assert(sizeof(JointDescDTbl) == 0x10); + +class REMotionDummySkeleton : public REMotionStructure +{ +public: + class SkeletonResourceHandle skeletonResourceHandle; //0x0030 + class JointDescDTbl jointDescTbl; //0x0038 + char pad_0048[8]; //0x0048 +}; //Size: 0x0050 +static_assert(sizeof(REMotionDummySkeleton) == 0x50); + +class N0000B89B +{ +public: + wchar_t name[64]; //0x0008 + + virtual void Function0(); + virtual void Function1(); + virtual void Function2(); + virtual void Function3(); + virtual void Function4(); + virtual void Function5(); + virtual void Function6(); + virtual void Function7(); + virtual void Function8(); + virtual void Function9(); +}; //Size: 0x0088 +static_assert(sizeof(N0000B89B) == 0x88); + +class JointDescData +{ +public: + class REJointDesc data[256]; //0x0000 +}; //Size: 0x4000 +static_assert(sizeof(JointDescData) == 0x4000); + +class StaticVariableDescriptor +{ +public: + uint16_t ownerTypeIndex; //0x0000 + char pad_0002[6]; //0x0002 + uint32_t variableIndex; //0x0008 index into some global array...? + uint16_t N00000839; //0x000C + int16_t N000009F5; //0x000E + uint32_t staticVariableOffset; //0x0010 of + char pad_0014[1]; //0x0014 +}; //Size: 0x0015 +static_assert(sizeof(StaticVariableDescriptor) == 0x15); + +class REMotionCamera : public REAnimation +{ +public: + char pad_0078[872]; //0x0078 + Vector4f position; //0x03E0 + Vector4f orientation; //0x03F0 + char pad_0400[68]; //0x0400 +}; //Size: 0x0444 +static_assert(sizeof(REMotionCamera) == 0x444); + +class RopewayMainCameraController : public REBehavior +{ +public: + char pad_0048[9]; //0x0048 + bool updateCamera; //0x0051 + char pad_0052[6]; //0x0052 + class RopewayCameraStatus *cameraStatus; //0x0058 + Vector4f cameraObjectPosition; //0x0060 + Vector4f cameraObjectRotation; //0x0070 + Vector4f cameraPosition; //0x0080 + Vector4f cameraRotation; //0x0090 + char pad_00A0[4]; //0x00A0 + float fov; //0x00A4 + bool controllerEnabled; //0x00A8 + char pad_00A9[3]; //0x00A9 + float switchBusyTime; //0x00AC + float switchInterpolationTime; //0x00B0 + char pad_00B4[4]; //0x00B4 + class REAnimationCurve *N00000817; //0x00B8 + class DotNetGenericList *cameraShakes; //0x00C0 + class REGameObject *mainCameraObject; //0x00C8 + class RECamera *mainCamera; //0x00D0 + class REJoint *N0000081B; //0x00D8 + class AppliedCameraShakeParam *appliedCameraShakeParam; //0x00E0 + char pad_00E8[88]; //0x00E8 +}; //Size: 0x0140 +static_assert(sizeof(RopewayMainCameraController) == 0x140); + +class N00000878 +{ +public: + char pad_0000[8]; //0x0000 +}; //Size: 0x0008 +static_assert(sizeof(N00000878) == 0x8); + +class N0000087A : public N00000878 +{ +public: +}; //Size: 0x0008 +static_assert(sizeof(N0000087A) == 0x8); + +class N000008E5 +{ +public: + char pad_0000[328]; //0x0000 +}; //Size: 0x0148 +static_assert(sizeof(N000008E5) == 0x148); + +class AppliedCameraShakeParam : public REManagedObject +{ +public: + char pad_0010[48]; //0x0010 +}; //Size: 0x0040 +static_assert(sizeof(AppliedCameraShakeParam) == 0x40); + +class FieldInfoPtr +{ +public: + class FieldInfoArray *N00000A1A; //0x0000 +}; //Size: 0x0008 +static_assert(sizeof(FieldInfoPtr) == 0x8); + +class FieldInfo +{ +public: + uint16_t ownerType; //0x0000 + int16_t indexIntoSomeOtherArray; //0x0002 + uint16_t N0000133D; //0x0004 + uint16_t N00001380; //0x0006 + char pad_0008[8]; //0x0008 + uint8_t N0000135D; //0x0010 + char pad_0011[7]; //0x0011 + void* get; //0x0018 +}; //Size: 0x0020 +static_assert(sizeof(FieldInfo) == 0x20); + +class FieldInfoArray +{ +public: + class FieldInfo N00000A1D[2000000]; //0x0000 +}; //Size: 0x3D09000 +static_assert(sizeof(FieldInfoArray) == 0x3D09000); + +class TypeListArrayPtr +{ +public: + class TypeListArray *N00000A47; //0x0000 +}; //Size: 0x0008 +static_assert(sizeof(TypeListArrayPtr) == 0x8); + +class TypeListArray +{ +public: + class REClassInfo N00000A51[100000]; //0x0000 +}; //Size: 0x7A1200 +static_assert(sizeof(TypeListArray) == 0x7A1200); + +class GlobalArrayData2 +{ +public: + char pad_0000[104]; //0x0000 + class N00000A8A *N00000A6A; //0x0068 + class REObjectInfo *objectInfo; //0x0070 +}; //Size: 0x0078 +static_assert(sizeof(GlobalArrayData2) == 0x78); + +class N00000A8A +{ +public: + char pad_0000[72]; //0x0000 +}; //Size: 0x0048 +static_assert(sizeof(N00000A8A) == 0x48); + +class SomeGlobalArrayThingPtr +{ +public: + class N00000AA4 *N00000A9B; //0x0000 +}; //Size: 0x0008 +static_assert(sizeof(SomeGlobalArrayThingPtr) == 0x8); + +class N00000CB2 +{ +public: + char pad_0000[8]; //0x0000 +}; //Size: 0x0008 +static_assert(sizeof(N00000CB2) == 0x8); + +class N00001242 +{ +public: + char pad_0000[56]; //0x0000 +}; //Size: 0x0038 +static_assert(sizeof(N00001242) == 0x38); + +class ContainerThing +{ +public: + class N00001283 *data; //0x0000 + uint32_t size; //0x0008 + char pad_000C[4]; //0x000C +}; //Size: 0x0010 +static_assert(sizeof(ContainerThing) == 0x10); + +class N00000AA4 +{ +public: + class N00000CB2 N00000AA7[127]; //0x0008 + char pad_0400[280]; //0x0400 + class N00001242 N00000ACB[256]; //0x0518 + char pad_3D18[88]; //0x3D18 + class ContainerThing staticVariableLists[6]; //0x3D70 + char pad_3DD0[15008]; //0x3DD0 + + virtual void Function0(); + virtual void Function1(); + virtual void Function2(); + virtual void Function3(); + virtual void Function4(); + virtual void Function5(); + virtual void Function6(); + virtual void Function7(); + virtual void Function8(); + virtual void Function9(); +}; //Size: 0x7870 +static_assert(sizeof(N00000AA4) == 0x7870); + +class N00001283 +{ +public: + class StaticVariables *N00001284[100000]; //0x0000 +}; //Size: 0xC3500 +static_assert(sizeof(N00001283) == 0xC3500); + +class StaticVariables +{ +public: + char pad_0000[72]; //0x0000 +}; //Size: 0x0048 +static_assert(sizeof(StaticVariables) == 0x48); + +class StaticVariables_RopewayCameraSystem +{ +public: + int32_t N000012C8; //0x0000 + int32_t N000012D1; //0x0004 + float N000012C9; //0x0008 + float N000012D4; //0x000C + float N000012CA; //0x0010 + float N000012D7; //0x0014 + float N000012CB; //0x0018 + char pad_001C[2148]; //0x001C +}; //Size: 0x0880 +static_assert(sizeof(StaticVariables_RopewayCameraSystem) == 0x880); + +class RERenderLayer : public REManagedObject +{ +public: + char pad_0010[104]; //0x0010 +}; //Size: 0x0078 +static_assert(sizeof(RERenderLayer) == 0x78); + +class RenderBounds +{ +public: + Vector2f top; //0x0000 + Vector2f bottom; //0x0008 +}; //Size: 0x0010 +static_assert(sizeof(RenderBounds) == 0x10); + +class RERenderLayerScene : public RERenderLayer +{ +public: + class RECamera *camera; //0x0078 + char pad_0080[8]; //0x0080 + class RenderTargetState *targetStates[16]; //0x0088 + char pad_0108[4544]; //0x0108 + class RenderBounds renderBounds[3]; //0x12C8 + char pad_12F8[224]; //0x12F8 +}; //Size: 0x13D8 +static_assert(sizeof(RERenderLayerScene) == 0x13D8); + +class RenderTargetState +{ +public: + char pad_0008[56]; //0x0008 + + virtual void Function0(); + virtual void Function1(); + virtual void Function2(); + virtual void Function3(); + virtual void Function4(); + virtual void Function5(); + virtual void Function6(); + virtual void Function7(); + virtual void Function8(); + virtual void Function9(); +}; //Size: 0x0040 +static_assert(sizeof(RenderTargetState) == 0x40); + +class N000026F0 +{ +public: + char pad_0000[76]; //0x0000 + float N0000270E; //0x004C + class REJoint *joint; //0x0050 + char pad_0058[48]; //0x0058 +}; //Size: 0x0088 +static_assert(sizeof(N000026F0) == 0x88); + +class RopewaySystemRingBufferController : public REBehavior +{ +public: + char pad_0048[128]; //0x0048 +}; //Size: 0x00C8 +static_assert(sizeof(RopewaySystemRingBufferController) == 0xC8); + +class RopewayIlluminationManagerPtr +{ +public: + class RopewayIlluminationManager *N000013CC; //0x0000 +}; //Size: 0x0008 +static_assert(sizeof(RopewayIlluminationManagerPtr) == 0x8); + +class RopewayIlluminationManager : public REBehavior +{ +public: + char pad_0048[8]; //0x0048 + class REManagedObject *N000013E2; //0x0050 + class DotNetGenericDictionary *mapIdsToIlluminationContainer; //0x0058 + uint32_t shouldUseFlashlight; //0x0060 + uint32_t someCounter; //0x0064 + bool shouldUseFlashlight2; //0x0068 + char pad_0069[7]; //0x0069 + class REManagedObject *N000013FB; //0x0070 + class DotNetGenericList *N000013F4; //0x0078 +}; //Size: 0x0080 +static_assert(sizeof(RopewayIlluminationManager) == 0x80); + +class RopewayStayAreaController : public REBehavior +{ +public: + char pad_0048[8]; //0x0048 + uint32_t N00001410; //0x0050 + uint32_t N00001444; //0x0054 + uint32_t areaId; //0x0058 + uint32_t N0000143A; //0x005C + uint32_t N00001412; //0x0060 + uint32_t N00001446; //0x0064 + uint32_t previousAreaId; //0x0068 + uint32_t N0000143D; //0x006C + uint32_t areaId3; //0x0070 + uint32_t N00001441; //0x0074 + uint32_t areaId4; //0x0078 + char pad_007C[116]; //0x007C +}; //Size: 0x00F0 +static_assert(sizeof(RopewayStayAreaController) == 0xF0); + +class RopewayCameraSystemPtr +{ +public: + class RopewayCameraSystem *N000013EC; //0x0000 +}; //Size: 0x0008 +static_assert(sizeof(RopewayCameraSystemPtr) == 0x8); + +class CameraControllerList : public REManagedObject +{ +public: + char pad_0010[16]; //0x0010 + class RopewayCameraControllerInfo *N00001407[64]; //0x0020 +}; //Size: 0x0220 +static_assert(sizeof(CameraControllerList) == 0x220); + +class RopewayCameraControllerInfo : public REManagedObject +{ +public: + char pad_0010[8]; //0x0010 + class REGameObject *controllerObject; //0x0018 + char pad_0020[8]; //0x0020 +}; //Size: 0x0028 +static_assert(sizeof(RopewayCameraControllerInfo) == 0x28); + +class DotNetGenericDictionary : public REManagedObject +{ +public: + class REArrayBase *keys; //0x0010 + class REArrayBase *values; //0x0018 + char pad_0020[16]; //0x0020 + class REManagedObject *equalityComparer; //0x0030 +}; //Size: 0x0038 +static_assert(sizeof(DotNetGenericDictionary) == 0x38); + +class N00001440 : public REManagedObject +{ +public: + char pad_0010[64]; //0x0010 +}; //Size: 0x0050 +static_assert(sizeof(N00001440) == 0x50); + +class N0000144E : public REManagedObject +{ +public: + char pad_0010[64]; //0x0010 +}; //Size: 0x0050 +static_assert(sizeof(N0000144E) == 0x50); + +class RopewayCameraInterpolationPrame : public REManagedObject +{ +public: + class REGameObject *owner; //0x0010 + class RopewayCameraPositionParam *posParam1; //0x0018 + class RopewayCameraPositionParam *posParam2; //0x0020 + class DampingFloat *dampingFloat; //0x0028 +}; //Size: 0x0030 +static_assert(sizeof(RopewayCameraInterpolationPrame) == 0x30); + +class RopewayCameraPositionParam : public REManagedObject +{ +public: + class REGameObject *attachedOwner; //0x0010 + class REJoint *attachedJoint; //0x0018 + class RopewayCameraTransitionParam *transitionParam; //0x0020 +}; //Size: 0x0028 +static_assert(sizeof(RopewayCameraPositionParam) == 0x28); + +class RopewayCameraTransitionParam : public REManagedObject +{ +public: + class RopewayPlayerCameraParam *playerCameraParam; //0x0010 + char pad_0018[136]; //0x0018 +}; //Size: 0x00A0 +static_assert(sizeof(RopewayCameraTransitionParam) == 0xA0); + +class RopewayPlayerCameraParam : public REManagedObject +{ +public: + class REAnimationCurve *curve1; //0x0010 + Vector2f vec; //0x0018 + class REAnimationCurve *curve2; //0x0020 + class REAnimationCurve *curve3; //0x0028 + class SystemString *name; //0x0030 + char pad_0038[104]; //0x0038 +}; //Size: 0x00A0 +static_assert(sizeof(RopewayPlayerCameraParam) == 0xA0); + +class RopewaySetPostEffectParam : public REBehavior +{ +public: + char pad_0048[8]; //0x0048 + uint32_t N0000156E; //0x0050 + uint32_t N000015AE; //0x0054 + char pad_0058[24]; //0x0058 + class DotNetGenericDictionary *N00001572; //0x0070 + char pad_0078[56]; //0x0078 +}; //Size: 0x00B0 +static_assert(sizeof(RopewaySetPostEffectParam) == 0xB0); + +class RopewayPostEffectController : public REBehavior +{ +public: + char pad_0048[8]; //0x0048 + class REAnimationCurve *curve1; //0x0050 + class REAnimationCurve *curve2; //0x0058 + class DotNetGenericList *N000015B6; //0x0060 + char pad_0068[24]; //0x0068 +}; //Size: 0x0080 +static_assert(sizeof(RopewayPostEffectController) == 0x80); + +class RESecondaryAnimation : public REComponent +{ +public: + class REMotion *motion; //0x0030 + char pad_0038[4]; //0x0038 + int16_t priority; //0x003C + char pad_003E[2]; //0x003E + int32_t updateTiming; //0x0040 + bool enabled; //0x0044 + char pad_0045[3]; //0x0045 +}; //Size: 0x0048 +static_assert(sizeof(RESecondaryAnimation) == 0x48); + +class ActorLayerList +{ +public: + class N00001630 *data; //0x0000 + uint32_t numLayers; //0x0008 + uint32_t numAllocated; //0x000C +}; //Size: 0x0010 +static_assert(sizeof(ActorLayerList) == 0x10); + +class REActorMotionCamera : public RESecondaryAnimation +{ +public: + class ActorLayerList layers; //0x0048 +}; //Size: 0x0058 +static_assert(sizeof(REActorMotionCamera) == 0x58); + +class N00001630 +{ +public: + class REActorLayer *layers[2048]; //0x0000 +}; //Size: 0x4000 +static_assert(sizeof(N00001630) == 0x4000); + +class RopewaySweetLightController : public REBehavior +{ +public: + char pad_0048[8]; //0x0048 + uint32_t N00001470; //0x0050 + uint32_t N0000152A; //0x0054 + uint32_t N00001471; //0x0058 + uint32_t N0000152D; //0x005C + class RERenderSpotLight *renderSpotLight; //0x0060 + class RERenderProjectionSpotlight *renderProjectionSpotLight; //0x0068 + class RopewaySpotLightParam *param1; //0x0070 + class RopewaySpotLightParam *param2; //0x0078 + char pad_0080[8]; //0x0080 +}; //Size: 0x0088 +static_assert(sizeof(RopewaySweetLightController) == 0x88); + +class RERenderLight : public REComponent +{ +public: + Vector4f color; //0x0030 + char pad_0040[24]; //0x0040 + float brightness; //0x0058 + float bounceIntensity; //0x005C + float tempature; //0x0060 + float minRoughness; //0x0064 + char pad_0068[4]; //0x0068 + uint32_t importantLevel; //0x006C + char pad_0070[48]; //0x0070 + Vector3f activeColor; //0x00A0 + float N00001546; //0x00AC + char pad_00B0[82]; //0x00B0 + bool forceShadowCacheEnable; //0x0102 + char pad_0103[1]; //0x0103 + bool blackBodyRadiation; //0x0104 + char pad_0105[107]; //0x0105 +}; //Size: 0x0170 +static_assert(sizeof(RERenderLight) == 0x170); + +class RERenderSpotLight : public RERenderLight +{ +public: + char pad_0170[9]; //0x0170 + bool shadowEnable; //0x0179 + char pad_017A[22]; //0x017A + int32_t shadowCastFlags; //0x0190 + char pad_0194[420]; //0x0194 + float N0000150F; //0x0338 + float N00001597; //0x033C + float radius; //0x0340 + float illuminanceThreshold; //0x0344 + float cone; //0x0348 + float N0000159D; //0x034C + float N00001512; //0x0350 + float shadowNearPlane; //0x0354 + float detailShadow; //0x0358 + bool N00002304; //0x035C + char pad_035D[3]; //0x035D + int32_t N00001514; //0x0360 + char pad_0364[28]; //0x0364 +}; //Size: 0x0380 +static_assert(sizeof(RERenderSpotLight) == 0x380); + +class RERenderProjectionSpotlight : public RERenderSpotLight +{ +public: + char pad_0380[16]; //0x0380 +}; //Size: 0x0390 +static_assert(sizeof(RERenderProjectionSpotlight) == 0x390); + +class RopewaySpotLightParam : public REManagedObject +{ +public: + char pad_0010[80]; //0x0010 + uint32_t N00002282; //0x0060 + char pad_0064[92]; //0x0064 + float N000022BD; //0x00C0 + float N000022DF; //0x00C4 + float N000022BE; //0x00C8 + float N000022E3; //0x00CC + float N000022BF; //0x00D0 + float N000022E5; //0x00D4 + char pad_00D8[184]; //0x00D8 +}; //Size: 0x0190 +static_assert(sizeof(RopewaySpotLightParam) == 0x190); + +class RopewaySweetLightManager : public REBehavior +{ +public: + char pad_0048[8]; //0x0048 + class SweetLightContextContainer *contexts; //0x0050 + class RopewaySweetLightParam *param1; //0x0058 + class RopewaySweetLightParam *param2; //0x0060 + uint8_t N0000154E; //0x0068 + char pad_0069[7]; //0x0069 + class REManagedObject *N0000154F; //0x0070 +}; //Size: 0x0078 +static_assert(sizeof(RopewaySweetLightManager) == 0x78); + +class RopewaySweetLightParam : public REManagedObject +{ +public: + class RopewaySpotLightParam *spotlight; //0x0010 +}; //Size: 0x0018 +static_assert(sizeof(RopewaySweetLightParam) == 0x18); + +class RopewaySweetLightManagerContext : public REManagedObject +{ +public: + class RopewaySweetLightController *controller; //0x0010 + class RopewaySpotLightParam *param1; //0x0018 + class RopewaySpotLightParam *param2; //0x0020 + char pad_0028[8]; //0x0028 + class DotNetGenericList *N000015B1; //0x0030 + class RopewaySpotLightParam *param3; //0x0038 + char pad_0040[8]; //0x0040 +}; //Size: 0x0048 +static_assert(sizeof(RopewaySweetLightManagerContext) == 0x48); + +class REArrayBase : public REManagedObject +{ +public: + class REClassInfo *containedType; //0x0010 + int32_t num1; //0x0018 + int32_t numElements; //0x001C +}; //Size: 0x0020 +static_assert(sizeof(REArrayBase) == 0x20); + +class SweetLightContextContainer : public REArrayBase +{ +public: + class RopewaySweetLightManagerContext *data[2]; //0x0020 +}; //Size: 0x0030 +static_assert(sizeof(SweetLightContextContainer) == 0x30); + +class REArrayThing : public REArrayBase +{ +public: + char pad_0020[1096]; //0x0020 +}; //Size: 0x0468 +static_assert(sizeof(REArrayThing) == 0x468); + +class RopewaySurvivorCharacterController : public REBehavior +{ +public: + char pad_0048[16]; //0x0048 + class REJoint *constJoint; //0x0058 + class DampingFloat *radius; //0x0060 + class DampingFloat *height; //0x0068 + class DampingVec3 *offset; //0x0070 + uint32_t offsetType; //0x0078 + char pad_007C[4]; //0x007C + class DotNetGenericList *controllerRequests; //0x0080 + char pad_0088[8]; //0x0088 + class PhysicsCharacterController *physicsCharacterController; //0x0090 + class PhysicsRequestSetCollider *physicsRequestSetCollider; //0x0098 + class RopewaySurvivorCharacterControllerUserData *userData; //0x00A0 + float N00001647; //0x00A8 + char pad_00AC[4]; //0x00AC + class PhysicsCollider *collider; //0x00B0 +}; //Size: 0x00B8 +static_assert(sizeof(RopewaySurvivorCharacterController) == 0xB8); + +class DampingVec3 : public REManagedObject +{ +public: + Vector3f N000015BC; //0x0010 + char pad_001C[20]; //0x001C + float N000015BF; //0x0030 + float N000015DB; //0x0034 + char pad_0038[16]; //0x0038 + uint32_t N000015C2; //0x0048 + char pad_004C[4]; //0x004C + Vector3f target; //0x0050 + char pad_005C[4]; //0x005C + float N000015C4; //0x0060 + float N000015EA; //0x0064 + char pad_0068[8]; //0x0068 + float N000015C8; //0x0070 + char pad_0074[4]; //0x0074 +}; //Size: 0x0078 +static_assert(sizeof(DampingVec3) == 0x78); + +class PhysicsRequestSetCollider : public PhysicsCollidableBase +{ +public: + char pad_0050[56]; //0x0050 +}; //Size: 0x0088 +static_assert(sizeof(PhysicsRequestSetCollider) == 0x88); + +class RopewaySurvivorCharacterControllerUserData : public UserData // what a NAME +{ +public: + class REPtrArray *data; //0x0030 + float N00001634; //0x0038 + float N0000165B; //0x003C +}; //Size: 0x0040 +static_assert(sizeof(RopewaySurvivorCharacterControllerUserData) == 0x40); + +class REPtrArray : public REArrayBase +{ +public: + class REManagedObject *data[2048]; //0x0020 +}; //Size: 0x4020 +static_assert(sizeof(REPtrArray) == 0x4020); + +class SurvivorCharacterControllerUserDataParam : public REManagedObject +{ +public: + char pad_0010[8]; //0x0010 + class SystemString *string1; //0x0018 + char pad_0020[8]; //0x0020 + class SystemString *string2; //0x0028 + class SurvivorControllerUserDataShape *shape; //0x0030 +}; //Size: 0x0038 +static_assert(sizeof(SurvivorCharacterControllerUserDataParam) == 0x38); + +class SurvivorControllerUserDataShape : public REManagedObject +{ +public: + class SystemString *jointName; //0x0010 + uint32_t N000016B6; //0x0018 + char pad_001C[20]; //0x001C + float f1; //0x0030 + float f2; //0x0034 + uint32_t N000016BA; //0x0038 + char pad_003C[4]; //0x003C +}; //Size: 0x0040 +static_assert(sizeof(SurvivorControllerUserDataShape) == 0x40); + +class PhysicsColliderVector +{ +public: + class N000017C9 *data; //0x0000 + uint32_t numElements; //0x0008 + uint32_t numAllocated; //0x000C +}; //Size: 0x0010 +static_assert(sizeof(PhysicsColliderVector) == 0x10); + +class PhysicsCollidable : public REManagedObject +{ +public: + uint32_t N000016F4; //0x0010 + char pad_0014[4]; //0x0014 + class PhysicsCapsuleShape *shape1; //0x0018 + class PhysicsCapsuleShape *shape2; //0x0020 + char pad_0028[8]; //0x0028 + class PhysicsFilterInfo *filterInfo; //0x0030 + char pad_0038[8]; //0x0038 + class REGameObject *owner; //0x0040 + uint32_t N000016FB; //0x0048 + uint32_t N000017B7; //0x004C + uint32_t N000016FC; //0x0050 + char pad_0054[4]; //0x0054 + class PhysicsColliderVector colliderControllers; //0x0058 interesting + char pad_0068[16]; //0x0068 +}; //Size: 0x0078 +static_assert(sizeof(PhysicsCollidable) == 0x78); + +class PhysicsCollider : public PhysicsCollidable +{ +public: + char pad_0078[288]; //0x0078 +}; //Size: 0x0198 +static_assert(sizeof(PhysicsCollider) == 0x198); + +class PhysicsShape : public REManagedObject +{ +public: + char pad_0010[24]; //0x0010 + class PhysicsCollider *parentCollider; //0x0028 + char pad_0030[16]; //0x0030 + Vector4f vec1; //0x0040 + Vector4f vec2; //0x0050 +}; //Size: 0x0060 +static_assert(sizeof(PhysicsShape) == 0x60); + +class PhysicsConvexShape : public PhysicsShape +{ +public: +}; //Size: 0x0060 +static_assert(sizeof(PhysicsConvexShape) == 0x60); + +class PhysicsCapsuleShape : public PhysicsConvexShape +{ +public: + Vector4f vec3; //0x0060 + Vector4f vec4; //0x0070 + float radius; //0x0080 + float N0000176C; //0x0084 + float N00001734; //0x0088 + char pad_008C[4]; //0x008C +}; //Size: 0x0090 +static_assert(sizeof(PhysicsCapsuleShape) == 0x90); + +class PhysicsFilterInfo : public REManagedObject +{ +public: + uint32_t layer; //0x0010 + uint32_t group; //0x0014 + uint32_t subGroup; //0x0018 + uint32_t ignoreSubGroup; //0x001C + int32_t maskBits; //0x0020 + char pad_0024[12]; //0x0024 +}; //Size: 0x0030 +static_assert(sizeof(PhysicsFilterInfo) == 0x30); + +class N000017C9 +{ +public: + class REBehavior *element[2048]; //0x0000 +}; //Size: 0x4000 +static_assert(sizeof(N000017C9) == 0x4000); + +class RopewaySurvivorTargetBankController : public REBehavior +{ +public: + char pad_0048[16]; //0x0048 + class REMotion *motion; //0x0058 + char pad_0060[32]; //0x0060 + class RopewaySurvivorPlayerCondition *playerCondition; //0x0080 +}; //Size: 0x0088 +static_assert(sizeof(RopewaySurvivorTargetBankController) == 0x88); + +class RopewaySurvivorPlayerCondition : public REBehavior +{ +public: + char pad_0048[12]; //0x0048 + int32_t survivorType; //0x0054 + bool ignoreBlow; //0x0058 + bool ignoreGrapple; //0x0059 + char pad_005A[6]; //0x005A + class RopewaySurvivorDefineDamageParam *damageParam; //0x0060 + bool isEvent; //0x0068 + bool isLight; //0x0069 + bool isCombat; //0x006A + bool isTension; //0x006B + bool isTense; //0x006C + bool isForceCaution; //0x006D + bool isForceDanger; //0x006E + char pad_006F[5]; //0x006F + bool enableFPSCamera; //0x0074 + char pad_0075[7]; //0x0075 + bool useTranceiver; //0x007C + char pad_007D[1]; //0x007D + bool forceUseFlashlight; //0x007E + bool manuallyLight; //0x007F + float autoHealStartTimer; //0x0080 + float autoHealTimer; //0x0084 + float poisonTimer; //0x0088 + float poisonAutoRecoveryTimer; //0x008C + float combatTimer; //0x0090 + float coughTimer; //0x0094 + float warmTimer; //0x0098 + float unknownfloat; //0x009C + class RopewayTimer *lightSwitchTimer; //0x00A0 + class RopewayTimer *burnTimer; //0x00A8 + class SurvivorConditionTimerTrigger *wetTimerTrigger; //0x00B0 + class SurvivorConditionTimerTrigger *dryTimerTrigger; //0x00B8 + char pad_00C0[16]; //0x00C0 + class REGameObject *flashlight; //0x00D0 + char pad_00D8[88]; //0x00D8 + void *N0000828D; //0x0130 + void *N0000828E; //0x0138 + void *N0000828F; //0x0140 + void *N00008290; //0x0148 + void *N00008291; //0x0150 + bool exceptional; //0x0158 + char pad_0159[3]; //0x0159 + int32_t wallMaterial; //0x015C + class REJoint *playerJoint; //0x0160 + char pad_0168[8]; //0x0168 + class SystemAction *actionVital; //0x0170 + class RopewaySurvivorPlayerController *playerController; //0x0178 + class RopewaySurvivorPlayerActionOrderer *actionOrderer; //0x0180 + char pad_0188[16]; //0x0188 + class RopewaySurvivorInventory *inventory; //0x0198 + class RopewaySurvivorEquipment *equipment; //0x01A0 + class REMotion *playerMotion; //0x01A8 + char pad_01B0[136]; //0x01B0 + class ActionTriggerInt *hitPointVitalTrigger; //0x0238 + class ActionTriggerInt *situationTrigger; //0x0240 + bool onFlashlight; //0x0248 + bool N00005FF6; //0x0249 + char pad_024A[134]; //0x024A + bool isPoison; //0x02D0 + char pad_02D1[3]; //0x02D1 + float dopingTimer; //0x02D4 + char pad_02D8[64]; //0x02D8 +}; //Size: 0x0318 +static_assert(sizeof(RopewaySurvivorPlayerCondition) == 0x318); + +class RopewayHandHeldItem : public REBehavior +{ +public: + char pad_0048[64]; //0x0048 +}; //Size: 0x0088 +static_assert(sizeof(RopewayHandHeldItem) == 0x88); + +class RopewayFlashLight : public RopewayHandHeldItem +{ +public: + char pad_0088[168]; //0x0088 + Vector4f targetPosition; //0x0130 + char pad_0140[60]; //0x0140 +}; //Size: 0x017C +static_assert(sizeof(RopewayFlashLight) == 0x17C); + +class RopewayTimerBase : public REManagedObject +{ +public: + int32_t mode; //0x0010 + float timeLimit; //0x0014 +}; //Size: 0x0018 +static_assert(sizeof(RopewayTimerBase) == 0x18); + +class RopewayTimer : public RopewayTimerBase +{ +public: + bool completeTrigger; //0x0018 + char pad_0019[3]; //0x0019 + int32_t functionType; //0x001C + float transitTime; //0x0020 + bool completed; //0x0024 + char pad_0025[3]; //0x0025 + int16_t completedCount; //0x0028 + char pad_002A[2]; //0x002A +}; //Size: 0x002C +static_assert(sizeof(RopewayTimer) == 0x2C); + +class RopewaySurvivorInventory : public REBehavior +{ +public: + char pad_0048[64]; //0x0048 + class RopewaySurvivorPlayerCondition *parentCondition; //0x0088 + char pad_0090[56]; //0x0090 +}; //Size: 0x00C8 +static_assert(sizeof(RopewaySurvivorInventory) == 0xC8); + +class RopewaySurvivorEquipment : public REBehavior +{ +public: + int32_t equipPartsForm; //0x0048 + char pad_004C[8]; //0x004C + int32_t equipType; //0x0054 + int32_t forceEquipType; //0x0058 + char pad_005C[4]; //0x005C + class RopewayImplementArm *mainWeapon; //0x0060 + class RopewayImplementArm *subWeapon; //0x0068 + class RopewayImplementGun *equippedWeapon; //0x0070 + class RopewayArmList *arms; //0x0078 + int32_t rapidFireNumber; //0x0080 + char pad_0084[12]; //0x0084 + class REManagedObject *valTrigger; //0x0090 + char pad_0098[104]; //0x0098 + class RopewaySurvivorPlayerCondition *parentCondition; //0x0100 + char pad_0108[24]; //0x0108 + float currentAccuracy; //0x0120 ReticleFitPoint + bool isPerfectAccuracy; //0x0124 IsReticleFit + char pad_0125[3]; //0x0125 +}; //Size: 0x0128 +static_assert(sizeof(RopewaySurvivorEquipment) == 0x128); + +class RopewayArmList : public REManagedObject +{ +public: + class RopewayArmList_Impl *data; //0x0010 +}; //Size: 0x0018 +static_assert(sizeof(RopewayArmList) == 0x18); + +class RopewayArmList_Impl : public REArrayBase +{ +public: + class RopewayImplementArm *arms[2048]; //0x0020 +}; //Size: 0x4020 +static_assert(sizeof(RopewayArmList_Impl) == 0x4020); + +class RopewayImplement : public REBehavior +{ +public: + char pad_0048[56]; //0x0048 + class REJoint *joint; //0x0080 + class RopewayImplementVirtualJoint *virtualJoint; //0x0088 + class RERenderMesh *mesh; //0x0090 + class REMotion *implementMotion; //0x0098 + class REMotion *parentMotion; //0x00A0 + class RopewayStayAreaController *stayAreaController; //0x00A8 + class RopewayIkController *ikController; //0x00B0 + class RopewayCharacterHandler *characterHandler; //0x00B8 + class RopewayMotionEventHandler *implementMotionHandler; //0x00C0 + class RopewayMotionEventHandler *parentMotionHandler; //0x00C8 + class RopewayWwiseContainerApp *wwiseContainerApp; //0x00D0 + char pad_00D8[8]; //0x00D8 + class RopewaySurvivorEquipment *parentEquipment; //0x00E0 + class UserData *implementUserData; //0x00E8 +}; //Size: 0x00F0 +static_assert(sizeof(RopewayImplement) == 0xF0); + +class RopewayImplementArm : public RopewayImplement +{ +public: + char pad_00F0[88]; //0x00F0 +}; //Size: 0x0148 +static_assert(sizeof(RopewayImplementArm) == 0x148); + +class RopewayCharacterHandler : public REBehavior +{ +public: + char pad_0048[184]; //0x0048 + class DotNetGenericDictionary *N00001A9D; //0x0100 + class DotNetGenericDictionary *N00001A9E; //0x0108 + class DotNetGenericDictionary *N00001A9F; //0x0110 + class DotNetGenericDictionary *N00001AA0; //0x0118 + char pad_0120[16]; //0x0120 + class PhysicsRequestSetCollider *requestSetCollider; //0x0130 + class RopewayIkController *ikController; //0x0138 + class RopewayPressController *pressController; //0x0140 + class RopewayGroundFixer *groundFixer; //0x0148 + class RopewayPlRainEffect *rainEffect; //0x0150 + char pad_0158[8]; //0x0158 + class REDynamicsRagdoll *ragdoll; //0x0160 + char pad_0168[24]; //0x0168 +}; //Size: 0x0180 +static_assert(sizeof(RopewayCharacterHandler) == 0x180); + +class RopewayPressController : public REBehavior +{ +public: + char pad_0048[88]; //0x0048 +}; //Size: 0x00A0 +static_assert(sizeof(RopewayPressController) == 0xA0); + +class RopewayGroundFixer : public REBehavior +{ +public: + char pad_0048[280]; //0x0048 +}; //Size: 0x0160 +static_assert(sizeof(RopewayGroundFixer) == 0x160); + +class RopewayPlRainEffect : public REBehavior +{ +public: + char pad_0048[8]; //0x0048 + uint8_t N00001B98; //0x0050 + bool isInRain; //0x0051 + char pad_0052[2]; //0x0052 + float N00001BC7; //0x0054 + float N00001B99; //0x0058 + float N00001BCA; //0x005C + float wetAmount; //0x0060 + float N00001BC3; //0x0064 + char pad_0068[48]; //0x0068 + uint32_t wetState; //0x0098 + char pad_009C[4]; //0x009C +}; //Size: 0x00A0 +static_assert(sizeof(RopewayPlRainEffect) == 0xA0); + +class REDynamicsComponentBase : public REComponent +{ +public: + class REDynamicsWorld *world; //0x0030 + char pad_0038[8]; //0x0038 +}; //Size: 0x0040 +static_assert(sizeof(REDynamicsComponentBase) == 0x40); + +class REDynamicsRigidBodySet : public REDynamicsComponentBase +{ +public: + char pad_0040[144]; //0x0040 +}; //Size: 0x00D0 +static_assert(sizeof(REDynamicsRigidBodySet) == 0xD0); + +class REDynamicsRagdoll : public REDynamicsRigidBodySet +{ +public: + char pad_00D0[32]; //0x00D0 + class REString name; //0x00F0 + char pad_0110[200]; //0x0110 +}; //Size: 0x01D8 +static_assert(sizeof(REDynamicsRagdoll) == 0x1D8); + +class REDynamicsWorld : public REManagedObject +{ +public: + char pad_0010[152]; //0x0010 + class REScene *scene; //0x00A8 + char pad_00B0[4448]; //0x00B0 + class REDynamicsWorld *world; //0x1210 + char pad_1218[504]; //0x1218 +}; //Size: 0x1410 +static_assert(sizeof(REDynamicsWorld) == 0x1410); + +class RERenderMesh : public REComponent +{ +public: + char pad_0030[736]; //0x0030 +}; //Size: 0x0310 +static_assert(sizeof(RERenderMesh) == 0x310); + +class RopewayExtraJoint : public REManagedObject +{ +public: + char pad_0010[8]; //0x0010 + class REMotion *motion; //0x0018 + char pad_0020[8]; //0x0020 + class REManagedObject *param; //0x0028 + int32_t N00002152; //0x0030 + char pad_0034[4]; //0x0034 +}; //Size: 0x0038 +static_assert(sizeof(RopewayExtraJoint) == 0x38); + +class RopewayImplementVirtualJoint : public RopewayExtraJoint +{ +public: +}; //Size: 0x0038 +static_assert(sizeof(RopewayImplementVirtualJoint) == 0x38); + +class RopewayMotionEventHandler : public REBehavior +{ +public: + char pad_0048[16]; //0x0048 + class REMotion *motion; //0x0058 + class REManagedObject *N00002175; //0x0060 + class REPtrArray *layers; //0x0068 +}; //Size: 0x0070 +static_assert(sizeof(RopewayMotionEventHandler) == 0x70); + +class N000021BE : public REBehavior +{ +public: +}; //Size: 0x0048 +static_assert(sizeof(N000021BE) == 0x48); + +class WwiseContainer : public N000021BE +{ +public: + char pad_0048[456]; //0x0048 +}; //Size: 0x0210 +static_assert(sizeof(WwiseContainer) == 0x210); + +class RopewayWwiseContainerApp : public WwiseContainer +{ +public: + char pad_0210[32]; //0x0210 + class REPtrArray *autoTriggerReceivers; //0x0230 +}; //Size: 0x0238 +static_assert(sizeof(RopewayWwiseContainerApp) == 0x238); + +class RopewayImplementGun : public RopewayImplementArm +{ +public: + char pad_0148[184]; //0x0148 +}; //Size: 0x0200 +static_assert(sizeof(RopewayImplementGun) == 0x200); + +class RopewaySurvivorDefineDamageParam : public REManagedObject +{ +public: + int32_t damageType; //0x0010 + bool isDead; //0x0014 + char pad_0015[3]; //0x0015 +}; //Size: 0x0018 +static_assert(sizeof(RopewaySurvivorDefineDamageParam) == 0x18); + +class RopewaySurvivorActionOrderer : public REBehavior +{ +public: + char pad_0048[12]; //0x0048 + uint32_t petient; //0x0054 + char pad_0058[8]; //0x0058 + Vector4f charDir; //0x0060 + Vector4f moveDir; //0x0070 + Vector4f watchDir; //0x0080 + char pad_0090[80]; //0x0090 +}; //Size: 0x00E0 +static_assert(sizeof(RopewaySurvivorActionOrderer) == 0xE0); + +class RopewaySurvivorPlayerActionOrderer : public RopewaySurvivorActionOrderer +{ +public: + class RopewayTimer *timer1; //0x00E0 + class RopewayTimer *timer2; //0x00E8 + class RopewayTimer *timer3; //0x00F0 + char pad_00F8[8]; //0x00F8 + class RopewaySurvivorPlayerCondition *parentCondition; //0x0100 +}; //Size: 0x0108 +static_assert(sizeof(RopewaySurvivorPlayerActionOrderer) == 0x108); + +class RopewaySurvivorController : public REBehavior +{ +public: + char pad_0048[16]; //0x0048 + class DampingRangeFloat *charAngle; //0x0058 + class DampingRangeFloat *moveAngle; //0x0060 + class DampingRangeFloat *watchAngle; //0x0068 + class DampingRangeFloat *watchAngleX; //0x0070 + class DampingRangeFloat *wheelBlendRate; //0x0078 + class DampingRangeFloat *wheelSpeed; //0x0080 + class REAnimationCurve *wheelBlendRateCurve; //0x0088 + class REAnimationCurve *wheelSpeedCurve; //0x0090 + bool autoUpdateCharDir; //0x0098 + bool autoUpdateMoveDir; //0x0099 + bool autoUpdateWatchDir; //0x009A + bool autoUpdateWheel; //0x009B + char pad_009C[4]; //0x009C + class REAnimationCurve *stairToSlopeCurve; //0x00A0 + class DampingFloat *dampingStairValue; //0x00A8 + class RopewaySurvivorControllerStepCheck *stepChecker; //0x00B0 + char pad_00B8[8]; //0x00B8 + class RopewaySurvivorPlayerCondition *parentCondition; //0x00C0 +}; //Size: 0x00C8 +static_assert(sizeof(RopewaySurvivorController) == 0xC8); + +class RopewaySurvivorPlayerController : public RopewaySurvivorController +{ +public: + float N00002361; //0x00C8 + float N00002390; //0x00CC + float charDirDampingRate; //0x00D0 + float N00002393; //0x00D4 + float N00002363; //0x00D8 + float N00002396; //0x00DC + float N00002364; //0x00E0 + float N00002399; //0x00E4 + class RopewaySurvivorPlayerCondition *parentCondition_; //0x00E8 +}; //Size: 0x00F0 +static_assert(sizeof(RopewaySurvivorPlayerController) == 0xF0); + +class RopewaySurvivorControllerStepCheck : public REManagedObject +{ +public: + Vector4f footLPos; //0x0010 + Vector4f footRPos; //0x0020 + float footDistance; //0x0030 + float weight; //0x0034 + class REJoint *leftJoint; //0x0038 + class REJoint *rightJoint; //0x0040 + class SystemString *leftName; //0x0048 + class SystemString *rightName; //0x0050 + char pad_0058[8]; //0x0058 +}; //Size: 0x0060 +static_assert(sizeof(RopewaySurvivorControllerStepCheck) == 0x60); + +class DampingRangeFloat : public DampingFloat +{ +public: + float low; //0x0044 + float high; //0x0048 + bool isLoop; //0x004C + char pad_004D[3]; //0x004D + float divertPriority; //0x0050 +}; //Size: 0x0054 +static_assert(sizeof(DampingRangeFloat) == 0x54); + +class N000024E5 +{ +public: + float value; //0x0000 + int16_t N000024EA; //0x0004 + int16_t N000024F1; //0x0006 + char pad_0008[8]; //0x0008 +}; //Size: 0x0010 +static_assert(sizeof(N000024E5) == 0x10); + +class CurveKeyFrames +{ +public: + class N000024E5 data[2048]; //0x0000 +}; //Size: 0x8000 +static_assert(sizeof(CurveKeyFrames) == 0x8000); + +class N000024E0 +{ +public: + Vector4f N000024E1; //0x0000 +}; //Size: 0x0010 +static_assert(sizeof(N000024E0) == 0x10); + +class RopewayInputSystem : public REBehavior +{ +public: + char pad_0048[8]; //0x0048 + class RopewayInputSystemButtonMaskBit *maskbit1; //0x0050 + class RopewayInputSystemButtonMaskBit *maskbit2; //0x0058 + class DotNetGenericList *commandList; //0x0060 + float N00001E29; //0x0068 + float N00003AE0; //0x006C + float N00001E2A; //0x0070 + char pad_0074[4]; //0x0074 + class DotNetGenericList *defineList; //0x0078 + class DotNetGenericList *lightBarColorParams; //0x0080 + class DotNetGenericList *keyAssignUserData; //0x0088 + char pad_0090[40]; //0x0090 + class HIDJoypadDevice *joypadDevice; //0x00B8 + class RopewayInputSystemAnalogStick *analogStick; //0x00C0 + class InputSystemButton *button; //0x00C8 + char pad_00D0[32]; //0x00D0 + Vector2f cameraSensitivity; //0x00F0 + char pad_00F8[64]; //0x00F8 + int16_t mouseMoveRingBufferSize; //0x0138 + char pad_013A[2]; //0x013A + float mouseDelta; //0x013C + float mouseMoveThreshold; //0x0140 + char pad_0144[44]; //0x0144 +}; //Size: 0x0170 +static_assert(sizeof(RopewayInputSystem) == 0x170); + +class RopewayInputSystemButtonMaskBit : public REManagedObject +{ +public: + int64_t bits; //0x0010 + bool reset; //0x0018 + char pad_0019[7]; //0x0019 +}; //Size: 0x0020 +static_assert(sizeof(RopewayInputSystemButtonMaskBit) == 0x20); + +class InputSystemButton : public REManagedObject +{ +public: + char pad_0010[24]; //0x0010 +}; //Size: 0x0028 +static_assert(sizeof(InputSystemButton) == 0x28); + +class HIDNativeDeviceBase : public REManagedObject +{ +public: + char pad_0010[120]; //0x0010 + bool connecting; //0x0088 + char pad_0089[7]; //0x0089 + class REString name; //0x0090 + char pad_00B0[80]; //0x00B0 + uint32_t button; //0x0100 via.hid.GamePadButton + char pad_0104[4]; //0x0104 + uint32_t buttonDown; //0x0108 + uint32_t buttonUp; //0x010C + uint32_t buttonRepeat; //0x0110 + char pad_0114[12]; //0x0114 +}; //Size: 0x0120 +static_assert(sizeof(HIDNativeDeviceBase) == 0x120); + +class HIDGamePadDevice : public HIDNativeDeviceBase +{ +public: + char pad_0120[160]; //0x0120 + Vector2f rawAxisL; //0x01C0 + char pad_01C8[8]; //0x01C8 + Vector2f rawAxisR; //0x01D0 + char pad_01D8[8]; //0x01D8 + Vector2f axisL; //0x01E0 + char pad_01E8[8]; //0x01E8 + Vector2f axisR; //0x01F0 + char pad_01F8[8]; //0x01F8 + float analogL; //0x0200 + float analogR; //0x0204 + char pad_0208[24]; //0x0208 + Vector3f acceleration; //0x0220 + char pad_022C[4]; //0x022C + Vector3f angularVelocity; //0x0230 + char pad_023C[116]; //0x023C +}; //Size: 0x02B0 +static_assert(sizeof(HIDGamePadDevice) == 0x2B0); + +class HIDJoypadDevice : public HIDGamePadDevice +{ +public: + char pad_02B0[16]; //0x02B0 +}; //Size: 0x02C0 +static_assert(sizeof(HIDJoypadDevice) == 0x2C0); + +class RopewayInputSystemAnalogStick : public REManagedObject +{ +public: + Vector2f axis; //0x0010 + char pad_0018[8]; //0x0018 + Vector2f axisOld; //0x0020 + char pad_0028[8]; //0x0028 + Vector2f rawAxis; //0x0030 + char pad_0038[24]; //0x0038 + float angle; //0x0050 + float angleOld; //0x0054 + float angularVelocity; //0x0058 + float magnitude; //0x005C + int32_t power; //0x0060 + int32_t powerH; //0x0064 + int32_t powerV; //0x0068 + float N00001F51; //0x006C + int32_t N00001F58; //0x0070 + char pad_0074[12]; //0x0074 +}; //Size: 0x0080 +static_assert(sizeof(RopewayInputSystemAnalogStick) == 0x80); + +class RopewaySurvivorManager : public REBehavior +{ +public: + char pad_0048[8]; //0x0048 + class RopewaySurvivorPlayerCondition *playerCondition; //0x0050 + char pad_0058[8]; //0x0058 + class RopewaySurvivorCastingRequest *castingRequest; //0x0060 + class DotNetGenericList *instantiateRequests; //0x0068 + class DotNetGenericList *survivorPrefabInfo; //0x0070 + class DotNetGenericDictionary *survivorTypesToConditions; //0x0078 SurvivorType->ActorCondition + class SystemAction *actionPlayerCondition; //0x0080 + class SystemAction *actionNpcCondition; //0x0088 + char pad_0090[8]; //0x0090 + class SystemAction *survivorTypeAction1; //0x0098 + class SystemAction *survivorTypeAction2; //0x00A0 + char pad_00A8[8]; //0x00A8 + class RopewaySurvivorCastingRequest *castingRequest2; //0x00B0 + void *uservarAccessor_Survivor; //0x00B8 + char pad_00C0[8]; //0x00C0 + class RopewaySettingFolder *playerFolder; //0x00C8 + class RopewaySettingFolder *npcFolder; //0x00D0 + class RopewaySettingFolder *actorFolder; //0x00D8 + class UserData *conditionSettingUserData; //0x00E0 + class DotNetGenericDictionary *survivorTypeToExistSurvivorInfo; //0x00E8 + class DotNetGenericList *existSurvivorInfos; //0x00F0 + class REManagedObject *N000058DF; //0x00F8 +}; //Size: 0x0100 +static_assert(sizeof(RopewaySurvivorManager) == 0x100); + +class RopewaySurvivorCastingRequest : public REManagedObject +{ +public: + char pad_0010[24]; //0x0010 +}; //Size: 0x0028 +static_assert(sizeof(RopewaySurvivorCastingRequest) == 0x28); + +class SystemDelegate : public REManagedObject +{ +public: +}; //Size: 0x0010 +static_assert(sizeof(SystemDelegate) == 0x10); + +class DelegateElement +{ +public: + class REManagedObject *obj; //0x0000 + void* funcPtr; //0x0008 +}; //Size: 0x0010 +static_assert(sizeof(DelegateElement) == 0x10); + +class SystemMulticastDelegate : public SystemDelegate +{ +public: + int32_t numElements; //0x0010 + int32_t N00005A07; //0x0014 + class DelegateElement delegates[2048]; //0x0018 +}; //Size: 0x8018 +static_assert(sizeof(SystemMulticastDelegate) == 0x8018); + +class SystemAction : public SystemMulticastDelegate +{ +public: +}; //Size: 0x8018 +static_assert(sizeof(SystemAction) == 0x8018); + +class RopewaySettingFolder : public REManagedObject +{ +public: + class REFolder *folder; //0x0010 + class SystemString *name; //0x0018 +}; //Size: 0x0020 +static_assert(sizeof(RopewaySettingFolder) == 0x20); + +class SurvivorConditionTimerTrigger : public REManagedObject +{ +public: + float old; //0x0010 + float current; //0x0014 + float threshold; //0x0018 +}; //Size: 0x001C +static_assert(sizeof(SurvivorConditionTimerTrigger) == 0x1C); + +class RERangeI +{ +public: + int32_t min; //0x0000 + int32_t max; //0x0004 +}; //Size: 0x0008 +static_assert(sizeof(RERangeI) == 0x8); + +class RopewayEnemyController : public REBehavior +{ +public: + char pad_0048[44]; //0x0048 + float baseMotionSpeed; //0x0074 + int32_t lod; //0x0078 + class RERangeI renderLodRange; //0x007C + char pad_0084[12]; //0x0084 + class DotNetGenericList *temporaryEventStorage; //0x0090 + class RopewayEnemyEmSaveData *enemySaveData; //0x0098 + char pad_00A0[64]; //0x00A0 + float N00001E0B; //0x00E0 + float N00001E80; //0x00E4 + char pad_00E8[8]; //0x00E8 + Vector4f firstAvailablePos; //0x00F0 + char pad_0100[40]; //0x0100 + class SystemAction *thinkAction; //0x0128 + char pad_0130[16]; //0x0130 + class RopewayEnemyContextController *enemyContextController; //0x0140 + class RopewayEnemyEmCommonContext *enemyContext; //0x0148 + class RopewayBitFlag *conditionStateBitFlag; //0x0150 + class RopewayBitFlag *conditionStateBitFlag2; //0x0158 + char pad_0160[4]; //0x0160 + int32_t N0000201A; //0x0164 + class DotNetGenericList *meshes; //0x0168 + char pad_0170[8]; //0x0170 + class REManagedObject *N00001EB1; //0x0178 + class CollisionSystemAsyncCastRayHandle *castRayHandle; //0x0180 + char pad_0188[4]; //0x0188 + float attackAuthorityKeepRange; //0x018C + Vector4f attackAuthorityRangeBasePositionOffset; //0x0190 + class RERenderMesh *mesh; //0x01A0 + class REMotion *motion; //0x01A8 + class REActorMotion *actorMotion; //0x01B0 + char pad_01B8[304]; //0x01B8 +}; //Size: 0x02E8 +static_assert(sizeof(RopewayEnemyController) == 0x2E8); + +class RopewayEnemyContextController : public REBehavior +{ +public: + char pad_0048[12]; //0x0048 + int32_t initialKindId; //0x0054 + char pad_0058[16]; //0x0058 +}; //Size: 0x0068 +static_assert(sizeof(RopewayEnemyContextController) == 0x68); + +class RopewayEnemyEmCommonContext : public REBehavior +{ +public: + char pad_0048[32]; //0x0048 + class REGameObject *enemyGameObject; //0x0068 + bool spawnStandby; //0x0070 + bool requestedPrefabStandby; //0x0071 + bool requestedSpawn; //0x0072 + bool isStayStandbyArea; //0x0073 + bool isStayActiveArea; //0x0074 + bool isEliminated; //0x0075 + bool N00002016; //0x0076 + bool N00002014; //0x0077 + int32_t instanceStatus; //0x0078 app.ropeway.enemy.EmCommonContext.InstanceStatus + char pad_007C[44]; //0x007C +}; //Size: 0x00A8 +static_assert(sizeof(RopewayEnemyEmCommonContext) == 0xA8); + +class SystemGuid +{ +public: + char pad_0000[16]; //0x0000 +}; //Size: 0x0010 +static_assert(sizeof(SystemGuid) == 0x10); + +class RopewayEnemyEmSaveData : public REManagedObject +{ +public: + uint32_t dataVersion; //0x0010 + char pad_0014[4]; //0x0014 + class SystemGuid guid; //0x0018 + int16_t inheritId; //0x0028 + char pad_002A[2]; //0x002A + int32_t kindId; //0x002C + float birthedTime; //0x0030 + float unloadedTime; //0x0034 + char pad_0038[72]; //0x0038 +}; //Size: 0x0080 +static_assert(sizeof(RopewayEnemyEmSaveData) == 0x80); + +class RopewayBitFlag : public REManagedObject +{ +public: + int32_t flag; //0x0010 + char pad_0014[4]; //0x0014 +}; //Size: 0x0018 +static_assert(sizeof(RopewayBitFlag) == 0x18); + +class CollisionSystemAsyncCastHandleBase : public REManagedObject +{ +public: + bool isFinish; //0x0010 + char pad_0011[7]; //0x0011 + class REGameObject *owner; //0x0018 + int32_t castType; //0x0020 + int16_t id; //0x0024 + char pad_0026[10]; //0x0026 + Vector4f startPos; //0x0030 + Vector4f endPos; //0x0040 + class PhysicsFilterInfo *filterInfo; //0x0050 + uint32_t N00002199; //0x0058 + float period; //0x005C + int16_t priority; //0x0060 + char pad_0062[2]; //0x0062 + bool isSkip; //0x0064 + char pad_0065[3]; //0x0065 + class AsyncCastHandleResultData *lastResultData; //0x0068 + char pad_0070[16]; //0x0070 +}; //Size: 0x0080 +static_assert(sizeof(CollisionSystemAsyncCastHandleBase) == 0x80); + +class CollisionSystemAsyncCastRayHandle : public CollisionSystemAsyncCastHandleBase +{ +public: +}; //Size: 0x0080 +static_assert(sizeof(CollisionSystemAsyncCastRayHandle) == 0x80); + +class RopewayEnemyManager : public REBehavior +{ +public: + char pad_0048[8]; //0x0048 + class DotNetGenericList *enemyInfos; //0x0050 app.ropeway.EnemyManager.RegisterEnemyInfo + class DotNetGenericList *enemyControllers; //0x0058 + class DotNetGenericList *gameObjects; //0x0060 + bool isExistEnemyObject; //0x0068 + char pad_0069[3]; //0x0069 + float dataLoadAttackThroughSec; //0x006C + bool isPausing; //0x0070 + bool isInvisible; //0x0071 + bool isTimelinePausing; //0x0072 + char pad_0073[5]; //0x0073 + class RopewayEnemyController *grapplingOwner; //0x0078 + float N00001F82; //0x0080 + char pad_0084[4]; //0x0084 + class RopewayEnemyLODSettingUserData *lodSettings; //0x0088 + float totalEnemyCost; //0x0090 + char pad_0094[4]; //0x0094 + class SystemAction *N00001F25; //0x0098 + class SystemAction *N00001F53; //0x00A0 + bool hasActiveEnemyUpdateRequest; //0x00A8 + char pad_00A9[7]; //0x00A9 + class REManagedObject *N00001F55; //0x00B0 + class RopewayCameraStatus *cameraStatus; //0x00B8 + class REManagedObject *N00001F57; //0x00C0 + class DotNetGenericList *instantiateRequests; //0x00C8 + class DotNetGenericList *destroyRequests; //0x00D0 + class DotNetGenericDictionary *mapIdsToSceneLoadStatus; //0x00D8 + char pad_00E0[8]; //0x00E0 + class DotNetGenericList *sceneLoadStatuses; //0x00E8 + class DotNetGenericList *mapIds; //0x00F0 + class REPtrArray *gameObjectsToControllers; //0x00F8 list of dictionaries + class DotNetGenericList *em6200ChaserControllers; //0x0100 + class REManagedObject *N00002224; //0x0108 + char pad_0110[8]; //0x0110 + class RopewayEnemyManagerFrameTimer *frameTimers[6]; //0x0118 ThinkOffTimer, NoAttackTimer, AttackThroughTimer, NoHoldTimerEm4000, NoBackHoldTimerEm4000, NoAttackTimerEm4000 + class DotNetGenericDictionary *guidsToSaveData; //0x0148 + uint32_t totalEnemyKillCount; //0x0150 + char pad_0154[4]; //0x0154 + class REManagedObject *N0000222A; //0x0158 + class REManagedObject *N0000222B; //0x0160 + class REManagedObject *N0000222C; //0x0168 + class REManagedObject *N0000222D; //0x0170 + char pad_0178[8]; //0x0178 +}; //Size: 0x0180 +static_assert(sizeof(RopewayEnemyManager) == 0x180); + +class RopewayEnemyLODSettingUserData : public UserData +{ +public: + float distanceLevels[5]; //0x0030 +}; //Size: 0x0044 +static_assert(sizeof(RopewayEnemyLODSettingUserData) == 0x44); + +class RopewayEnemyManagerFrameTimer : public REManagedObject +{ +public: + bool run; //0x0010 + char pad_0011[7]; //0x0011 + uint64_t delayFrame; //0x0018 + uint64_t endFrame; //0x0020 + uint64_t frameCount; //0x0028 +}; //Size: 0x0030 +static_assert(sizeof(RopewayEnemyManagerFrameTimer) == 0x30); + +class RENativeArray // via.array +{ +public: + class RENativeArrayData *data; //0x0000 + int32_t size; //0x0008 + int32_t numAllocated; //0x000C +}; //Size: 0x0010 +static_assert(sizeof(RENativeArray) == 0x10); + +class RENativeArrayData +{ +public: + char pad_0000[8]; //0x0000 +}; //Size: 0x0008 +static_assert(sizeof(RENativeArrayData) == 0x8); + +class RopewayCameraStatus : public REManagedObject +{ +public: + char pad_0010[384]; //0x0010 +}; //Size: 0x0190 +static_assert(sizeof(RopewayCameraStatus) == 0x190); + +class RopewayCameraInterpolateSettings : public UserData +{ +public: + void *curveParamTable; //0x0030 +}; //Size: 0x0038 +static_assert(sizeof(RopewayCameraInterpolateSettings) == 0x38); + +class CollisionSystemAsyncCastSphereHandle : public CollisionSystemAsyncCastHandleBase +{ +public: + class RESphere *sphere; //0x0080 +}; //Size: 0x0088 +static_assert(sizeof(CollisionSystemAsyncCastSphereHandle) == 0x88); + +class RESphere +{ +public: + char pad_0000[8]; //0x0000 +}; //Size: 0x0008 +static_assert(sizeof(RESphere) == 0x8); + +class RERenderCaptureToTexture : public REComponent +{ +public: + bool N00004053; //0x0030 + bool N00004069; //0x0031 + bool enableAlphaChannel; //0x0032 + char pad_0033[45]; //0x0033 + bool enableReplayScene; //0x0060 + char pad_0061[39]; //0x0061 + float N0000405E; //0x0088 + float N00004074; //0x008C +}; //Size: 0x0090 +static_assert(sizeof(RERenderCaptureToTexture) == 0x90); + +class AsyncCastHandleResultData : public REManagedObject +{ +public: + char pad_0010[32]; //0x0010 + Vector4f startPos; //0x0030 + Vector4f endPos; //0x0040 + char pad_0050[16]; //0x0050 +}; //Size: 0x0060 +static_assert(sizeof(AsyncCastHandleResultData) == 0x60); + +class ValueTriggerInt : public REManagedObject +{ +public: + int32_t current; //0x0010 + int32_t old; //0x0014 + int32_t lastFrame; //0x0018 +}; //Size: 0x001C +static_assert(sizeof(ValueTriggerInt) == 0x1C); + +class ActionTriggerInt : public ValueTriggerInt +{ +public: + char pad_001C[4]; //0x001C + class SystemAction *action; //0x0020 +}; //Size: 0x0028 +static_assert(sizeof(ActionTriggerInt) == 0x28); + +class IkControlStatusArray : public REArrayBase +{ +public: + class RopewayIkControlStatus *N00004982[6]; //0x0020 +}; //Size: 0x0050 +static_assert(sizeof(IkControlStatusArray) == 0x50); + +class RopewayIkControlStatus : public REManagedObject +{ +public: + int32_t ikKind; //0x0010 + float currentBlendRate; //0x0014 + bool hasChild; //0x0018 + bool activeAnyChild; //0x0019 + char pad_001A[14]; //0x001A + bool hasExtraBlendRate; //0x0028 + char pad_0029[3]; //0x0029 + float currentExtraBlendRate; //0x002C + float extraBlendLerpTime; //0x0030 + int32_t N00004A6E; //0x0034 + class RopewayIkWrapper *ik; //0x0038 + int32_t N00004ACF; //0x0040 + char pad_0044[4]; //0x0044 + class DotNetGenericDictionary *N00004A98; //0x0048 + class RopewayRangeLerpFloat *rangeLerp1; //0x0050 + class RopewayRangeLerpFloat *rangeLerp2; //0x0058 + class RopewayRangeLerpFloat *rangeLerp3; //0x0060 + void *N00004A9A; //0x0068 + void *N00004AD5; //0x0070 + int32_t N00004A45; //0x0078 + float N00004DBD; //0x007C +}; //Size: 0x0080 +static_assert(sizeof(RopewayIkControlStatus) == 0x80); + +class RopewayIkWrapper : public REManagedObject +{ +public: + bool setupped; //0x0010 + char pad_0011[7]; //0x0011 + class REMotionIkLeg *N00004B67; //0x0018 + char pad_0020[88]; //0x0020 +}; //Size: 0x0078 +static_assert(sizeof(RopewayIkWrapper) == 0x78); + +class REMotionIkLeg : public RESecondaryAnimation +{ +public: + char pad_0048[1904]; //0x0048 + float heelHeight; //0x07B8 + float toeHeight; //0x07BC + float groundContactUpDistance; //0x07C0 + float groundContactDownDistance; //0x07C4 + float groundContactRotationAdjustDistance; //0x07C8 + char pad_07CC[4]; //0x07CC + int32_t effectorTarget; //0x07D0 + int32_t centerAdjust; //0x07D4 + char pad_07D8[32]; //0x07D8 + int32_t toeControlOption; //0x07F8 + int32_t rayCastSkipOption; //0x07FC + float blendRate; //0x0800 + float adjustFootRotRate; //0x0804 + float adjustFootDamping; //0x0808 + float N00004EF8; //0x080C + float adjustFootBottomRate; //0x0810 + float adjustFootUpwardRate; //0x0814 + float N00004CB3; //0x0818 + float centerAdjustRate; //0x081C + float centerDampingRate; //0x0820 + float N00004EFE; //0x0824 + float centerRXAdjustRate; //0x0828 + float centerRZAdjustRate; //0x082C + float distanceLimitRate; //0x0830 + float centerAdjustUpwardRate; //0x0834 + float wallLimitAngle; //0x0838 + float N00004EF0; //0x083C + float footRollLimit; //0x0840 + float N00004EF2; //0x0844 + int32_t jointNumBetweenHeelAndToe; //0x0848 + int32_t rayCastInterval; //0x084C + char pad_0850[210]; //0x0850 + bool enabledGroundAdjust; //0x0922 + char pad_0923[2]; //0x0923 + bool skipIkIfNoHitDetail; //0x0925 + bool useIkSpine; //0x0926 + char pad_0927[361]; //0x0927 +}; //Size: 0x0A90 +static_assert(sizeof(REMotionIkLeg) == 0xA90); + +class RopewayRangeLerpFloat : public REManagedObject +{ +public: + float lerpSpeed; //0x0010 + float min; //0x0014 + float max; //0x0018 + bool isLoop; //0x001C + char pad_001D[3]; //0x001D + float loopPriority; //0x0020 + bool isInterpolating; //0x0024 + char pad_0025[3]; //0x0025 + float target; //0x0028 + float current; //0x002C +}; //Size: 0x0030 +static_assert(sizeof(RopewayRangeLerpFloat) == 0x30); + +class RopewayEquipmentManager : public REBehavior +{ +public: + char pad_0048[8]; //0x0048 + class DotNetGenericList *prefabInfoList; //0x0050 + class DotNetGenericList *characterMotionPrefabInfoList; //0x0058 + class DotNetGenericList *equipments; //0x0060 + class DotNetGenericList *instantiateRequestList; //0x0068 + class RopewayWeaponEquippedPositionUserData *weaponEquippedPositionData; //0x0070 + class RopewayWeaponBulletUserData *weaponBulletData; //0x0078 + char pad_0080[16]; //0x0080 +}; //Size: 0x0090 +static_assert(sizeof(RopewayEquipmentManager) == 0x90); + +class RopewayWeaponBulletUserData : public UserData +{ +public: + char pad_0030[8]; //0x0030 + bool enableDebug; //0x0038 + char pad_0039[3]; //0x0039 + int32_t debugWeaponType; //0x003C + int32_t debugWeaponParts; //0x0040 + char pad_0044[4]; //0x0044 +}; //Size: 0x0048 +static_assert(sizeof(RopewayWeaponBulletUserData) == 0x48); + +class RopewayWeaponEquippedPositionUserData : public UserData +{ +public: + char pad_0030[8]; //0x0030 +}; //Size: 0x0038 +static_assert(sizeof(RopewayWeaponEquippedPositionUserData) == 0x38); + +class RopewayGameMaster : public REBehavior +{ +public: + char pad_0048[8]; //0x0048 + class UserData *difficultySettings; //0x0050 + class UserData *continueRankPoint; //0x0058 + bool isWindows10; //0x0060 + char pad_0061[3]; //0x0061 + int32_t machine; //0x0064 + int32_t machineDetail; //0x0068 + int32_t operatingSystem; //0x006C + int32_t servicePlatform; //0x0070 + int32_t criticalRateController; //0x0074 +}; //Size: 0x0078 +static_assert(sizeof(RopewayGameMaster) == 0x78); + +class ManagedEnumValuesPtr +{ +public: + char *(*names)[8192]; //0x0000 +}; //Size: 0x0008 +static_assert(sizeof(ManagedEnumValuesPtr) == 0x8); + +class REEnumMap +{ +public: + class REEnumNode *first; //0x0000 + int32_t num; //0x0008 + char pad_000C[4]; //0x000C +}; //Size: 0x0010 +static_assert(sizeof(REEnumMap) == 0x10); + +class ManagedEnums : public REEnumMap +{ +public: + class RENativeArray enumValues; //0x0010 +}; //Size: 0x0020 +static_assert(sizeof(ManagedEnums) == 0x20); + +class N00006DF9 +{ +public: + char pad_0000[16]; //0x0000 + class RENativeArray enumValues; //0x0010 + char pad_0020[304]; //0x0020 +}; //Size: 0x0150 +static_assert(sizeof(N00006DF9) == 0x150); + +class N00006EE3 +{ +public: + class REEnumDescriptor *N00006EE4; //0x0000 + class N00006F33 *N00006EE5; //0x0008 + class N00006F56 *N00006EE6; //0x0010 + char pad_0018[8]; //0x0018 +}; //Size: 0x0020 +static_assert(sizeof(N00006EE3) == 0x20); + +class REEnumNode +{ +public: + class REEnumDescriptor *N00007017; //0x0000 + class REEnumDescriptor *N0000702A; //0x0008 + class REEnumDescriptor *N0000702B; //0x0010 + char pad_0018[8]; //0x0018 +}; //Size: 0x0020 +static_assert(sizeof(REEnumNode) == 0x20); + +class REEnumData +{ +public: + char *name; //0x0000 + bool N000070A2; //0x0008 + char pad_0009[7]; //0x0009 + class REEnumValueNode *values; //0x0010 + void *N000070A4; //0x0018 + char pad_0020[24]; //0x0020 +}; //Size: 0x0038 +static_assert(sizeof(REEnumData) == 0x38); + +class REEnumPair +{ +public: + uint32_t first; //0x0000 + char pad_0004[4]; //0x0004 + class REEnumData second; //0x0008 +}; //Size: 0x0040 +static_assert(sizeof(REEnumPair) == 0x40); + +class REEnumDescriptor : public REEnumNode +{ +public: + class REEnumPair data; //0x0020 + char pad_0060[332]; //0x0060 +}; //Size: 0x01AC +static_assert(sizeof(REEnumDescriptor) == 0x1AC); + +class N00006F33 +{ +public: + char pad_0000[8]; //0x0000 +}; //Size: 0x0008 +static_assert(sizeof(N00006F33) == 0x8); + +class N00006F56 +{ +public: + char pad_0000[8]; //0x0000 +}; //Size: 0x0008 +static_assert(sizeof(N00006F56) == 0x8); + +class REEnumValueNode +{ +public: + char *name; //0x0000 + int64_t value; //0x0008 + class REEnumValueNode *next; //0x0010 +}; //Size: 0x0018 +static_assert(sizeof(REEnumValueNode) == 0x18); + +class StdMap +{ +public: + class StdMapNode *_MyHead; //0x0000 + int32_t _MySize; //0x0008 + char pad_000C[4]; //0x000C +}; //Size: 0x0010 +static_assert(sizeof(StdMap) == 0x10); + +class StdMapData +{ +public: + char pad_0000[120]; //0x0000 +}; //Size: 0x0078 +static_assert(sizeof(StdMapData) == 0x78); + +class StdMapNode +{ +public: + class StdMapNode *N00008173; //0x0000 + class StdMapNode *N00008174; //0x0008 + class StdMapNode *N00008175; //0x0010 + char pad_0018[8]; //0x0018 + class StdMapData data; //0x0020 +}; //Size: 0x0098 +static_assert(sizeof(StdMapNode) == 0x98); + +class TypeList // RENativeArray +{ +public: + class REType *(*data)[50000]; //0x0000 + int32_t size; //0x0008 + int32_t numAllocated; //0x000C + char pad_0010[120]; //0x0010 +}; //Size: 0x0088 +static_assert(sizeof(TypeList) == 0x88); + +class MethodParamInfo +{ +public: + char pad_0000[8]; //0x0000 + char *paramName; //0x0008 + uint32_t paramTypeFlag; //0x0010 AND 1f + uint32_t typeIndex; //0x0014 + char *typeName; //0x0018 +}; //Size: 0x0020 +static_assert(sizeof(MethodParamInfo) == 0x20); + +class RopewayScriptEffectManager : public REBehavior +{ +public: + char pad_0048[9]; //0x0048 + bool isDisableAllEffect; //0x0051 + char pad_0052[182]; //0x0052 +}; //Size: 0x0108 +static_assert(sizeof(RopewayScriptEffectManager) == 0x108); + +class RERenderDepthOfField : public REComponent +{ +public: + char pad_0030[24]; //0x0030 + bool enabled; //0x0048 + char pad_0049[15]; //0x0049 +}; //Size: 0x0058 +static_assert(sizeof(RERenderDepthOfField) == 0x58); + +class RopewayPostEffectControllerBase : public REBehavior +{ +public: + char pad_0048[32]; //0x0048 + class REComponent *effectComponent; //0x0068 + class RopewayPostEffectFilterParamBase *param1; //0x0070 + class RopewayPostEffectFilterParamBase *param2; //0x0078 + class REGameObject *cameraObject; //0x0080 + char pad_0088[8]; //0x0088 + class RopewayPostEffectCascade *cascade; //0x0090 + class REGameObject *cameraObject2; //0x0098 + char pad_00A0[8]; //0x00A0 + class RopewayPostEffectFilterParamBase *param3; //0x00A8 + class RopewayFilterSettingBase *filterSetting; //0x00B0 + class RopewayPostEffectFilterParamBase *param4; //0x00B8 + char pad_00C0[24]; //0x00C0 +}; //Size: 0x00D8 +static_assert(sizeof(RopewayPostEffectControllerBase) == 0xD8); + +class RopewayFilterSettingBase : public REBehavior +{ +public: + char pad_0048[16]; //0x0048 + class RopewayPostEffectFilterParamBase *param; //0x0058 + float interpolationSpan; //0x0060 + int32_t layerApplyType; //0x0064 app::ropeway::posteffect::setting::FilterSettingRoot::ApplyType + class RopewayPostEffectFilterParamBase *currentParam; //0x0068 + class RopewayPostEffectFilterParamBase *param1; //0x0070 + class RopewayPostEffectFilterParamBase *param2; //0x0078 + char pad_0080[8]; //0x0080 +}; //Size: 0x0088 +static_assert(sizeof(RopewayFilterSettingBase) == 0x88); + +class RopewayPostEffectFilterParamBase : public REManagedObject +{ +public: + char pad_0010[32]; //0x0010 +}; //Size: 0x0030 +static_assert(sizeof(RopewayPostEffectFilterParamBase) == 0x30); + +class RopewayPostEffectCascade : public REBehavior +{ +public: + char pad_0048[48]; //0x0048 +}; //Size: 0x0078 +static_assert(sizeof(RopewayPostEffectCascade) == 0x78); + +class RopewayFilterParamAccessable : public RopewayPostEffectFilterParamBase +{ +public: + char pad_0030[16]; //0x0030 + bool timelineOverwrite; //0x0040 + char pad_0041[11]; //0x0041 + float timelineBlendRate; //0x004C +}; //Size: 0x0050 +static_assert(sizeof(RopewayFilterParamAccessable) == 0x50); + +class RopewayPostEffectToneMapping : public RopewayFilterParamAccessable +{ +public: + bool enabled; //0x0050 + char pad_0051[3]; //0x0051 + float ev; //0x0054 + float maxWhitePoint; //0x0058 + float minWhitePoint; //0x005C + float whiteRange; //0x0060 + float tonemapRange; //0x0064 + float preTonemapRange; //0x0068 + float brightAdaptationRate; //0x006C + float darkAdaptationRate; //0x0070 + int32_t vignetting; //0x0074 via::render::ToneMapping::Vignetting + int32_t autoExposure; //0x0078 via::render::ToneMapping::AutoExposure + float kerareBeginAngle; //0x007C kerare = vignetting in japanese + float linearSectionBegin; //0x0080 + float linearSectionLength; //0x0084 + float sdrToe; //0x0088 + float hdrToe; //0x008C + float kerareEndAngle; //0x0090 + char pad_0094[4]; //0x0094 + void *textureResource; //0x0098 + char pad_00A0[8]; //0x00A0 + int32_t temporalAAAlgorithm; //0x00A8 via::render::ToneMapping::TemporalAAAlgorithm + int32_t temporalAA; //0x00AC via::render::ToneMapping::TemporalAA + bool echoEnabled; //0x00B0 + char pad_00B1[3]; //0x00B1 + float antiAliasingBlendRate; //0x00B4 + float temporalJitterScale; //0x00B8 + float sharpness; //0x00BC +}; //Size: 0x00C0 +static_assert(sizeof(RopewayPostEffectToneMapping) == 0xC0); + +class REInstantiationDescriptor +{ +public: + class REObjectInfo *type; //0x0000 + uint32_t N00008AC9; //0x0008 + uint32_t N00008B38; //0x000C + uint32_t size; //0x0010 + uint32_t N00008B3A; //0x0014 + char pad_0018[40]; //0x0018 +}; //Size: 0x0040 +static_assert(sizeof(REInstantiationDescriptor) == 0x40); + +class MethodParams +{ +public: + char pad_0000[48]; //0x0000 + void ***in_data; //0x0030 can point to data + void **out_data; //0x0038 can be whatever, can be a dword, can point to data + void *object_ptr; //0x0040 aka "this" pointer +}; //Size: 0x0048 +static_assert(sizeof(MethodParams) == 0x48); + +class REThreadContext +{ +public: + char pad_0000[80]; //0x0000 + class UnkThreadContextObject *unkPtr; //0x0050 + char pad_0058[32]; //0x0058 + int32_t referenceCount; //0x0078 + char pad_007C[4]; //0x007C +}; //Size: 0x0080 +static_assert(sizeof(REThreadContext) == 0x80); + +class UnkThreadContextObject +{ +public: + char pad_0000[24]; //0x0000 + void *unkPtr; //0x0018 + char pad_0020[240]; //0x0020 +}; //Size: 0x0110 +static_assert(sizeof(UnkThreadContextObject) == 0x110); + +class N0000256E +{ +public: + char pad_0000[264]; //0x0000 +}; //Size: 0x0108 +static_assert(sizeof(N0000256E) == 0x108); + +class TrialManager : public REManagedObject +{ +public: + char pad_0010[24]; //0x0010 + class N00002CDC *N00002C19; //0x0028 + char pad_0030[56]; //0x0030 + class N00002C87 *N00002C24; //0x0068 + char pad_0070[216]; //0x0070 +}; //Size: 0x0148 +static_assert(sizeof(TrialManager) == 0x148); + +class N00002C87 : public REManagedObject +{ +public: + char pad_0010[64]; //0x0010 +}; //Size: 0x0050 +static_assert(sizeof(N00002C87) == 0x50); + +class N00002CDC : public REManagedObject +{ +public: + char pad_0010[112]; //0x0010 +}; //Size: 0x0080 +static_assert(sizeof(N00002CDC) == 0x80); + +class N00003CA1 : public REManagedObject +{ +public: + char pad_0010[16]; //0x0010 +}; //Size: 0x0020 +static_assert(sizeof(N00003CA1) == 0x20); + +class N00003CB3 : public REManagedObject +{ +public: + char pad_0010[360]; //0x0010 + class N00003D23 *N00003CE5; //0x0178 + char pad_0180[200]; //0x0180 +}; //Size: 0x0248 +static_assert(sizeof(N00003CB3) == 0x248); + +class N00003D23 : public REManagedObject +{ +public: + char pad_0010[16]; //0x0010 + int32_t N00003D2A; //0x0020 + char pad_0024[4]; //0x0024 + uint32_t N00003D2B; //0x0028 + char pad_002C[4]; //0x002C +}; //Size: 0x0030 +static_assert(sizeof(N00003D23) == 0x30); + +class N00003D34 : public REManagedObject +{ +public: + char pad_0010[8]; //0x0010 + int32_t N00003D37; //0x0018 + char pad_001C[4]; //0x001C + bool enabled; //0x0020 + char pad_0021[7]; //0x0021 +}; //Size: 0x0028 +static_assert(sizeof(N00003D34) == 0x28); + +class CountdownTimerController : public REManagedObject +{ +public: + float N00003D4A; //0x0010 + float N00003D55; //0x0014 + float N00003D4B; //0x0018 + float N00003D57; //0x001C + char pad_0020[8]; //0x0020 +}; //Size: 0x0028 +static_assert(sizeof(CountdownTimerController) == 0x28); + +class SceneActivateManager : public REBehavior +{ +public: + char pad_0048[72]; //0x0048 +}; //Size: 0x0090 +static_assert(sizeof(SceneActivateManager) == 0x90); + +class RenderSwingWind : public REComponent +{ +public: + bool Enabled; //0x0030 + char pad_0031[7]; //0x0031 + class N00009C0D *WindParameter; //0x0038 +}; //Size: 0x0040 +static_assert(sizeof(RenderSwingWind) == 0x40); + +class N00009C0D +{ +public: + char pad_0000[264]; //0x0000 +}; //Size: 0x0108 +static_assert(sizeof(N00009C0D) == 0x108); + +class N00009D2E +{ +public: + char pad_0000[112]; //0x0000 +}; //Size: 0x0070 +static_assert(sizeof(N00009D2E) == 0x70); + +class REArraySystemInt32 : public REArrayBase +{ +public: + class N00009D2E N00009D02[256]; //0x0020 +}; //Size: 0x7020 +static_assert(sizeof(REArraySystemInt32) == 0x7020); + +class DotNetGenericHashSet : public REManagedObject +{ +public: + char pad_0010[16]; //0x0010 + class REManagedObject *equalityComparer; //0x0020 +}; //Size: 0x0028 +static_assert(sizeof(DotNetGenericHashSet) == 0x28); + +class AppPropsManager : public REBehavior +{ +public: + char pad_0048[16]; //0x0048 + class REGameObject *player; //0x0058 + class RECamera *camera; //0x0060 + class AppFlotageProcess *flotageProcess; //0x0068 + class AppSwingRopeProcess *swingRopeProcess; //0x0070 + char pad_0078[8]; //0x0078 +}; //Size: 0x0080 +static_assert(sizeof(AppPropsManager) == 0x80); + +class AppObjectApp : public REManagedObject +{ +public: +}; //Size: 0x0010 +static_assert(sizeof(AppObjectApp) == 0x10); + +class AppPropsManagerToyProcess : public AppObjectApp +{ +public: + bool isDebugDraw; //0x0010 + char pad_0011[15]; //0x0011 + class DotNetGenericList *behaviorList; //0x0020 +}; //Size: 0x0028 +static_assert(sizeof(AppPropsManagerToyProcess) == 0x28); + +class AppFlotageProcess : public AppPropsManagerToyProcess +{ +public: + int32_t flotageId; //0x0028 + int32_t turnCounter; //0x002C + float maxDistance; //0x0030 + float N0000A33D; //0x0034 +}; //Size: 0x0038 +static_assert(sizeof(AppFlotageProcess) == 0x38); + +class AppSwingRopeProcess : public AppPropsManagerToyProcess +{ +public: +}; //Size: 0x0028 +static_assert(sizeof(AppSwingRopeProcess) == 0x28); + +class AppBehaviorApp : public REBehavior +{ +public: + char pad_0048[8]; //0x0048 +}; //Size: 0x0050 +static_assert(sizeof(AppBehaviorApp) == 0x50); + +class AppPlayerHandLight : public AppBehaviorApp +{ +public: + char pad_0050[1]; //0x0050 + bool IsContinuousOn; //0x0051 + char pad_0052[6]; //0x0052 + class AppHandLightPowerController *handLightPowerController; //0x0058 + char pad_0060[16]; //0x0060 + void *nightVision; //0x0070 + char pad_0078[8]; //0x0078 + void *playerStatus; //0x0080 + void *wwise; //0x0088 +}; //Size: 0x0090 +static_assert(sizeof(AppPlayerHandLight) == 0x90); + +class AppCharacterUpdater : public AppBehaviorApp +{ +public: + void *referenceContainer; //0x0050 + void *agentsPriorityContainer; //0x0058 +}; //Size: 0x0060 +static_assert(sizeof(AppCharacterUpdater) == 0x60); + +class AppPlayerUpdater : public AppCharacterUpdater +{ +public: + void *playerConfigure; //0x0060 + class AppPlayerReferenceContainer *playerReferenceContainer; //0x0068 + char pad_0070[8]; //0x0070 +}; //Size: 0x0078 +static_assert(sizeof(AppPlayerUpdater) == 0x78); + +class N0000B498 : public REManagedObject +{ +public: +}; //Size: 0x0010 +static_assert(sizeof(N0000B498) == 0x10); + +class AppCharacterReferenceContainer : public N0000B498 +{ +public: + void *N0000B49D; //0x0010 + void *N0000B49E; //0x0018 + void *N0000B49F; //0x0020 + void *N0000B4A0; //0x0028 + void *N0000B4A1; //0x0030 + void *N0000B4A2; //0x0038 + void *N0000B4A3; //0x0040 + class AppInputInputUpdater *inputUpdater; //0x0048 + char pad_0050[200]; //0x0050 +}; //Size: 0x0118 +static_assert(sizeof(AppCharacterReferenceContainer) == 0x118); + +class AppPlayerReferenceContainer : public AppCharacterReferenceContainer +{ +public: + char pad_0118[232]; //0x0118 +}; //Size: 0x0200 +static_assert(sizeof(AppPlayerReferenceContainer) == 0x200); + +class AppDemiAgent : public AppObjectApp +{ +public: + class REGameObject *gameObject; //0x0010 +}; //Size: 0x0018 +static_assert(sizeof(AppDemiAgent) == 0x18); + +class AppAgent : public AppDemiAgent +{ +public: + class AppAgentCostWatch *costWatch1; //0x0018 + class AppAgentCostWatch *costWatch2; //0x0020 +}; //Size: 0x0028 +static_assert(sizeof(AppAgent) == 0x28); + +class AppInputInputUpdater : public AppAgent +{ +public: + char pad_0028[8]; //0x0028 + class DotNetGenericDictionary *inputDictionary; //0x0030 + char pad_0038[72]; //0x0038 +}; //Size: 0x0080 +static_assert(sizeof(AppInputInputUpdater) == 0x80); + +class AppAgentCostWatch : public REManagedObject +{ +public: + float N0000B612; //0x0010 + bool isWait; //0x0014 + char pad_0015[3]; //0x0015 + class SystemDiagnosticsStopwatch *stopwatch; //0x0018 + char pad_0020[4]; //0x0020 + float averageCost; //0x0024 + float minUpdateCost; //0x0028 + float maxUpdateCost; //0x002C + char pad_0030[8]; //0x0030 +}; //Size: 0x0038 +static_assert(sizeof(AppAgentCostWatch) == 0x38); + +class SystemDiagnosticsStopwatch : public REManagedObject +{ +public: + char pad_0010[24]; //0x0010 +}; //Size: 0x0028 +static_assert(sizeof(SystemDiagnosticsStopwatch) == 0x28); + +class AppHandLightPowerController +{ +public: + char pad_0000[120]; //0x0000 + class IESLight *renderIESLight; //0x0078 +}; //Size: 0x0080 +static_assert(sizeof(AppHandLightPowerController) == 0x80); + +class IESLight +{ +public: + char pad_0000[417]; //0x0000 + bool ShadowEnable; //0x01A1 + char pad_01A2[414]; //0x01A2 + float Radius; //0x0340 +}; //Size: 0x0344 +static_assert(sizeof(IESLight) == 0x344); + +class AppGamePadDevice +{ +public: + char pad_0000[560]; //0x0000 + Vector3f N0000BCA8; //0x0230 + char pad_023C[1548]; //0x023C +}; //Size: 0x0848 +static_assert(sizeof(AppGamePadDevice) == 0x848); + +class ValueTypeDescriptor +{ +public: + char pad_0000[8]; //0x0000 + uint32_t size; //0x0008 + char pad_000C[36]; //0x000C +}; //Size: 0x0030 +static_assert(sizeof(ValueTypeDescriptor) == 0x30); + +class REValueTypes +{ +public: + class ValueTypeDescriptor types[10000]; //0x0000 +}; //Size: 0x75300 +static_assert(sizeof(REValueTypes) == 0x75300); + +class DictionaryEntryUInt32Ptr +{ +public: + int32_t hashCode; //0x0000 + int32_t next; //0x0004 + uint32_t key; //0x0008 + char pad_000C[4]; //0x000C + void *value; //0x0010 +}; //Size: 0x0018 +static_assert(sizeof(DictionaryEntryUInt32Ptr) == 0x18); + +class SystemClassDescriptor +{ +public: + char *name_space; //0x0000 + char *class_name; //0x0008 + uint32_t num_methods; //0x0010 + char pad_0014[4]; //0x0014 + class SystemMethodDescriptor (*methods)[256]; //0x0018 +}; //Size: 0x0020 +static_assert(sizeof(SystemClassDescriptor) == 0x20); + +class SystemClasses +{ +public: + class SystemClassDescriptor N0000CB08[256]; //0x0000 +}; //Size: 0x2000 +static_assert(sizeof(SystemClasses) == 0x2000); + +class SystemMethodDescriptor +{ +public: + char *name; //0x0000 + void* func; //0x0008 + char pad_0010[64]; //0x0010 +}; //Size: 0x0050 +static_assert(sizeof(SystemMethodDescriptor) == 0x50); + +class N0000CBBC +{ +public: + class REClassInfo *class_infos[256]; //0x0000 +}; //Size: 0x0800 +static_assert(sizeof(N0000CBBC) == 0x800); + +class AppHIDPadManager : public REBehavior +{ +public: + char pad_0048[16]; //0x0048 + void *userdata; //0x0058 + class AppHIDPad *pad1; //0x0060 + class N0000CD1C *pad2; //0x0068 + void *delegate1; //0x0070 + void *delegate2; //0x0078 + class DotNetGenericList *pads; //0x0080 + class DotNetGenericList *padDevices; //0x0088 +}; //Size: 0x0090 +static_assert(sizeof(AppHIDPadManager) == 0x90); + +class AppHIDPad : public AppObjectApp +{ +public: + void *delegate1; //0x0010 + class HIDGamePadDevice *device; //0x0018 + char pad_0020[16]; //0x0020 + class REArrayBase *array1; //0x0030 + class REArrayBase *array2; //0x0038 + char pad_0040[96]; //0x0040 + class DotNetGenericDictionary *dictionary1; //0x00A0 + char pad_00A8[8]; //0x00A8 +}; //Size: 0x00B0 +static_assert(sizeof(AppHIDPad) == 0xB0); + +class N0000CD1C +{ +public: + char pad_0000[8]; //0x0000 +}; //Size: 0x0008 +static_assert(sizeof(N0000CD1C) == 0x8); + +class AppHIDUser : public REManagedObject +{ +public: + int32_t N0000D337; //0x0010 + int32_t N0000D340; //0x0014 + char pad_0018[4]; //0x0018 +}; //Size: 0x001C +static_assert(sizeof(AppHIDUser) == 0x1C); + +class AppMouse : public AppHIDUser +{ +public: + float x; //0x001C + float y; //0x0020 +}; //Size: 0x0024 +static_assert(sizeof(AppMouse) == 0x24); + +class AppKeyboard : public AppHIDUser +{ +public: +}; //Size: 0x001C +static_assert(sizeof(AppKeyboard) == 0x1C); + +class RETypeDB +{ +public: + uint32_t magic; //0x0000 + uint32_t version; //0x0004 + uint32_t initialized; //0x0008 + uint32_t numTypes; //0x000C + uint32_t numMethods; //0x0010 + uint32_t numFields; //0x0014 + uint32_t numTypeImpl; //0x0018 + uint32_t numFieldImpl; //0x001C + uint32_t numMethodImpl; //0x0020 + uint32_t numPropertyImpl; //0x0024 + uint32_t numProperties; //0x0028 + uint32_t numEvents; //0x002C + uint32_t numParams; //0x0030 + uint32_t numAttributes; //0x0034 + int32_t numInitData; //0x0038 + uint32_t numAttributes2; //0x003C + uint32_t numInternStrings; //0x0040 + uint32_t numModules; //0x0044 + int32_t devEntry; //0x0048 + int32_t appEntry; //0x004C + uint32_t numStringPool; //0x0050 + uint32_t numBytePool; //0x0054 + void *modules; //0x0058 + class REClassInfo (*types)[93788]; //0x0060 + class RETypeImpl (*typesImpl)[256]; //0x0068 + class REMethodDefinition (*methods)[703558]; //0x0070 + class REMethodImpl (*methodsImpl)[56756]; //0x0078 + class REField (*fields)[1]; //0x0080 + class REFieldImpl (*fieldsImpl)[1]; //0x0088 + class REProperty (*properties)[256]; //0x0090 + class REPropertyImpl (*propertiesImpl)[1]; //0x0098 + void *events; //0x00A0 + class REParameterDef (*params)[10000]; //0x00A8 + class REAttributeDef (*attributes)[2000]; //0x00B0 + int32_t (*initData)[19890]; //0x00B8 + int32_t (*attributes2)[256]; //0x00C0 + void *stringPool; //0x00C8 + uint8_t (*bytePool)[256]; //0x00D0 + int32_t (*internStrings)[14154]; //0x00D8 +}; //Size: 0x00E0 +static_assert(sizeof(RETypeDB) == 0xE0); + +class RETypeImpl +{ +public: + int32_t nameThing; //0x0000 + int32_t namespaceThing; //0x0004 + int32_t fieldSize; //0x0008 + int32_t staticFieldSize; //0x000C + uint8_t moduleId; //0x0010 + uint8_t arrayRank; //0x0011 + uint16_t numMemberMethods; //0x0012 + int32_t numMemberFields; //0x0014 + int16_t interfaceID; //0x0018 + uint16_t numNativeVtable; //0x001A + uint16_t attributesID; //0x001C + uint16_t numVtable; //0x001E + uint64_t mark; //0x0020 + uint64_t cycle; //0x0028 +}; //Size: 0x0030 +static_assert(sizeof(RETypeImpl) == 0x30); + +class REMethodDefinition +{ +public: + uint64_t data; //0x0000 bitfield, 0-17 == declaring typeid, 18-37==impl id, 38-63 == parameters id + void* function; //0x0008 +}; //Size: 0x0010 +static_assert(sizeof(REMethodDefinition) == 0x10); + +class REMethodImpl +{ +public: + uint16_t attributesIndex; //0x0000 + int16_t vtableIndex; //0x0002 + uint16_t flags; //0x0004 + uint16_t implFlags; //0x0006 + uint32_t nameOffset; //0x0008 offset into stringPool +}; //Size: 0x000C +static_assert(sizeof(REMethodImpl) == 0xC); + +class REField +{ +public: + uint64_t data; //0x0000 bitfield, 0-17 == declaring typeid, 18-37==impl id, 38-63 == field offset +}; //Size: 0x0008 +static_assert(sizeof(REField) == 0x8); + +class REFieldImpl +{ +public: + uint16_t attributesIndex; //0x0000 + uint16_t flags; //0x0002 + uint32_t bitfield1; //0x0004 0-17 == field type ID + uint32_t bitfield2; //0x0008 0-29 == string pool name index, 30-31 == idk +}; //Size: 0x000C +static_assert(sizeof(REFieldImpl) == 0xC); + +class REProperty +{ +public: + uint64_t data; //0x0000 0-19 = impl index, 20-41 == getter index, 42-63 == setter index +}; //Size: 0x0008 +static_assert(sizeof(REProperty) == 0x8); + +class REPropertyImpl +{ +public: + uint16_t flags; //0x0000 + uint16_t attributesIndex; //0x0002 + int32_t nameOffset; //0x0004 +}; //Size: 0x0008 +static_assert(sizeof(REPropertyImpl) == 0x8); + +class REParameterDef +{ +public: + uint16_t attributesIndex; //0x0000 + uint16_t initData; //0x0002 + uint32_t nameAndModifer; //0x0004 0-29 = name index, 30-31 = modifier + uint32_t typeAndFlags; //0x0008 0-17 = type index, 18-31 = flags +}; //Size: 0x000C +static_assert(sizeof(REParameterDef) == 0xC); + +class RENativeArray_SystemRuntimeType +{ +public: + class SystemRuntimeType *(*entries)[93788]; //0x0000 + uint32_t num; //0x0008 + char pad_000C[4]; //0x000C +}; //Size: 0x0010 +static_assert(sizeof(RENativeArray_SystemRuntimeType) == 0x10); + +class RENativeArray_Static +{ +public: + class N00004CB2 *(*N00002F64)[93788]; //0x0000 + uint64_t num; //0x0008 +}; //Size: 0x0010 +static_assert(sizeof(RENativeArray_Static) == 0x10); + +class N0000306B +{ +public: + char pad_0000[448]; //0x0000 +}; //Size: 0x01C0 +static_assert(sizeof(N0000306B) == 0x1C0); + +class REVM +{ +public: + char pad_0000[13616]; //0x0000 + int64_t perfCounter[8]; //0x3530 + bool N00002F5E; //0x3570 + char pad_3571[3]; //0x3571 + uint32_t N000030CA; //0x3574 + char pad_3578[32]; //0x3578 + class RENativeArray_SystemRuntimeType typeTbl; //0x3598 + class RENativeArray_Static staticTbl; //0x35A8 + char pad_35B8[32]; //0x35B8 + class RETypeDB *typeDb; //0x35D8 + class N00003030 *N00002F73; //0x35E0 + class N0000306B jobs[256]; //0x35E8 + char pad_1F5E8[40]; //0x1F5E8 +}; //Size: 0x1F610 +static_assert(sizeof(REVM) == 0x1F610); + +class N00003030 +{ +public: + char pad_0000[136]; //0x0000 +}; //Size: 0x0088 +static_assert(sizeof(N00003030) == 0x88); + +class REVMPtr +{ +public: + class REVM *N000030D2; //0x0000 +}; //Size: 0x0008 +static_assert(sizeof(REVMPtr) == 0x8); + +class SystemRuntimeType : public REManagedObject +{ +public: + class REClassInfo *runtimeTypeHandle; //0x0010 + int32_t kind; //0x0018 + int32_t number; //0x001C +}; //Size: 0x0020 +static_assert(sizeof(SystemRuntimeType) == 0x20); + +class REAttributeDef +{ +public: + int32_t methodIndex; //0x0000 + int32_t blob; //0x0004 +}; //Size: 0x0008 +static_assert(sizeof(REAttributeDef) == 0x8); + +class REParamList +{ +public: + uint16_t numParams; //0x0000 + uint16_t invokeID; //0x0002 + uint32_t returnType; //0x0004 + uint32_t params[1]; //0x0008 +}; //Size: 0x000C +static_assert(sizeof(REParamList) == 0xC); + +class ArrayDeserializeSequence +{ +public: + class DeserializeSequence (*deserializers)[256]; //0x0000 + uint32_t num; //0x0008 + uint32_t numAllocated; //0x000C +}; //Size: 0x0010 +static_assert(sizeof(ArrayDeserializeSequence) == 0x10); + +class RETypeCLR : public REType +{ +public: + class ArrayDeserializeSequence deserializeThing; //0x0060 + class REType *nativeType; //0x0070 + char *name2; //0x0078 +}; //Size: 0x0080 +static_assert(sizeof(RETypeCLR) == 0x80); + +class DeserializeSequence +{ +public: + int32_t data; //0x0000 + uint32_t offset; //0x0004 + class REClassInfo *nativeType; //0x0008 +}; //Size: 0x0010 +static_assert(sizeof(DeserializeSequence) == 0x10); + +class InternStrings +{ +public: + class SystemString *(*N00004B5E)[20000]; //0x0000 +}; //Size: 0x0008 +static_assert(sizeof(InternStrings) == 0x8); + +class N00004CB2 +{ +public: + char pad_0000[136]; //0x0000 +}; //Size: 0x0088 +static_assert(sizeof(N00004CB2) == 0x88); + +class REAttribute : public REObject +{ +public: + char pad_0008[8]; //0x0008 + class REAttribute *next; //0x0010 +}; //Size: 0x0018 +static_assert(sizeof(REAttribute) == 0x18); + +class N0000301D +{ +public: + char pad_0000[136]; //0x0000 +}; //Size: 0x0088 +static_assert(sizeof(N0000301D) == 0x88); \ No newline at end of file diff --git a/shared/sdk/Renderer.hpp b/shared/sdk/Renderer.hpp index 1b7d82af5..8f406e511 100644 --- a/shared/sdk/Renderer.hpp +++ b/shared/sdk/Renderer.hpp @@ -97,7 +97,7 @@ class RenderTargetView : public RenderResource { private: Desc m_desc; -#if TDB_VER == 71 +#if TDB_VER >= 71 // untested on 73 static constexpr inline auto s_texture_d3d12_offset = 0x98; #elif TDB_VER == 70 static constexpr inline auto s_texture_d3d12_offset = 0x90; diff --git a/shared/sdk/TDBVer.hpp b/shared/sdk/TDBVer.hpp index 4e9bff9c7..7980afac7 100644 --- a/shared/sdk/TDBVer.hpp +++ b/shared/sdk/TDBVer.hpp @@ -2,6 +2,8 @@ #ifdef DMC5 #define TDB_VER 67 +#elif defined(DD2) +#define TDB_VER 73 #elif defined(SF6) #define TDB_VER 71 #elif defined (RE4) @@ -46,7 +48,10 @@ struct REMethodDefinition; struct REProperty; struct RETypeDefinition; -#if defined(SF6) +#if defined(DD2) +#define TYPE_INDEX_BITS 19 +using RETypeDefinition_ = sdk::RETypeDefVersion71; // same thing for now +#elif defined(SF6) #define TYPE_INDEX_BITS 19 using RETypeDefinition_ = sdk::RETypeDefVersion71; #elif defined(RE4) diff --git a/src/REFramework.hpp b/src/REFramework.hpp index 3b066bbd6..691a1f57d 100644 --- a/src/REFramework.hpp +++ b/src/REFramework.hpp @@ -98,6 +98,8 @@ class REFramework { return "mhrise"; #elif defined(SF6) return "sf6"; + #elif defined(DD2) + return "dd2"; #else return "unknown"; #endif diff --git a/src/mods/IntegrityCheckBypass.cpp b/src/mods/IntegrityCheckBypass.cpp index d43c8ee4d..ff51a1ede 100644 --- a/src/mods/IntegrityCheckBypass.cpp +++ b/src/mods/IntegrityCheckBypass.cpp @@ -307,12 +307,13 @@ void IntegrityCheckBypass::ignore_application_entries() { void IntegrityCheckBypass::immediate_patch_re8() { // Apparently patching this in SF6 causes some bugs like chat not showing up and being unable to view replays. // Disabling it for now as the game still seems to work fine without it. -#ifdef SF6 +#ifdef SF6 if (true) { return; } #endif +#if TDB_VER < 73 // We have to immediately patch this at startup in RE8 unlike MHRise // because the game immediately starts checking the integrity of the executable // on the first execution of this callback, unlike MHRise which was delayed. @@ -415,6 +416,7 @@ void IntegrityCheckBypass::immediate_patch_re8() { } else { spdlog::error("[IntegrityCheckBypass]: Could not find sussy_result_4!"); } +#endif } void IntegrityCheckBypass::immediate_patch_re4() { From 4bd6889f9f411b71ece1552cc3aba39e6a39b986 Mon Sep 17 00:00:00 2001 From: praydog Date: Tue, 12 Mar 2024 13:29:24 -0700 Subject: [PATCH 03/13] Dragon's Dogma 2: Fix various features (freecam, VR, ultrawide, etc) --- reversing/apollojustice.genny | 1052 ++ reversing/dd2.genny | 1052 ++ reversing/dd2.rcnet | 13163 ++++++++++++++++ shared/sdk/ReClass_Internal_DD2.hpp | 16 +- shared/sdk/regenny/dd2/BullShit.hpp | 8 + .../sdk/regenny/dd2/DeserializeSequence.hpp | 18 + shared/sdk/regenny/dd2/ManagedVtable.hpp | 12 + shared/sdk/regenny/dd2/RTInternal.hpp | 40 + shared/sdk/regenny/dd2/RayTrace.hpp | 13 + shared/sdk/regenny/dd2/RenderEntity.hpp | 9 + shared/sdk/regenny/dd2/System/String.hpp | 11 + shared/sdk/regenny/dd2/TypeDefinition.hpp | 7 + shared/sdk/regenny/dd2/game/IkArmFit.hpp | 41 + shared/sdk/regenny/dd2/game/InputSystem.hpp | 9 + shared/sdk/regenny/dd2/tdb71/AttributeDef.hpp | 7 + shared/sdk/regenny/dd2/tdb71/Field.hpp | 12 + shared/sdk/regenny/dd2/tdb71/FieldImpl.hpp | 15 + .../regenny/dd2/tdb71/MethodDefinition.hpp | 12 + shared/sdk/regenny/dd2/tdb71/MethodImpl.hpp | 12 + shared/sdk/regenny/dd2/tdb71/ParamList.hpp | 11 + shared/sdk/regenny/dd2/tdb71/ParameterDef.hpp | 13 + shared/sdk/regenny/dd2/tdb71/Property.hpp | 7 + shared/sdk/regenny/dd2/tdb71/PropertyImpl.hpp | 7 + shared/sdk/regenny/dd2/tdb71/TDB.hpp | 80 + .../sdk/regenny/dd2/tdb71/TypeDefinition.hpp | 38 + shared/sdk/regenny/dd2/tdb71/TypeImpl.hpp | 18 + shared/sdk/regenny/dd2/via/BasisPlane.hpp | 10 + shared/sdk/regenny/dd2/via/CameraType.hpp | 14 + shared/sdk/regenny/dd2/via/Capsule.hpp | 12 + shared/sdk/regenny/dd2/via/Color.hpp | 8 + shared/sdk/regenny/dd2/via/Component.hpp | 15 + .../sdk/regenny/dd2/via/DeviceOrientation.hpp | 8 + shared/sdk/regenny/dd2/via/DisplayType.hpp | 30 + shared/sdk/regenny/dd2/via/Folder.hpp | 8 + shared/sdk/regenny/dd2/via/GameObject.hpp | 24 + shared/sdk/regenny/dd2/via/IntArray.hpp | 9 + shared/sdk/regenny/dd2/via/JobSet.hpp | 28 + shared/sdk/regenny/dd2/via/Joint.hpp | 23 + shared/sdk/regenny/dd2/via/JointArray.hpp | 18 + shared/sdk/regenny/dd2/via/JointData.hpp | 12 + shared/sdk/regenny/dd2/via/JointDesc.hpp | 16 + shared/sdk/regenny/dd2/via/JointMap.hpp | 13 + .../regenny/dd2/via/ManagedObjectArray.hpp | 13 + shared/sdk/regenny/dd2/via/MobileBarState.hpp | 8 + shared/sdk/regenny/dd2/via/Motion.hpp | 11 + shared/sdk/regenny/dd2/via/Object.hpp | 8 + shared/sdk/regenny/dd2/via/Point.hpp | 9 + shared/sdk/regenny/dd2/via/Range.hpp | 9 + shared/sdk/regenny/dd2/via/RenderType.hpp | 8 + shared/sdk/regenny/dd2/via/Scene.hpp | 11 + shared/sdk/regenny/dd2/via/SceneArray.hpp | 13 + shared/sdk/regenny/dd2/via/SceneManager.hpp | 20 + shared/sdk/regenny/dd2/via/SceneView.hpp | 50 + shared/sdk/regenny/dd2/via/Size.hpp | 9 + shared/sdk/regenny/dd2/via/Sphere.hpp | 10 + shared/sdk/regenny/dd2/via/Transform.hpp | 35 + shared/sdk/regenny/dd2/via/UInt8Array.hpp | 9 + shared/sdk/regenny/dd2/via/UIntArray.hpp | 9 + shared/sdk/regenny/dd2/via/UIntArrayArray.hpp | 12 + shared/sdk/regenny/dd2/via/Window.hpp | 18 + shared/sdk/regenny/dd2/via/array.hpp | 15 + .../dd2/via/behaviortree/BehaviorTree.hpp | 11 + .../BehaviorTreeCoreHandleArray.hpp | 12 + .../dd2/via/behaviortree/BehaviorTreeData.hpp | 12 + .../dd2/via/behaviortree/Condition.hpp | 8 + .../sdk/regenny/dd2/via/behaviortree/Core.hpp | 13 + .../dd2/via/behaviortree/CoreHandle.hpp | 12 + .../dd2/via/behaviortree/NodeArray.hpp | 12 + .../dd2/via/behaviortree/NodeArray2.hpp | 13 + .../dd2/via/behaviortree/NodeStatus.hpp | 9 + .../regenny/dd2/via/behaviortree/Selector.hpp | 15 + .../dd2/via/behaviortree/SelectorFSM.hpp | 18 + .../regenny/dd2/via/behaviortree/TreeNode.hpp | 50 + .../dd2/via/behaviortree/TreeNodeData.hpp | 46 + .../dd2/via/behaviortree/TreeObject.hpp | 32 + .../dd2/via/behaviortree/TreeObjectData.hpp | 28 + .../sdk/regenny/dd2/via/clr/ManagedObject.hpp | 13 + .../sdk/regenny/dd2/via/fixed_array_jobs.hpp | 8 + shared/sdk/regenny/dd2/via/gui/Control.hpp | 19 + shared/sdk/regenny/dd2/via/gui/GUI.hpp | 32 + shared/sdk/regenny/dd2/via/gui/GUIManager.hpp | 13 + .../regenny/dd2/via/gui/GUIMeshRenderer.hpp | 8 + shared/sdk/regenny/dd2/via/gui/PlayObject.hpp | 61 + .../regenny/dd2/via/gui/PrimitiveContext.hpp | 10 + .../regenny/dd2/via/gui/TransformObject.hpp | 9 + shared/sdk/regenny/dd2/via/gui/View.hpp | 20 + shared/sdk/regenny/dd2/via/gui/Window.hpp | 10 + shared/sdk/regenny/dd2/via/mat4.hpp | 8 + .../regenny/dd2/via/motion/AxisDirection.hpp | 10 + shared/sdk/regenny/dd2/via/motion/Chain.hpp | 21 + .../dd2/via/motion/ChainCollisionArray.hpp | 14 + .../dd2/via/motion/ChainCollisionData.hpp | 21 + .../dd2/via/motion/ChainCollisionTop.hpp | 18 + .../dd2/via/motion/ChainCollisions.hpp | 40 + shared/sdk/regenny/dd2/via/motion/Data.hpp | 8 + .../dd2/via/motion/InterpolationMode.hpp | 8 + .../sdk/regenny/dd2/via/motion/MotionFsm2.hpp | 9 + .../dd2/via/motion/MotionFsm2Internal.hpp | 15 + .../dd2/via/motion/MotionFsm2Layer.hpp | 8 + .../dd2/via/motion/MotionFsm2RawData.hpp | 24 + .../dd2/via/motion/MotionFsm2Resource.hpp | 10 + .../dd2/via/motion/SecondaryAnimation.hpp | 10 + .../regenny/dd2/via/motion/TransitionData.hpp | 23 + .../regenny/dd2/via/motion/TransitionMap.hpp | 9 + .../sdk/regenny/dd2/via/typeinfo/TypeInfo.hpp | 27 + shared/sdk/regenny/dd2/via/vec3.hpp | 10 + shared/sdk/regenny/dd2/via/vec4.hpp | 9 + src/mods/Graphics.cpp | 3 + src/mods/VR.cpp | 3 + 109 files changed, 17002 insertions(+), 8 deletions(-) create mode 100644 reversing/apollojustice.genny create mode 100644 reversing/dd2.genny create mode 100644 reversing/dd2.rcnet create mode 100644 shared/sdk/regenny/dd2/BullShit.hpp create mode 100644 shared/sdk/regenny/dd2/DeserializeSequence.hpp create mode 100644 shared/sdk/regenny/dd2/ManagedVtable.hpp create mode 100644 shared/sdk/regenny/dd2/RTInternal.hpp create mode 100644 shared/sdk/regenny/dd2/RayTrace.hpp create mode 100644 shared/sdk/regenny/dd2/RenderEntity.hpp create mode 100644 shared/sdk/regenny/dd2/System/String.hpp create mode 100644 shared/sdk/regenny/dd2/TypeDefinition.hpp create mode 100644 shared/sdk/regenny/dd2/game/IkArmFit.hpp create mode 100644 shared/sdk/regenny/dd2/game/InputSystem.hpp create mode 100644 shared/sdk/regenny/dd2/tdb71/AttributeDef.hpp create mode 100644 shared/sdk/regenny/dd2/tdb71/Field.hpp create mode 100644 shared/sdk/regenny/dd2/tdb71/FieldImpl.hpp create mode 100644 shared/sdk/regenny/dd2/tdb71/MethodDefinition.hpp create mode 100644 shared/sdk/regenny/dd2/tdb71/MethodImpl.hpp create mode 100644 shared/sdk/regenny/dd2/tdb71/ParamList.hpp create mode 100644 shared/sdk/regenny/dd2/tdb71/ParameterDef.hpp create mode 100644 shared/sdk/regenny/dd2/tdb71/Property.hpp create mode 100644 shared/sdk/regenny/dd2/tdb71/PropertyImpl.hpp create mode 100644 shared/sdk/regenny/dd2/tdb71/TDB.hpp create mode 100644 shared/sdk/regenny/dd2/tdb71/TypeDefinition.hpp create mode 100644 shared/sdk/regenny/dd2/tdb71/TypeImpl.hpp create mode 100644 shared/sdk/regenny/dd2/via/BasisPlane.hpp create mode 100644 shared/sdk/regenny/dd2/via/CameraType.hpp create mode 100644 shared/sdk/regenny/dd2/via/Capsule.hpp create mode 100644 shared/sdk/regenny/dd2/via/Color.hpp create mode 100644 shared/sdk/regenny/dd2/via/Component.hpp create mode 100644 shared/sdk/regenny/dd2/via/DeviceOrientation.hpp create mode 100644 shared/sdk/regenny/dd2/via/DisplayType.hpp create mode 100644 shared/sdk/regenny/dd2/via/Folder.hpp create mode 100644 shared/sdk/regenny/dd2/via/GameObject.hpp create mode 100644 shared/sdk/regenny/dd2/via/IntArray.hpp create mode 100644 shared/sdk/regenny/dd2/via/JobSet.hpp create mode 100644 shared/sdk/regenny/dd2/via/Joint.hpp create mode 100644 shared/sdk/regenny/dd2/via/JointArray.hpp create mode 100644 shared/sdk/regenny/dd2/via/JointData.hpp create mode 100644 shared/sdk/regenny/dd2/via/JointDesc.hpp create mode 100644 shared/sdk/regenny/dd2/via/JointMap.hpp create mode 100644 shared/sdk/regenny/dd2/via/ManagedObjectArray.hpp create mode 100644 shared/sdk/regenny/dd2/via/MobileBarState.hpp create mode 100644 shared/sdk/regenny/dd2/via/Motion.hpp create mode 100644 shared/sdk/regenny/dd2/via/Object.hpp create mode 100644 shared/sdk/regenny/dd2/via/Point.hpp create mode 100644 shared/sdk/regenny/dd2/via/Range.hpp create mode 100644 shared/sdk/regenny/dd2/via/RenderType.hpp create mode 100644 shared/sdk/regenny/dd2/via/Scene.hpp create mode 100644 shared/sdk/regenny/dd2/via/SceneArray.hpp create mode 100644 shared/sdk/regenny/dd2/via/SceneManager.hpp create mode 100644 shared/sdk/regenny/dd2/via/SceneView.hpp create mode 100644 shared/sdk/regenny/dd2/via/Size.hpp create mode 100644 shared/sdk/regenny/dd2/via/Sphere.hpp create mode 100644 shared/sdk/regenny/dd2/via/Transform.hpp create mode 100644 shared/sdk/regenny/dd2/via/UInt8Array.hpp create mode 100644 shared/sdk/regenny/dd2/via/UIntArray.hpp create mode 100644 shared/sdk/regenny/dd2/via/UIntArrayArray.hpp create mode 100644 shared/sdk/regenny/dd2/via/Window.hpp create mode 100644 shared/sdk/regenny/dd2/via/array.hpp create mode 100644 shared/sdk/regenny/dd2/via/behaviortree/BehaviorTree.hpp create mode 100644 shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeCoreHandleArray.hpp create mode 100644 shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeData.hpp create mode 100644 shared/sdk/regenny/dd2/via/behaviortree/Condition.hpp create mode 100644 shared/sdk/regenny/dd2/via/behaviortree/Core.hpp create mode 100644 shared/sdk/regenny/dd2/via/behaviortree/CoreHandle.hpp create mode 100644 shared/sdk/regenny/dd2/via/behaviortree/NodeArray.hpp create mode 100644 shared/sdk/regenny/dd2/via/behaviortree/NodeArray2.hpp create mode 100644 shared/sdk/regenny/dd2/via/behaviortree/NodeStatus.hpp create mode 100644 shared/sdk/regenny/dd2/via/behaviortree/Selector.hpp create mode 100644 shared/sdk/regenny/dd2/via/behaviortree/SelectorFSM.hpp create mode 100644 shared/sdk/regenny/dd2/via/behaviortree/TreeNode.hpp create mode 100644 shared/sdk/regenny/dd2/via/behaviortree/TreeNodeData.hpp create mode 100644 shared/sdk/regenny/dd2/via/behaviortree/TreeObject.hpp create mode 100644 shared/sdk/regenny/dd2/via/behaviortree/TreeObjectData.hpp create mode 100644 shared/sdk/regenny/dd2/via/clr/ManagedObject.hpp create mode 100644 shared/sdk/regenny/dd2/via/fixed_array_jobs.hpp create mode 100644 shared/sdk/regenny/dd2/via/gui/Control.hpp create mode 100644 shared/sdk/regenny/dd2/via/gui/GUI.hpp create mode 100644 shared/sdk/regenny/dd2/via/gui/GUIManager.hpp create mode 100644 shared/sdk/regenny/dd2/via/gui/GUIMeshRenderer.hpp create mode 100644 shared/sdk/regenny/dd2/via/gui/PlayObject.hpp create mode 100644 shared/sdk/regenny/dd2/via/gui/PrimitiveContext.hpp create mode 100644 shared/sdk/regenny/dd2/via/gui/TransformObject.hpp create mode 100644 shared/sdk/regenny/dd2/via/gui/View.hpp create mode 100644 shared/sdk/regenny/dd2/via/gui/Window.hpp create mode 100644 shared/sdk/regenny/dd2/via/mat4.hpp create mode 100644 shared/sdk/regenny/dd2/via/motion/AxisDirection.hpp create mode 100644 shared/sdk/regenny/dd2/via/motion/Chain.hpp create mode 100644 shared/sdk/regenny/dd2/via/motion/ChainCollisionArray.hpp create mode 100644 shared/sdk/regenny/dd2/via/motion/ChainCollisionData.hpp create mode 100644 shared/sdk/regenny/dd2/via/motion/ChainCollisionTop.hpp create mode 100644 shared/sdk/regenny/dd2/via/motion/ChainCollisions.hpp create mode 100644 shared/sdk/regenny/dd2/via/motion/Data.hpp create mode 100644 shared/sdk/regenny/dd2/via/motion/InterpolationMode.hpp create mode 100644 shared/sdk/regenny/dd2/via/motion/MotionFsm2.hpp create mode 100644 shared/sdk/regenny/dd2/via/motion/MotionFsm2Internal.hpp create mode 100644 shared/sdk/regenny/dd2/via/motion/MotionFsm2Layer.hpp create mode 100644 shared/sdk/regenny/dd2/via/motion/MotionFsm2RawData.hpp create mode 100644 shared/sdk/regenny/dd2/via/motion/MotionFsm2Resource.hpp create mode 100644 shared/sdk/regenny/dd2/via/motion/SecondaryAnimation.hpp create mode 100644 shared/sdk/regenny/dd2/via/motion/TransitionData.hpp create mode 100644 shared/sdk/regenny/dd2/via/motion/TransitionMap.hpp create mode 100644 shared/sdk/regenny/dd2/via/typeinfo/TypeInfo.hpp create mode 100644 shared/sdk/regenny/dd2/via/vec3.hpp create mode 100644 shared/sdk/regenny/dd2/via/vec4.hpp diff --git a/reversing/apollojustice.genny b/reversing/apollojustice.genny new file mode 100644 index 000000000..ab400c060 --- /dev/null +++ b/reversing/apollojustice.genny @@ -0,0 +1,1052 @@ +type uint64_t 8 [[u64]] +type int64_t 8 [[i64]] +type int32_t 4 [[i32]] +type uint32_t 4 [[u32]] +type int16_t 2 [[i16]] +type uint16_t 2 [[u16]] +type uint8_t 1 [[u8]] +type float 4 [[f32]] +type char 1 +type void 0 +type wchar_t 2 [[u16]] +type bool 1 [[u8]] + +namespace regenny{ +struct TypeDefinition{} +struct ManagedVtable{} +struct BullShit 0x5000{} + +namespace via.typeinfo{ +struct TypeInfo {} +} + +namespace via { + struct vec3 { + float x; + float y; + float z; + }; + + struct vec4 : vec3 { + float w; + }; + + struct mat4 { + float m[4][4]; + }; + + struct Object { + void* vtable; + }; +}; + +namespace via.clr { + struct ManagedObject { + ManagedVtable* info + uint32_t reference_count + uint32_t unk + } +} + + +namespace via { + enum class CameraType : uint32_t { + Game = 0, + Debug = 1, + Scene = 2, + SceneXY = 3, + SceneYZ = 4, + SceneXZ = 5, + Preview = 6, + } + + enum class DisplayType : uint32_t { + Fit = 0, + Uniform4x3 = 1, + Uniform16x9 = 2, + Uniform16x10 = 3, + Uniform21x9 = 4, + Uniform32x9 = 5, + Uniform48x9 = 6, + Fix480p = 7, + Fix720p = 8, + Fix1080p = 9, + Fix4K = 10, + Fix8K = 11, + FixResolution = 12, + FixResolution16x9 = 13, + NintendoSwitch = 14, + Fix684x384 = 15, + Fix1368x768 = 16, + Nexus6P = 17, + GalaxyS9 = 18, + XperiaZ5Premium = 19, + iPhoneX = 20, + iPhone7 = 21, + ZenPadS8 = 22, + } + + + enum class BasisPlane : uint32_t{ + XZ = 0, + XY = 1, + YZ = 2, + } + + enum class MobileBarState : uint32_t{None = 0} + enum class DeviceOrientation : uint32_t{None = 0} + enum class RenderType : uint32_t{None = 0} + + struct Window{} + struct Scene{} + + struct Color { + uint32_t rgba + } + struct Size { + float w + float h + } + + struct Point { + float x; + float y; + }; + + struct Window 0x100 { + void* vtable + uint32_t width @ 0x60 + uint32_t height + via.Point cursor_pos; + bool show_cursor; + via.Size borderless_size @ 0xB8 + }; + + struct SceneView : via.clr.ManagedObject 0xb0 { + Window* window @ 0x10 + Scene* scene + via.Color background_color @ 0x20 + wchar_t* name @ 0x28 [[utf16*]] + via.Size size @ 0x30 + via.Size custom_display_size + via.Size present_rect + bool draw_develop @ 0x60 + bool tool_light + bool show_icons + bool outline_fadeout_enable + DisplayType display_type + via.BasisPlane basis_plane + CameraType camera_type + RenderType render_type + int32_t icon_size + float indicator_scale + void* message_function_handle @ 0x90 + via.DeviceOrientation orientation @ 0x9C + via.MobileBarState mobile_status_bar_state + via.MobileBarState mobile_nav_bar_state + bool fix_mobile_nav_bar_bottom + } + + struct Scene : via.clr.ManagedObject{ + char asdf + float timescale @ 0x20 + } + + struct SceneArray { + int32_t count + via.Scene** elements @ 0x8 + } +} + +namespace via { + struct SceneManager 0x1D8 { + via.SceneView* main_view @ 0x48 + via.Scene* main_scene @ 0x50 + via.SceneArray scenes @ 0x78 + } +} + +namespace via { + struct Transform{}; + struct Folder{}; + + struct GameObject : via.clr.ManagedObject 0x50 { + bool Update @ 0x12; + bool Draw; + bool UpdateSelf; + bool DrawSelf; + via.Transform* Transform +2 + via.Folder* folder + + float timescale @ 0x4C + }; + + struct Component : via.clr.ManagedObject { + via.GameObject* GameObject; + via.Component* ChildComponent; + via.Component* PrevComponent; + via.Component* NextComponent; + }; + + struct Folder : via.clr.ManagedObject { + }; + + struct JointDesc { + wchar_t* name [[utf16*]]; + uint32_t name_hash; + int16_t parent_index; + int16_t symmetry_index; + via.vec4 position; + via.vec4 rotation; + via.vec4 scale; + }; + + struct Joint : via.clr.ManagedObject 0x60 { + via.Transform* Owner; + via.JointDesc* Desc; + via.vec4 LocalPosition; + via.vec4 LocalRotation; + via.vec4 LocalScale + int32_t ConstraintJointIndex; + int32_t JointIndex; + }; + + // VMArray/REArray/whatever + struct JointArray : via.clr.ManagedObject { + via.typeinfo.TypeInfo* array_type + int32_t count; + int32_t num_allocated; + Joint* joints[256]; + }; + + struct Transform : via.Component 0x110 { + via.vec4 Position @ 0x30 + via.vec4 Rotation @ 0x40 + via.vec4 Scale @ 0x50 + + via.Scene* Scene + via.Transform* Child @ 0x68 + via.Transform* Next + via.Transform* Parent + via.mat4 WorldTransform + void* JointHashTbl; + int32_t ParentJointIndex + int32_t UpdateFrame @ 0xCC + bool SameJointsConstraint; + bool DirtySelf; + bool DirtyUpwards; + bool AbsoluteScaling; + JointArray* JointTbl + 4 + via.mat4* JointMatrixTbl; + }; + + struct JointData + { + via.vec4 rotation; + via.vec4 translation; + via.vec4 scale; + via.vec4 blend; + }; + + + struct JointMap { + JointData* joints; + int32_t num_joints + 4 + }; + + struct Motion 0x1000 { + JointMap jointmap @ 0x200 + }; +} + +namespace via { + namespace motion { + enum AxisDirection { + X = 1, + Y = 2, + NZ = 7 + }; + } + +struct Range { + float s; + float r; +}; +} + +namespace via.typeinfo { + struct TypeInfo{ + void* vfptr + uint32_t fqn_hash + uint16_t attributes + uint16_t type + uint64_t fast_class_index + uint64_t bsr_fast_class_index + char* name [[utf8*]] + uint32_t parent_typeid + uint32_t size + uint32_t crc + uint32_t mics_flags + via.typeinfo.TypeInfo* parent + via.typeinfo.TypeInfo* child + via.typeinfo.TypeInfo* next + void* reflection + TypeDefinition* type_definition + } +} + +namespace tdb71 { + struct TypeDefinition{} +} + +namespace { + + +struct ManagedVtable { + tdb71.TypeDefinition* t + void* funcs[32] +} +} + +namespace { +struct DeserializeSequence { + uint32_t code : 8; + uint32_t size : 8; + uint32_t align : 8; + uint32_t depth : 6; + uint32_t is_array : 1; + uint32_t is_static : 1; + + uint32_t offset; + tdb71.TypeDefinition* native_type; +}; +} + +namespace tdb71 { + struct MethodDefinition 0xC { + uint32_t declaring_typeid : 19; + uint32_t pad : 13 + uint32_t impl_id : 19; + uint32_t params : 13; + int32_t offset; + } + + struct MethodImpl { + uint16_t attributes_id; + int16_t vtable_index; + uint16_t flags; + uint16_t impl_flags; + uint32_t name_offset; + }; + + struct TypeDefinition 0x48 { + uint64_t index : 19; + uint64_t parent_typeid : 19; + uint64_t declaring_typeid : 19; + uint64_t underlying_typeid : 7; + uint64_t array_typeid : 19; + uint64_t element_typeid : 19; + + uint64_t impl_index : 18; + //uint64_t object_type : 3; + uint64_t system_typeid : 7; + + uint32_t type_flags; + uint32_t size; + uint32_t fqn_hash; + uint32_t type_crc; + uint64_t default_ctor : 22; + uint64_t member_method : 22; + uint64_t member_field : 19; + uint32_t num_member_prop : 12; + uint32_t member_prop : 19; + + uint32_t unk_data : 26; + uint32_t object_type : 3 + + int64_t unk_data_before_generics : 26; + int64_t generics : 26; + int64_t interfaces : 12; + via.typeinfo.TypeInfo* type @ 0x38; + void** managed_vt; + //struct REObjectInfo* managed_vt; + }; + + struct TypeImpl 0x30 { + int32_t name_offset; // 0 + int32_t namespace_offset; // 4 + int32_t field_size; // 8 + int32_t static_field_size; // c + //uint32_t module_id; // 10 + //uint32_t array_rank; // 14 + uint64_t unk_pad : 33; + uint64_t num_member_fields : 24; // 0x10 bitfield + uint64_t unk_pad_2 : 7 + uint16_t num_member_methods; // 0x18 + int16_t num_native_vtable; // 0x1A + int16_t interface_id; + //uint16_t num_native_vtable; + //uint16_t attributes_id; + //uint16_t num_vtable; + //uint64_t mark; + //uint64_t cycle; + }; + + struct Field { + uint64_t declaring_typeid : 19; + uint64_t impl_id : 19; + uint64_t field_typeid : 19; + uint64_t init_data_hi : 6 + }; + + struct FieldImpl 0xC { + uint16_t attributes; + uint16_t unk : 1 + uint16_t flags : 15 + uint32_t offset : 26; + uint32_t init_data_lo : 6 + uint32_t name_offset : 22 + uint32_t init_data_mid : 4 + + /*uint16_t attributes_id; + uint16_t flags; + uint32_t unk_pad : 6; + uint32_t field_typeid : 19; + uint32_t init_data_lo : 14; + uint32_t name_offset : 30;*/ + //uint32_t init_data_hi : 2; + }; + + struct Property { + }; + + struct PropertyImpl { + }; + + struct ParameterDef { + uint16_t attributes_id; + uint16_t init_data_index; + uint32_t name_offset : 30; + uint32_t modifier : 2; + uint32_t type_id : 18; + uint32_t flags : 14; + }; + + struct AttributeDef { + }; + + struct ParamList { + uint16_t numParams; //0x0000 + int16_t invokeID; //0x0002 + uint32_t returnType; //0x0004 + uint32_t params[256]; //0x0008 + }; + + struct TDB { + struct test{} + uint32_t magic; // 0x0000 + uint32_t version; // 0x0004 + uint32_t initialized; // 0x0008 + uint32_t numTypes; // 0x000C + uint32_t numMethods; // 0x0010 + uint32_t numFields; // 0x0014 + uint32_t numTypeImpl; // 0x0018 + uint32_t numFieldImpl; // 0x001C + uint32_t numMethodImpl; // 0x0020 + uint32_t numPropertyImpl; // 0x0024 + uint32_t numProperties; // 0x0028 + uint32_t numEvents; // 0x002C + uint32_t numParams; // 0x0030 + uint32_t numAttributes; // 0x0034 + int32_t numInitData; // 0x0038 + uint32_t numAttributes2; // 0x003C + uint32_t numInternStrings; // 0x0040 + uint32_t numModules; // 0x0044 + int32_t devEntry; // 0x0048 + int32_t appEntry; // 0x004C + uint32_t numStringPool; // 0x0050 + uint32_t numBytePool; // 0x0054 + void* modules; // 0x0058 + TypeDefinition* types; + TypeImpl* typesImpl; + MethodDefinition* methods; + MethodImpl* methodsImpl; + Field* fields; + FieldImpl* fieldsImpl; + Property* properties; + PropertyImpl* propertiesImpl; + void* events; + ParameterDef* params; + AttributeDef* attributes; + int32_t* initData; + void* unk + int32_t* attributes2; + char* stringPool; + uint8_t* bytePool; + int32_t* internStrings; + } +} + +namespace System { + struct String : via.clr.ManagedObject 0x100 { + int32_t len + char data[256] [[utf16*]] + }; +}; + +namespace game { + struct InputSystem : via.clr.ManagedObject 0x170 { + }; + + struct IkArmFit 0x100 { + struct ArmSolver : via.clr.ManagedObject 0x30 { + via.Joint* ApplyJoint; + via.motion.AxisDirection Dir; + via.motion.AxisDirection Up; + via.motion.AxisDirection Rot; + float L0; + float L1; + }; + + struct ArmData : via.clr.ManagedObject 0x80 { + float BlendRate; + via.Range ReachRate; + System.String* ApplyHandName + 4; + bool LeftHand; + float DefaultHandAngle + 3 + via.Range AxisYRange; + via.Range AxisZRange + via.mat4 TargetMatrix; + }; + } +} + +namespace via { + namespace gui { + struct GUIManager{} + } + + struct array : via.clr.ManagedObject 0x100 { + TypeDefinition* contained_type + int32_t count + int32_t allocated + }; + + struct JobSet { + struct Job{}; + }; + + struct fixed_array_jobs { + via.JobSet.Job jobs[8]; + }; + + struct JobSet { + struct JobThing 0x100 { + void* func; + }; + + struct Unk 0x100{ + void** vtable; + via.Object* owner; + void* func + via.Object* owner2 + 8; + }; + + Unk* data; + }; + + namespace gui { + struct TransformObject {}; + struct View {}; + + struct PrimitiveContext 0x300 { + int32_t gui_camera @ 0xEC + }; + + struct GUIMeshRenderer 0x100 { + + }; + + struct GUI : via.Component 0x2D0 { + via.SceneView* SceneView; + void* GUIResource; + void* RtTextureHandle; + void* GUISound; + bool Enabled @ 0x50 + bool FailedSetup; + uint8_t MaskLayerBits; + uint8_t MaskLayerBits2; + uint8_t MaskLayerBits3; + uint32_t RenderOutputID @ 0x58 + float PlaySpeed @ 0x5C + uint32_t Segment; + uint32_t SoftParticleDistType @ 0x64 + float SoftParticleDist; + View* View + 4; + }; + + struct Control : TransformObject 0x1B0 { + uint32_t StatePattern @ 0x124 + float PlayFrame @ 0x128 + via.vec4 ColorScale + via.vec3 ColorOffset + float Saturation + bool UseGUISound @ 0x188 + }; + + struct Window : Control 0x1C0 { + bool Open + }; + + struct View : Window 0x1E0 { + bool Overlay @ 0x1C0 + bool DepthTest; + bool DetoneMap; + bool CoordCorrection; + uint32_t ViewType @ 0x1C4; + uint32_t ReprojectionType+4; + via.Size ScreenSize ; + float BaseFps @ 0x1D8 + bool UseGUICamera + }; + + struct PlayObject : via.clr.ManagedObject 0x50 { + wchar_t* Name [[utf16*]] + GUI* Component; + Control* Parent @ 0x28 + PlayObject* Next; + PlayObject* Prev; + + uint16_t Priority @ 0x42 + + uint8_t pad @ 0x47 + + // Render flags + uint64_t Visible : 1; // 1 + uint64_t Visible2 : 1; // 2 + uint64_t HitVisible : 1; // 3 + uint64_t ShouldPlay : 1; // 4 + uint64_t IsPlaying : 1; // 5 + uint64_t IsInteractive : 1; // 6 + uint64_t HasName : 1; // 7 + uint64_t HasTag : 1; // 8 + uint64_t SequenceAsset : 1; // 9 + uint64_t IsPNG : 1; // 10 + uint64_t IsJPG : 1; // 11 + uint64_t LinearAlphaBlend : 1; // 12 + uint64_t CompOwnership : 1; // 13 + uint64_t DuplicateRoot : 1; // 14 + uint64_t DataBind : 1; // 15 + uint64_t DataBinding : 1; // 16 + uint64_t AllocExData : 1; // 17 + uint64_t NextStateEnable : 1; // 18 + uint64_t _Unk : 1; // 19 + uint64_t _Unk2 : 1; // 20 + uint64_t ResolutionAdjust : 1; // 21 + uint64_t UniqueVisible : 1; // 22 + uint64_t EffectAlphaType : 1; // 23 + uint64_t HasOverrideProp : 1; // 24 + uint64_t IsCapturable : 1; // 25 + uint64_t ForceInvisible : 1; // 26 + uint64_t ClipPlaying : 1; // 27 + uint64_t BlendType : 2; // 28-29 + uint64_t MaskType : 3; // 30 - 32 + uint64_t MaskMode : 3; // 33 - 35 + uint64_t ColorType : 2; // 36 - 37 + uint64_t ControlPoint : 4; // 38 - 41 + uint64_t ResolutionCond : 2; // 42 - 43 + uint64_t ResolutionScale : 2; // 44 - 45 + uint64_t UVType : 2; // 46 - 47 + uint64_t UnkFlags : 17; + }; + + struct TransformObject : PlayObject 0x120 { + }; + + struct GUIManager 0x1A0 { + via.JobSet update_task @ 0xe0 + via.JobSet draw_task @ 0x120; + }; + } +} + +namespace via { +struct Sphere 0x10 { + via.vec3 pos; + float r; +}; + +struct Capsule 0x30 { + via.vec4 p0; + via.vec4 p1; + float r; +}; + +namespace motion { +struct ChainCollisionArray{}; +struct ChainCollisionData{}; +struct ChainCollisionTop{}; + +struct ChainCollisions 0x180 { + uint32_t order; + via.Sphere sphere+0xc; + via.Capsule capsule; + via.vec4 offset @ 0xD0; + via.vec4 pair_offset; + via.Joint* joint @ 0x130 + via.Joint* pair_joint + ChainCollisionData* data; + ChainCollisionTop* owner; + float radius; + float radius2; + int32_t d; + float lerp; + int32_t pad2; + uint32_t flags; + float scale; + bool valid; +}; + +struct ChainCollisionData { + void* sub_data; + via.vec3 pos; + via.vec3 pair_pos; + uint32_t joint_hash; + uint32_t pair_joint_hash; + float radius; + float lerp; + uint8_t shape_type; + uint8_t div; + uint8_t num_sub_data; + uint8_t unk; + uint32_t flags; + uint32_t unk; +}; + +struct ChainCollisionTop 0x100 { + ChainCollisions* collisions; + uint32_t num_collisions; + uint32_t allocated_collisions + void** owner_transform; + void* parent_transform; + float scale; + float parent_scale; +}; + +struct ChainCollisionArray { + ChainCollisionTop* collisions + int32_t num; + int32_t num_allocated; + int32_t preset_id; +}; + +struct SecondaryAnimation : via.Component 0x50 { + void* motion +}; + +struct Chain : via.motion.SecondaryAnimation 0x390 { + + ChainCollisionArray CollisionData @ 0x140; + float BlendRate @ 0x22C + float FreezeRate @ 0x230 + float StepFrame @ 0x280 + uint32_t CalculateMode @ 0x378 + uint32_t GravityCoord @ 0x380 +}; +} +} + +struct RenderEntity : via.Component 0x498 { +}; + +struct RTInternal 0x1000 { + char* name @ 0x168 [[utf8*]] + uint32_t unkint @ 0x180 + uint32_t unkint2 + uint32_t RayTracingMode @ 0x188 + uint32_t Spp + uint8_t unk2 @ 0x190 + + via.vec3 params @ 0x19c + bool use_transparent @ 0x1AC + bool specular_secondary_bounce @ 0x1Ae + bool use_no_movement_depth_comp + float normal_compare_thresh + bool use_diffuse_bounce_intensity + float diffuse_bounce_intensity_mult + 3 + bool use_specular_bounce_intensity + float specular_bounce_intensity + 3 + bool ray_trace_ambient_occlusion + float ray_trace_ratio + 3 + float unkflooat + uint32_t sampling_pattern + float surfel_size @ 0x1DC + float asdfasdgadsg +}; + +struct RayTrace : RenderEntity 0x1000 { + RTInternal* impl; +}; + +namespace via { +struct ManagedObjectArray { + via.clr.ManagedObject** objects; + uint32_t count; + uint32_t capacity; +}; + +struct UIntArray { + uint32_t* data; + uint64_t count; +}; + +struct UIntArrayArray { + UIntArray* data; + uint64_t count; +}; + +struct UInt8Array { + uint8_t* data; + uint64_t count; +}; + +struct IntArray { + int32_t* data; + uint64_t count; +}; + +namespace behaviortree { +struct BehaviorTreeCoreHandleArray {}; +struct TreeNode{}; +struct TreeObject {}; + +struct NodeArray { + TreeNode* nodes; + uint32_t count +}; + +struct NodeArray2 { + TreeNode** nodes; + uint32_t unk + uint32_t count +}; + +struct Selector : via.clr.ManagedObject 0x28 { + bool late_select @ 0x10 + bool b2 + bool b3 + uint32_t* buf + 5 + uint32_t bufsize; +}; + +struct SelectorFSM : Selector 0x60 { + TreeNode* owner_node @ 0x28 + TreeNode* active_node + NodeArray2 next_nodes; + NodeArray2 node_choices; + + + bool illegal @ 0x58 +}; + +struct Condition : via.clr.ManagedObject { +}; + +enum NodeStatus : uint32_t { + Off = 0, + On = 2 +}; + +struct TreeNodeData { + uint32_t id + uint32_t id_2; + uint32_t attr + bool is_branch + bool is_end; + bool has_selector; + + uint32_t parent @ 0x34; + uint32_t parent_2; + + UIntArray children + 4; + UIntArray children2; + IntArray conditions; + UIntArray states; + UIntArray states_2; + IntArray transition_conditions; + UIntArray transition_ids; + UIntArray transition_attributes; + UIntArray actions; + UIntArray actions_2; + + IntArray start_transitions @ 0x130 + // aka the first choices when the node activates? + UIntArray start_states @ 0x140 + UIntArray start_states_2 + UIntArrayArray transition_events + UIntArrayArray start_transition_events + UIntArrayArray unkarray3 + UIntArray tags + + wchar_t name[12] @ 0x1a0 [[utf16*]] + uint32_t name_len; + uint32_t name_capacity; + uint32_t name_offset; // offset inside the in-memory structure...? + uint32_t name_murmur_hash; + uint32_t full_name_murmur_hash; + uint32_t pad__; +}; + +struct TreeNode 0xD0 { + uint64_t id + TreeNodeData* data; + TreeObject* owner; + uint16_t attr; + uint16_t unk_flags; + uint16_t pad[2]; + SelectorFSM* selector; + Condition* selector_condition; + int32_t selector_condition_index; + int32_t priority; + TreeNode* node_parent; + uint32_t num_children + uint32_t num_actions + 0xC + uint32_t num_selector_callers + Condition* parent_condition; + int32_t parent_condition_index; + NodeStatus status1 + NodeStatus status2 + + wchar_t name[12] + 4 [[utf16*]] + uint32_t name_len + uint32_t name_capacity + + TreeNode* node_end; + TreeNode* node_restart; + TreeNode* node_end_notify; + TreeNode* node_end_selector; + TreeNode* node_active_child; +}; + +struct TreeObjectData 0x300 { + void* vftable; + TreeNodeData* nodes; + uint32_t node_count; + ManagedObjectArray static_selector_callers+4; + ManagedObjectArray static_actions; + ManagedObjectArray static_conditions; + ManagedObjectArray static_transitions; + ManagedObjectArray expression_tree_conditions; + ManagedObjectArray actions; + ManagedObjectArray conditions; + ManagedObjectArray transitions; + + UInt8Array action_methods @ 0xF8; + UInt8Array static_action_methods +}; + +struct TreeObject 0xD8 { + void* vfptr; + TreeObjectData* data; + NodeArray nodes @ 0x10 + + ManagedObjectArray selectors+4 + ManagedObjectArray actions @ 0x40 + ManagedObjectArray conditions + ManagedObjectArray transitions + ManagedObjectArray expression_tree_conditions + UIntArray selector_nodes; + ManagedObjectArray delayed_actions; + ManagedObjectArray delayed_conditions; + ManagedObjectArray delayed_transitions; + TreeNode* root_node; +}; + +struct Core 0x1E0 { + void** vftable + TreeObject* tree_object +}; + +struct CoreHandle : via.clr.ManagedObject 0x220 { + Core core @ 0x18 +}; + +struct BehaviorTreeData 0x100 { + void* vftable; + bool unk_bool + TreeObjectData data @ 0x10 +}; + +struct BehaviorTree : via.Component { + BehaviorTreeCoreHandleArray trees @ 0x98 +}; + +struct BehaviorTreeCoreHandleArray { + via.behaviortree.CoreHandle** handles; + uint32_t count; +}; +} + +namespace motion { +struct MotionFsm2Layer : via.behaviortree.CoreHandle { +}; + +struct MotionFsm2 : via.behaviortree.BehaviorTree 0x100 { +}; + +struct TransitionMap { + uint32_t id; + uint32_t index; +}; + +enum InterpolationMode : uint32_t { + Fuck = 1 +}; + +struct TransitionData { + uint32_t id; + uint32_t end_type : 4 + uint32_t interpolation_mode : 4 + uint32_t prev_move_to_end : 1 + uint32_t start_type : 4 + uint32_t elapsed_time_zero : 1 + uint32_t cont_on_layer : 1 + uint32_t cont_on_layer_interp_curve : 4 + float exit_frame + float start_frame + float interpolation_frame + uint32_t pad + uint32_t pad2 + uint32_t pad3 + uint32_t pad4 +}; + +struct Data 0x100 { +}; + +struct MotionFsm2RawData { + uint8_t hdr[0x10] + uint8_t* file_data; + TransitionMap* transition_map; + TransitionData* transition_data; + Data* data; + uint32_t transition_map_count; + uint32_t transition_data_count; + uint32_t transition_data_start; +}; + + +struct MotionFsm2Internal 0x180 { + void* vftable + MotionFsm2RawData* data; + via.behaviortree.BehaviorTreeData bhvt + 8; +}; + +struct MotionFsm2Resource 0x220 { + MotionFsm2Internal fsm2data @ 0x50 +}; +} + +} + +} \ No newline at end of file diff --git a/reversing/dd2.genny b/reversing/dd2.genny new file mode 100644 index 000000000..ab400c060 --- /dev/null +++ b/reversing/dd2.genny @@ -0,0 +1,1052 @@ +type uint64_t 8 [[u64]] +type int64_t 8 [[i64]] +type int32_t 4 [[i32]] +type uint32_t 4 [[u32]] +type int16_t 2 [[i16]] +type uint16_t 2 [[u16]] +type uint8_t 1 [[u8]] +type float 4 [[f32]] +type char 1 +type void 0 +type wchar_t 2 [[u16]] +type bool 1 [[u8]] + +namespace regenny{ +struct TypeDefinition{} +struct ManagedVtable{} +struct BullShit 0x5000{} + +namespace via.typeinfo{ +struct TypeInfo {} +} + +namespace via { + struct vec3 { + float x; + float y; + float z; + }; + + struct vec4 : vec3 { + float w; + }; + + struct mat4 { + float m[4][4]; + }; + + struct Object { + void* vtable; + }; +}; + +namespace via.clr { + struct ManagedObject { + ManagedVtable* info + uint32_t reference_count + uint32_t unk + } +} + + +namespace via { + enum class CameraType : uint32_t { + Game = 0, + Debug = 1, + Scene = 2, + SceneXY = 3, + SceneYZ = 4, + SceneXZ = 5, + Preview = 6, + } + + enum class DisplayType : uint32_t { + Fit = 0, + Uniform4x3 = 1, + Uniform16x9 = 2, + Uniform16x10 = 3, + Uniform21x9 = 4, + Uniform32x9 = 5, + Uniform48x9 = 6, + Fix480p = 7, + Fix720p = 8, + Fix1080p = 9, + Fix4K = 10, + Fix8K = 11, + FixResolution = 12, + FixResolution16x9 = 13, + NintendoSwitch = 14, + Fix684x384 = 15, + Fix1368x768 = 16, + Nexus6P = 17, + GalaxyS9 = 18, + XperiaZ5Premium = 19, + iPhoneX = 20, + iPhone7 = 21, + ZenPadS8 = 22, + } + + + enum class BasisPlane : uint32_t{ + XZ = 0, + XY = 1, + YZ = 2, + } + + enum class MobileBarState : uint32_t{None = 0} + enum class DeviceOrientation : uint32_t{None = 0} + enum class RenderType : uint32_t{None = 0} + + struct Window{} + struct Scene{} + + struct Color { + uint32_t rgba + } + struct Size { + float w + float h + } + + struct Point { + float x; + float y; + }; + + struct Window 0x100 { + void* vtable + uint32_t width @ 0x60 + uint32_t height + via.Point cursor_pos; + bool show_cursor; + via.Size borderless_size @ 0xB8 + }; + + struct SceneView : via.clr.ManagedObject 0xb0 { + Window* window @ 0x10 + Scene* scene + via.Color background_color @ 0x20 + wchar_t* name @ 0x28 [[utf16*]] + via.Size size @ 0x30 + via.Size custom_display_size + via.Size present_rect + bool draw_develop @ 0x60 + bool tool_light + bool show_icons + bool outline_fadeout_enable + DisplayType display_type + via.BasisPlane basis_plane + CameraType camera_type + RenderType render_type + int32_t icon_size + float indicator_scale + void* message_function_handle @ 0x90 + via.DeviceOrientation orientation @ 0x9C + via.MobileBarState mobile_status_bar_state + via.MobileBarState mobile_nav_bar_state + bool fix_mobile_nav_bar_bottom + } + + struct Scene : via.clr.ManagedObject{ + char asdf + float timescale @ 0x20 + } + + struct SceneArray { + int32_t count + via.Scene** elements @ 0x8 + } +} + +namespace via { + struct SceneManager 0x1D8 { + via.SceneView* main_view @ 0x48 + via.Scene* main_scene @ 0x50 + via.SceneArray scenes @ 0x78 + } +} + +namespace via { + struct Transform{}; + struct Folder{}; + + struct GameObject : via.clr.ManagedObject 0x50 { + bool Update @ 0x12; + bool Draw; + bool UpdateSelf; + bool DrawSelf; + via.Transform* Transform +2 + via.Folder* folder + + float timescale @ 0x4C + }; + + struct Component : via.clr.ManagedObject { + via.GameObject* GameObject; + via.Component* ChildComponent; + via.Component* PrevComponent; + via.Component* NextComponent; + }; + + struct Folder : via.clr.ManagedObject { + }; + + struct JointDesc { + wchar_t* name [[utf16*]]; + uint32_t name_hash; + int16_t parent_index; + int16_t symmetry_index; + via.vec4 position; + via.vec4 rotation; + via.vec4 scale; + }; + + struct Joint : via.clr.ManagedObject 0x60 { + via.Transform* Owner; + via.JointDesc* Desc; + via.vec4 LocalPosition; + via.vec4 LocalRotation; + via.vec4 LocalScale + int32_t ConstraintJointIndex; + int32_t JointIndex; + }; + + // VMArray/REArray/whatever + struct JointArray : via.clr.ManagedObject { + via.typeinfo.TypeInfo* array_type + int32_t count; + int32_t num_allocated; + Joint* joints[256]; + }; + + struct Transform : via.Component 0x110 { + via.vec4 Position @ 0x30 + via.vec4 Rotation @ 0x40 + via.vec4 Scale @ 0x50 + + via.Scene* Scene + via.Transform* Child @ 0x68 + via.Transform* Next + via.Transform* Parent + via.mat4 WorldTransform + void* JointHashTbl; + int32_t ParentJointIndex + int32_t UpdateFrame @ 0xCC + bool SameJointsConstraint; + bool DirtySelf; + bool DirtyUpwards; + bool AbsoluteScaling; + JointArray* JointTbl + 4 + via.mat4* JointMatrixTbl; + }; + + struct JointData + { + via.vec4 rotation; + via.vec4 translation; + via.vec4 scale; + via.vec4 blend; + }; + + + struct JointMap { + JointData* joints; + int32_t num_joints + 4 + }; + + struct Motion 0x1000 { + JointMap jointmap @ 0x200 + }; +} + +namespace via { + namespace motion { + enum AxisDirection { + X = 1, + Y = 2, + NZ = 7 + }; + } + +struct Range { + float s; + float r; +}; +} + +namespace via.typeinfo { + struct TypeInfo{ + void* vfptr + uint32_t fqn_hash + uint16_t attributes + uint16_t type + uint64_t fast_class_index + uint64_t bsr_fast_class_index + char* name [[utf8*]] + uint32_t parent_typeid + uint32_t size + uint32_t crc + uint32_t mics_flags + via.typeinfo.TypeInfo* parent + via.typeinfo.TypeInfo* child + via.typeinfo.TypeInfo* next + void* reflection + TypeDefinition* type_definition + } +} + +namespace tdb71 { + struct TypeDefinition{} +} + +namespace { + + +struct ManagedVtable { + tdb71.TypeDefinition* t + void* funcs[32] +} +} + +namespace { +struct DeserializeSequence { + uint32_t code : 8; + uint32_t size : 8; + uint32_t align : 8; + uint32_t depth : 6; + uint32_t is_array : 1; + uint32_t is_static : 1; + + uint32_t offset; + tdb71.TypeDefinition* native_type; +}; +} + +namespace tdb71 { + struct MethodDefinition 0xC { + uint32_t declaring_typeid : 19; + uint32_t pad : 13 + uint32_t impl_id : 19; + uint32_t params : 13; + int32_t offset; + } + + struct MethodImpl { + uint16_t attributes_id; + int16_t vtable_index; + uint16_t flags; + uint16_t impl_flags; + uint32_t name_offset; + }; + + struct TypeDefinition 0x48 { + uint64_t index : 19; + uint64_t parent_typeid : 19; + uint64_t declaring_typeid : 19; + uint64_t underlying_typeid : 7; + uint64_t array_typeid : 19; + uint64_t element_typeid : 19; + + uint64_t impl_index : 18; + //uint64_t object_type : 3; + uint64_t system_typeid : 7; + + uint32_t type_flags; + uint32_t size; + uint32_t fqn_hash; + uint32_t type_crc; + uint64_t default_ctor : 22; + uint64_t member_method : 22; + uint64_t member_field : 19; + uint32_t num_member_prop : 12; + uint32_t member_prop : 19; + + uint32_t unk_data : 26; + uint32_t object_type : 3 + + int64_t unk_data_before_generics : 26; + int64_t generics : 26; + int64_t interfaces : 12; + via.typeinfo.TypeInfo* type @ 0x38; + void** managed_vt; + //struct REObjectInfo* managed_vt; + }; + + struct TypeImpl 0x30 { + int32_t name_offset; // 0 + int32_t namespace_offset; // 4 + int32_t field_size; // 8 + int32_t static_field_size; // c + //uint32_t module_id; // 10 + //uint32_t array_rank; // 14 + uint64_t unk_pad : 33; + uint64_t num_member_fields : 24; // 0x10 bitfield + uint64_t unk_pad_2 : 7 + uint16_t num_member_methods; // 0x18 + int16_t num_native_vtable; // 0x1A + int16_t interface_id; + //uint16_t num_native_vtable; + //uint16_t attributes_id; + //uint16_t num_vtable; + //uint64_t mark; + //uint64_t cycle; + }; + + struct Field { + uint64_t declaring_typeid : 19; + uint64_t impl_id : 19; + uint64_t field_typeid : 19; + uint64_t init_data_hi : 6 + }; + + struct FieldImpl 0xC { + uint16_t attributes; + uint16_t unk : 1 + uint16_t flags : 15 + uint32_t offset : 26; + uint32_t init_data_lo : 6 + uint32_t name_offset : 22 + uint32_t init_data_mid : 4 + + /*uint16_t attributes_id; + uint16_t flags; + uint32_t unk_pad : 6; + uint32_t field_typeid : 19; + uint32_t init_data_lo : 14; + uint32_t name_offset : 30;*/ + //uint32_t init_data_hi : 2; + }; + + struct Property { + }; + + struct PropertyImpl { + }; + + struct ParameterDef { + uint16_t attributes_id; + uint16_t init_data_index; + uint32_t name_offset : 30; + uint32_t modifier : 2; + uint32_t type_id : 18; + uint32_t flags : 14; + }; + + struct AttributeDef { + }; + + struct ParamList { + uint16_t numParams; //0x0000 + int16_t invokeID; //0x0002 + uint32_t returnType; //0x0004 + uint32_t params[256]; //0x0008 + }; + + struct TDB { + struct test{} + uint32_t magic; // 0x0000 + uint32_t version; // 0x0004 + uint32_t initialized; // 0x0008 + uint32_t numTypes; // 0x000C + uint32_t numMethods; // 0x0010 + uint32_t numFields; // 0x0014 + uint32_t numTypeImpl; // 0x0018 + uint32_t numFieldImpl; // 0x001C + uint32_t numMethodImpl; // 0x0020 + uint32_t numPropertyImpl; // 0x0024 + uint32_t numProperties; // 0x0028 + uint32_t numEvents; // 0x002C + uint32_t numParams; // 0x0030 + uint32_t numAttributes; // 0x0034 + int32_t numInitData; // 0x0038 + uint32_t numAttributes2; // 0x003C + uint32_t numInternStrings; // 0x0040 + uint32_t numModules; // 0x0044 + int32_t devEntry; // 0x0048 + int32_t appEntry; // 0x004C + uint32_t numStringPool; // 0x0050 + uint32_t numBytePool; // 0x0054 + void* modules; // 0x0058 + TypeDefinition* types; + TypeImpl* typesImpl; + MethodDefinition* methods; + MethodImpl* methodsImpl; + Field* fields; + FieldImpl* fieldsImpl; + Property* properties; + PropertyImpl* propertiesImpl; + void* events; + ParameterDef* params; + AttributeDef* attributes; + int32_t* initData; + void* unk + int32_t* attributes2; + char* stringPool; + uint8_t* bytePool; + int32_t* internStrings; + } +} + +namespace System { + struct String : via.clr.ManagedObject 0x100 { + int32_t len + char data[256] [[utf16*]] + }; +}; + +namespace game { + struct InputSystem : via.clr.ManagedObject 0x170 { + }; + + struct IkArmFit 0x100 { + struct ArmSolver : via.clr.ManagedObject 0x30 { + via.Joint* ApplyJoint; + via.motion.AxisDirection Dir; + via.motion.AxisDirection Up; + via.motion.AxisDirection Rot; + float L0; + float L1; + }; + + struct ArmData : via.clr.ManagedObject 0x80 { + float BlendRate; + via.Range ReachRate; + System.String* ApplyHandName + 4; + bool LeftHand; + float DefaultHandAngle + 3 + via.Range AxisYRange; + via.Range AxisZRange + via.mat4 TargetMatrix; + }; + } +} + +namespace via { + namespace gui { + struct GUIManager{} + } + + struct array : via.clr.ManagedObject 0x100 { + TypeDefinition* contained_type + int32_t count + int32_t allocated + }; + + struct JobSet { + struct Job{}; + }; + + struct fixed_array_jobs { + via.JobSet.Job jobs[8]; + }; + + struct JobSet { + struct JobThing 0x100 { + void* func; + }; + + struct Unk 0x100{ + void** vtable; + via.Object* owner; + void* func + via.Object* owner2 + 8; + }; + + Unk* data; + }; + + namespace gui { + struct TransformObject {}; + struct View {}; + + struct PrimitiveContext 0x300 { + int32_t gui_camera @ 0xEC + }; + + struct GUIMeshRenderer 0x100 { + + }; + + struct GUI : via.Component 0x2D0 { + via.SceneView* SceneView; + void* GUIResource; + void* RtTextureHandle; + void* GUISound; + bool Enabled @ 0x50 + bool FailedSetup; + uint8_t MaskLayerBits; + uint8_t MaskLayerBits2; + uint8_t MaskLayerBits3; + uint32_t RenderOutputID @ 0x58 + float PlaySpeed @ 0x5C + uint32_t Segment; + uint32_t SoftParticleDistType @ 0x64 + float SoftParticleDist; + View* View + 4; + }; + + struct Control : TransformObject 0x1B0 { + uint32_t StatePattern @ 0x124 + float PlayFrame @ 0x128 + via.vec4 ColorScale + via.vec3 ColorOffset + float Saturation + bool UseGUISound @ 0x188 + }; + + struct Window : Control 0x1C0 { + bool Open + }; + + struct View : Window 0x1E0 { + bool Overlay @ 0x1C0 + bool DepthTest; + bool DetoneMap; + bool CoordCorrection; + uint32_t ViewType @ 0x1C4; + uint32_t ReprojectionType+4; + via.Size ScreenSize ; + float BaseFps @ 0x1D8 + bool UseGUICamera + }; + + struct PlayObject : via.clr.ManagedObject 0x50 { + wchar_t* Name [[utf16*]] + GUI* Component; + Control* Parent @ 0x28 + PlayObject* Next; + PlayObject* Prev; + + uint16_t Priority @ 0x42 + + uint8_t pad @ 0x47 + + // Render flags + uint64_t Visible : 1; // 1 + uint64_t Visible2 : 1; // 2 + uint64_t HitVisible : 1; // 3 + uint64_t ShouldPlay : 1; // 4 + uint64_t IsPlaying : 1; // 5 + uint64_t IsInteractive : 1; // 6 + uint64_t HasName : 1; // 7 + uint64_t HasTag : 1; // 8 + uint64_t SequenceAsset : 1; // 9 + uint64_t IsPNG : 1; // 10 + uint64_t IsJPG : 1; // 11 + uint64_t LinearAlphaBlend : 1; // 12 + uint64_t CompOwnership : 1; // 13 + uint64_t DuplicateRoot : 1; // 14 + uint64_t DataBind : 1; // 15 + uint64_t DataBinding : 1; // 16 + uint64_t AllocExData : 1; // 17 + uint64_t NextStateEnable : 1; // 18 + uint64_t _Unk : 1; // 19 + uint64_t _Unk2 : 1; // 20 + uint64_t ResolutionAdjust : 1; // 21 + uint64_t UniqueVisible : 1; // 22 + uint64_t EffectAlphaType : 1; // 23 + uint64_t HasOverrideProp : 1; // 24 + uint64_t IsCapturable : 1; // 25 + uint64_t ForceInvisible : 1; // 26 + uint64_t ClipPlaying : 1; // 27 + uint64_t BlendType : 2; // 28-29 + uint64_t MaskType : 3; // 30 - 32 + uint64_t MaskMode : 3; // 33 - 35 + uint64_t ColorType : 2; // 36 - 37 + uint64_t ControlPoint : 4; // 38 - 41 + uint64_t ResolutionCond : 2; // 42 - 43 + uint64_t ResolutionScale : 2; // 44 - 45 + uint64_t UVType : 2; // 46 - 47 + uint64_t UnkFlags : 17; + }; + + struct TransformObject : PlayObject 0x120 { + }; + + struct GUIManager 0x1A0 { + via.JobSet update_task @ 0xe0 + via.JobSet draw_task @ 0x120; + }; + } +} + +namespace via { +struct Sphere 0x10 { + via.vec3 pos; + float r; +}; + +struct Capsule 0x30 { + via.vec4 p0; + via.vec4 p1; + float r; +}; + +namespace motion { +struct ChainCollisionArray{}; +struct ChainCollisionData{}; +struct ChainCollisionTop{}; + +struct ChainCollisions 0x180 { + uint32_t order; + via.Sphere sphere+0xc; + via.Capsule capsule; + via.vec4 offset @ 0xD0; + via.vec4 pair_offset; + via.Joint* joint @ 0x130 + via.Joint* pair_joint + ChainCollisionData* data; + ChainCollisionTop* owner; + float radius; + float radius2; + int32_t d; + float lerp; + int32_t pad2; + uint32_t flags; + float scale; + bool valid; +}; + +struct ChainCollisionData { + void* sub_data; + via.vec3 pos; + via.vec3 pair_pos; + uint32_t joint_hash; + uint32_t pair_joint_hash; + float radius; + float lerp; + uint8_t shape_type; + uint8_t div; + uint8_t num_sub_data; + uint8_t unk; + uint32_t flags; + uint32_t unk; +}; + +struct ChainCollisionTop 0x100 { + ChainCollisions* collisions; + uint32_t num_collisions; + uint32_t allocated_collisions + void** owner_transform; + void* parent_transform; + float scale; + float parent_scale; +}; + +struct ChainCollisionArray { + ChainCollisionTop* collisions + int32_t num; + int32_t num_allocated; + int32_t preset_id; +}; + +struct SecondaryAnimation : via.Component 0x50 { + void* motion +}; + +struct Chain : via.motion.SecondaryAnimation 0x390 { + + ChainCollisionArray CollisionData @ 0x140; + float BlendRate @ 0x22C + float FreezeRate @ 0x230 + float StepFrame @ 0x280 + uint32_t CalculateMode @ 0x378 + uint32_t GravityCoord @ 0x380 +}; +} +} + +struct RenderEntity : via.Component 0x498 { +}; + +struct RTInternal 0x1000 { + char* name @ 0x168 [[utf8*]] + uint32_t unkint @ 0x180 + uint32_t unkint2 + uint32_t RayTracingMode @ 0x188 + uint32_t Spp + uint8_t unk2 @ 0x190 + + via.vec3 params @ 0x19c + bool use_transparent @ 0x1AC + bool specular_secondary_bounce @ 0x1Ae + bool use_no_movement_depth_comp + float normal_compare_thresh + bool use_diffuse_bounce_intensity + float diffuse_bounce_intensity_mult + 3 + bool use_specular_bounce_intensity + float specular_bounce_intensity + 3 + bool ray_trace_ambient_occlusion + float ray_trace_ratio + 3 + float unkflooat + uint32_t sampling_pattern + float surfel_size @ 0x1DC + float asdfasdgadsg +}; + +struct RayTrace : RenderEntity 0x1000 { + RTInternal* impl; +}; + +namespace via { +struct ManagedObjectArray { + via.clr.ManagedObject** objects; + uint32_t count; + uint32_t capacity; +}; + +struct UIntArray { + uint32_t* data; + uint64_t count; +}; + +struct UIntArrayArray { + UIntArray* data; + uint64_t count; +}; + +struct UInt8Array { + uint8_t* data; + uint64_t count; +}; + +struct IntArray { + int32_t* data; + uint64_t count; +}; + +namespace behaviortree { +struct BehaviorTreeCoreHandleArray {}; +struct TreeNode{}; +struct TreeObject {}; + +struct NodeArray { + TreeNode* nodes; + uint32_t count +}; + +struct NodeArray2 { + TreeNode** nodes; + uint32_t unk + uint32_t count +}; + +struct Selector : via.clr.ManagedObject 0x28 { + bool late_select @ 0x10 + bool b2 + bool b3 + uint32_t* buf + 5 + uint32_t bufsize; +}; + +struct SelectorFSM : Selector 0x60 { + TreeNode* owner_node @ 0x28 + TreeNode* active_node + NodeArray2 next_nodes; + NodeArray2 node_choices; + + + bool illegal @ 0x58 +}; + +struct Condition : via.clr.ManagedObject { +}; + +enum NodeStatus : uint32_t { + Off = 0, + On = 2 +}; + +struct TreeNodeData { + uint32_t id + uint32_t id_2; + uint32_t attr + bool is_branch + bool is_end; + bool has_selector; + + uint32_t parent @ 0x34; + uint32_t parent_2; + + UIntArray children + 4; + UIntArray children2; + IntArray conditions; + UIntArray states; + UIntArray states_2; + IntArray transition_conditions; + UIntArray transition_ids; + UIntArray transition_attributes; + UIntArray actions; + UIntArray actions_2; + + IntArray start_transitions @ 0x130 + // aka the first choices when the node activates? + UIntArray start_states @ 0x140 + UIntArray start_states_2 + UIntArrayArray transition_events + UIntArrayArray start_transition_events + UIntArrayArray unkarray3 + UIntArray tags + + wchar_t name[12] @ 0x1a0 [[utf16*]] + uint32_t name_len; + uint32_t name_capacity; + uint32_t name_offset; // offset inside the in-memory structure...? + uint32_t name_murmur_hash; + uint32_t full_name_murmur_hash; + uint32_t pad__; +}; + +struct TreeNode 0xD0 { + uint64_t id + TreeNodeData* data; + TreeObject* owner; + uint16_t attr; + uint16_t unk_flags; + uint16_t pad[2]; + SelectorFSM* selector; + Condition* selector_condition; + int32_t selector_condition_index; + int32_t priority; + TreeNode* node_parent; + uint32_t num_children + uint32_t num_actions + 0xC + uint32_t num_selector_callers + Condition* parent_condition; + int32_t parent_condition_index; + NodeStatus status1 + NodeStatus status2 + + wchar_t name[12] + 4 [[utf16*]] + uint32_t name_len + uint32_t name_capacity + + TreeNode* node_end; + TreeNode* node_restart; + TreeNode* node_end_notify; + TreeNode* node_end_selector; + TreeNode* node_active_child; +}; + +struct TreeObjectData 0x300 { + void* vftable; + TreeNodeData* nodes; + uint32_t node_count; + ManagedObjectArray static_selector_callers+4; + ManagedObjectArray static_actions; + ManagedObjectArray static_conditions; + ManagedObjectArray static_transitions; + ManagedObjectArray expression_tree_conditions; + ManagedObjectArray actions; + ManagedObjectArray conditions; + ManagedObjectArray transitions; + + UInt8Array action_methods @ 0xF8; + UInt8Array static_action_methods +}; + +struct TreeObject 0xD8 { + void* vfptr; + TreeObjectData* data; + NodeArray nodes @ 0x10 + + ManagedObjectArray selectors+4 + ManagedObjectArray actions @ 0x40 + ManagedObjectArray conditions + ManagedObjectArray transitions + ManagedObjectArray expression_tree_conditions + UIntArray selector_nodes; + ManagedObjectArray delayed_actions; + ManagedObjectArray delayed_conditions; + ManagedObjectArray delayed_transitions; + TreeNode* root_node; +}; + +struct Core 0x1E0 { + void** vftable + TreeObject* tree_object +}; + +struct CoreHandle : via.clr.ManagedObject 0x220 { + Core core @ 0x18 +}; + +struct BehaviorTreeData 0x100 { + void* vftable; + bool unk_bool + TreeObjectData data @ 0x10 +}; + +struct BehaviorTree : via.Component { + BehaviorTreeCoreHandleArray trees @ 0x98 +}; + +struct BehaviorTreeCoreHandleArray { + via.behaviortree.CoreHandle** handles; + uint32_t count; +}; +} + +namespace motion { +struct MotionFsm2Layer : via.behaviortree.CoreHandle { +}; + +struct MotionFsm2 : via.behaviortree.BehaviorTree 0x100 { +}; + +struct TransitionMap { + uint32_t id; + uint32_t index; +}; + +enum InterpolationMode : uint32_t { + Fuck = 1 +}; + +struct TransitionData { + uint32_t id; + uint32_t end_type : 4 + uint32_t interpolation_mode : 4 + uint32_t prev_move_to_end : 1 + uint32_t start_type : 4 + uint32_t elapsed_time_zero : 1 + uint32_t cont_on_layer : 1 + uint32_t cont_on_layer_interp_curve : 4 + float exit_frame + float start_frame + float interpolation_frame + uint32_t pad + uint32_t pad2 + uint32_t pad3 + uint32_t pad4 +}; + +struct Data 0x100 { +}; + +struct MotionFsm2RawData { + uint8_t hdr[0x10] + uint8_t* file_data; + TransitionMap* transition_map; + TransitionData* transition_data; + Data* data; + uint32_t transition_map_count; + uint32_t transition_data_count; + uint32_t transition_data_start; +}; + + +struct MotionFsm2Internal 0x180 { + void* vftable + MotionFsm2RawData* data; + via.behaviortree.BehaviorTreeData bhvt + 8; +}; + +struct MotionFsm2Resource 0x220 { + MotionFsm2Internal fsm2data @ 0x50 +}; +} + +} + +} \ No newline at end of file diff --git a/reversing/dd2.rcnet b/reversing/dd2.rcnet new file mode 100644 index 000000000..42cd8d495 --- /dev/null +++ b/reversing/dd2.rcnet @@ -0,0 +1,13163 @@ + + + + + + + bool + int8_t + int16_t + int32_t + int64_t + ptrdiff_t + uint8_t + uint16_t + uint32_t + uint64_t + size_t + float + double + Vector2f + Vector3f + Vector4f + Matrix3x3f + Matrix3x4f + Matrix4x4f + char + wchar_t + char32_t + void* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/shared/sdk/ReClass_Internal_DD2.hpp b/shared/sdk/ReClass_Internal_DD2.hpp index 8a822e000..888f77cdc 100644 --- a/shared/sdk/ReClass_Internal_DD2.hpp +++ b/shared/sdk/ReClass_Internal_DD2.hpp @@ -213,14 +213,14 @@ class REGameObject : public REManagedObject bool shouldUpdateSelf; //0x0012 bool shouldDrawSelf; //0x0013 bool shouldSelect; //0x0014 - char pad_0015[11]; //0x0015 - class RETransform *transform; //0x0020 - class REFolder *folder; //0x0028 - class SystemString *name; //0x0030 This can either be a pointer to the name or embedded directly - uint32_t N00000DDA; //0x0038 - float timescale; //0x003C -}; //Size: 0x0040 -static_assert(sizeof(REGameObject) == 0x40); + char pad_0015[3]; //0x0015 + class RETransform *transform; //0x0018 + class REFolder *folder; //0x0020 + class SystemString *name; //0x0028 This can either be a pointer to the name or embedded directly + uint32_t N00000DDA; //0x0030 + float timescale; //0x0034 +}; //Size: 0x0038 +static_assert(sizeof(REGameObject) == 0x38); class REFieldList { diff --git a/shared/sdk/regenny/dd2/BullShit.hpp b/shared/sdk/regenny/dd2/BullShit.hpp new file mode 100644 index 000000000..f05b55b95 --- /dev/null +++ b/shared/sdk/regenny/dd2/BullShit.hpp @@ -0,0 +1,8 @@ +#pragma once +namespace regenny { +#pragma pack(push, 1) +struct BullShit { + private: char pad_0[0x5000]; public: +}; // Size: 0x5000 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/DeserializeSequence.hpp b/shared/sdk/regenny/dd2/DeserializeSequence.hpp new file mode 100644 index 000000000..0032eddef --- /dev/null +++ b/shared/sdk/regenny/dd2/DeserializeSequence.hpp @@ -0,0 +1,18 @@ +#pragma once +namespace regenny::tdb71 { +struct TypeDefinition; +} +namespace regenny { +#pragma pack(push, 1) +struct DeserializeSequence { + uint32_t code : 8; // 0x0 + uint32_t size : 8; // 0x0 + uint32_t align : 8; // 0x0 + uint32_t depth : 6; // 0x0 + uint32_t is_array : 1; // 0x0 + uint32_t is_static : 1; // 0x0 + uint32_t offset; // 0x4 + regenny::tdb71::TypeDefinition* native_type; // 0x8 +}; // Size: 0x10 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/ManagedVtable.hpp b/shared/sdk/regenny/dd2/ManagedVtable.hpp new file mode 100644 index 000000000..d058fcfe7 --- /dev/null +++ b/shared/sdk/regenny/dd2/ManagedVtable.hpp @@ -0,0 +1,12 @@ +#pragma once +namespace regenny::tdb71 { +struct TypeDefinition; +} +namespace regenny { +#pragma pack(push, 1) +struct ManagedVtable { + regenny::tdb71::TypeDefinition* t; // 0x0 + void* funcs[32]; // 0x8 +}; // Size: 0x108 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/RTInternal.hpp b/shared/sdk/regenny/dd2/RTInternal.hpp new file mode 100644 index 000000000..11b0ea086 --- /dev/null +++ b/shared/sdk/regenny/dd2/RTInternal.hpp @@ -0,0 +1,40 @@ +#pragma once +#include "via\vec3.hpp" +namespace regenny { +#pragma pack(push, 1) +struct RTInternal { + private: char pad_0[0x168]; public: + // Metadata: utf8* + char* name; // 0x168 + private: char pad_170[0x10]; public: + uint32_t unkint; // 0x180 + uint32_t unkint2; // 0x184 + uint32_t RayTracingMode; // 0x188 + uint32_t Spp; // 0x18c + uint8_t unk2; // 0x190 + private: char pad_191[0xb]; public: + regenny::via::vec3 params; // 0x19c + private: char pad_1a8[0x4]; public: + bool use_transparent; // 0x1ac + private: char pad_1ad[0x1]; public: + bool specular_secondary_bounce; // 0x1ae + bool use_no_movement_depth_comp; // 0x1af + float normal_compare_thresh; // 0x1b0 + bool use_diffuse_bounce_intensity; // 0x1b4 + private: char pad_1b5[0x3]; public: + float diffuse_bounce_intensity_mult; // 0x1b8 + bool use_specular_bounce_intensity; // 0x1bc + private: char pad_1bd[0x3]; public: + float specular_bounce_intensity; // 0x1c0 + bool ray_trace_ambient_occlusion; // 0x1c4 + private: char pad_1c5[0x3]; public: + float ray_trace_ratio; // 0x1c8 + float unkflooat; // 0x1cc + uint32_t sampling_pattern; // 0x1d0 + private: char pad_1d4[0x8]; public: + float surfel_size; // 0x1dc + float asdfasdgadsg; // 0x1e0 + private: char pad_1e4[0xe1c]; public: +}; // Size: 0x1000 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/RayTrace.hpp b/shared/sdk/regenny/dd2/RayTrace.hpp new file mode 100644 index 000000000..42f1f37c4 --- /dev/null +++ b/shared/sdk/regenny/dd2/RayTrace.hpp @@ -0,0 +1,13 @@ +#pragma once +#include "RenderEntity.hpp" +namespace regenny { +struct RTInternal; +} +namespace regenny { +#pragma pack(push, 1) +struct RayTrace : public RenderEntity { + regenny::RTInternal* impl; // 0x498 + private: char pad_4a0[0xb60]; public: +}; // Size: 0x1000 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/RenderEntity.hpp b/shared/sdk/regenny/dd2/RenderEntity.hpp new file mode 100644 index 000000000..7d5edae25 --- /dev/null +++ b/shared/sdk/regenny/dd2/RenderEntity.hpp @@ -0,0 +1,9 @@ +#pragma once +#include "via\Component.hpp" +namespace regenny { +#pragma pack(push, 1) +struct RenderEntity : public via::Component { + private: char pad_30[0x468]; public: +}; // Size: 0x498 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/System/String.hpp b/shared/sdk/regenny/dd2/System/String.hpp new file mode 100644 index 000000000..d8481b27e --- /dev/null +++ b/shared/sdk/regenny/dd2/System/String.hpp @@ -0,0 +1,11 @@ +#pragma once +#include "..\via\clr\ManagedObject.hpp" +namespace regenny::System { +#pragma pack(push, 1) +struct String : public regenny::via::clr::ManagedObject { + int32_t len; // 0x10 + // Metadata: utf16* + char data[256]; // 0x14 +}; // Size: 0x114 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/TypeDefinition.hpp b/shared/sdk/regenny/dd2/TypeDefinition.hpp new file mode 100644 index 000000000..a63f19ffd --- /dev/null +++ b/shared/sdk/regenny/dd2/TypeDefinition.hpp @@ -0,0 +1,7 @@ +#pragma once +namespace regenny { +#pragma pack(push, 1) +struct TypeDefinition { +}; // Size: 0x0 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/game/IkArmFit.hpp b/shared/sdk/regenny/dd2/game/IkArmFit.hpp new file mode 100644 index 000000000..6e37cec81 --- /dev/null +++ b/shared/sdk/regenny/dd2/game/IkArmFit.hpp @@ -0,0 +1,41 @@ +#pragma once +#include "..\via\Range.hpp" +#include "..\via\clr\ManagedObject.hpp" +#include "..\via\mat4.hpp" +#include "..\via\motion\AxisDirection.hpp" +namespace regenny::via { +struct Joint; +} +namespace regenny::System { +struct String; +} +namespace regenny::game { +#pragma pack(push, 1) +struct IkArmFit { + struct ArmSolver : public regenny::via::clr::ManagedObject { + regenny::via::Joint* ApplyJoint; // 0x10 + regenny::via::motion::AxisDirection Dir; // 0x18 + regenny::via::motion::AxisDirection Up; // 0x1c + regenny::via::motion::AxisDirection Rot; // 0x20 + float L0; // 0x24 + float L1; // 0x28 + private: char pad_2c[0x4]; public: + }; // Size: 0x30 + + struct ArmData : public regenny::via::clr::ManagedObject { + float BlendRate; // 0x10 + regenny::via::Range ReachRate; // 0x14 + private: char pad_1c[0x4]; public: + regenny::System::String* ApplyHandName; // 0x20 + bool LeftHand; // 0x28 + private: char pad_29[0x3]; public: + float DefaultHandAngle; // 0x2c + regenny::via::Range AxisYRange; // 0x30 + regenny::via::Range AxisZRange; // 0x38 + regenny::via::mat4 TargetMatrix; // 0x40 + }; // Size: 0x80 + + private: char pad_0[0x100]; public: +}; // Size: 0x100 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/game/InputSystem.hpp b/shared/sdk/regenny/dd2/game/InputSystem.hpp new file mode 100644 index 000000000..d5c4db425 --- /dev/null +++ b/shared/sdk/regenny/dd2/game/InputSystem.hpp @@ -0,0 +1,9 @@ +#pragma once +#include "..\via\clr\ManagedObject.hpp" +namespace regenny::game { +#pragma pack(push, 1) +struct InputSystem : public regenny::via::clr::ManagedObject { + private: char pad_10[0x160]; public: +}; // Size: 0x170 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/tdb71/AttributeDef.hpp b/shared/sdk/regenny/dd2/tdb71/AttributeDef.hpp new file mode 100644 index 000000000..7ad327cfc --- /dev/null +++ b/shared/sdk/regenny/dd2/tdb71/AttributeDef.hpp @@ -0,0 +1,7 @@ +#pragma once +namespace regenny::tdb71 { +#pragma pack(push, 1) +struct AttributeDef { +}; // Size: 0x0 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/tdb71/Field.hpp b/shared/sdk/regenny/dd2/tdb71/Field.hpp new file mode 100644 index 000000000..5c8d38b8c --- /dev/null +++ b/shared/sdk/regenny/dd2/tdb71/Field.hpp @@ -0,0 +1,12 @@ +#pragma once +namespace regenny::tdb71 { +#pragma pack(push, 1) +struct Field { + uint64_t declaring_typeid : 19; // 0x0 + uint64_t impl_id : 19; // 0x0 + uint64_t field_typeid : 19; // 0x0 + uint64_t init_data_hi : 6; // 0x0 + private: uint64_t pad_bitfield_0_3f : 1; public: +}; // Size: 0x8 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/tdb71/FieldImpl.hpp b/shared/sdk/regenny/dd2/tdb71/FieldImpl.hpp new file mode 100644 index 000000000..d80acff88 --- /dev/null +++ b/shared/sdk/regenny/dd2/tdb71/FieldImpl.hpp @@ -0,0 +1,15 @@ +#pragma once +namespace regenny::tdb71 { +#pragma pack(push, 1) +struct FieldImpl { + uint16_t attributes; // 0x0 + uint16_t unk : 1; // 0x2 + uint16_t flags : 15; // 0x2 + uint32_t offset : 26; // 0x4 + uint32_t init_data_lo : 6; // 0x4 + uint32_t name_offset : 22; // 0x8 + uint32_t init_data_mid : 4; // 0x8 + private: uint32_t pad_bitfield_8_1a : 6; public: +}; // Size: 0xc +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/tdb71/MethodDefinition.hpp b/shared/sdk/regenny/dd2/tdb71/MethodDefinition.hpp new file mode 100644 index 000000000..f71406e6e --- /dev/null +++ b/shared/sdk/regenny/dd2/tdb71/MethodDefinition.hpp @@ -0,0 +1,12 @@ +#pragma once +namespace regenny::tdb71 { +#pragma pack(push, 1) +struct MethodDefinition { + uint32_t declaring_typeid : 19; // 0x0 + uint32_t pad : 13; // 0x0 + uint32_t impl_id : 19; // 0x4 + uint32_t params : 13; // 0x4 + int32_t offset; // 0x8 +}; // Size: 0xc +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/tdb71/MethodImpl.hpp b/shared/sdk/regenny/dd2/tdb71/MethodImpl.hpp new file mode 100644 index 000000000..2fceafaa3 --- /dev/null +++ b/shared/sdk/regenny/dd2/tdb71/MethodImpl.hpp @@ -0,0 +1,12 @@ +#pragma once +namespace regenny::tdb71 { +#pragma pack(push, 1) +struct MethodImpl { + uint16_t attributes_id; // 0x0 + int16_t vtable_index; // 0x2 + uint16_t flags; // 0x4 + uint16_t impl_flags; // 0x6 + uint32_t name_offset; // 0x8 +}; // Size: 0xc +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/tdb71/ParamList.hpp b/shared/sdk/regenny/dd2/tdb71/ParamList.hpp new file mode 100644 index 000000000..2a4c1e647 --- /dev/null +++ b/shared/sdk/regenny/dd2/tdb71/ParamList.hpp @@ -0,0 +1,11 @@ +#pragma once +namespace regenny::tdb71 { +#pragma pack(push, 1) +struct ParamList { + uint16_t numParams; // 0x0 + int16_t invokeID; // 0x2 + uint32_t returnType; // 0x4 + uint32_t params[256]; // 0x8 +}; // Size: 0x408 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/tdb71/ParameterDef.hpp b/shared/sdk/regenny/dd2/tdb71/ParameterDef.hpp new file mode 100644 index 000000000..dde8fc6d0 --- /dev/null +++ b/shared/sdk/regenny/dd2/tdb71/ParameterDef.hpp @@ -0,0 +1,13 @@ +#pragma once +namespace regenny::tdb71 { +#pragma pack(push, 1) +struct ParameterDef { + uint16_t attributes_id; // 0x0 + uint16_t init_data_index; // 0x2 + uint32_t name_offset : 30; // 0x4 + uint32_t modifier : 2; // 0x4 + uint32_t type_id : 18; // 0x8 + uint32_t flags : 14; // 0x8 +}; // Size: 0xc +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/tdb71/Property.hpp b/shared/sdk/regenny/dd2/tdb71/Property.hpp new file mode 100644 index 000000000..10edad1bc --- /dev/null +++ b/shared/sdk/regenny/dd2/tdb71/Property.hpp @@ -0,0 +1,7 @@ +#pragma once +namespace regenny::tdb71 { +#pragma pack(push, 1) +struct Property { +}; // Size: 0x0 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/tdb71/PropertyImpl.hpp b/shared/sdk/regenny/dd2/tdb71/PropertyImpl.hpp new file mode 100644 index 000000000..ad16f9586 --- /dev/null +++ b/shared/sdk/regenny/dd2/tdb71/PropertyImpl.hpp @@ -0,0 +1,7 @@ +#pragma once +namespace regenny::tdb71 { +#pragma pack(push, 1) +struct PropertyImpl { +}; // Size: 0x0 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/tdb71/TDB.hpp b/shared/sdk/regenny/dd2/tdb71/TDB.hpp new file mode 100644 index 000000000..8728752ec --- /dev/null +++ b/shared/sdk/regenny/dd2/tdb71/TDB.hpp @@ -0,0 +1,80 @@ +#pragma once +namespace regenny::tdb71 { +struct Field; +} +namespace regenny::tdb71 { +struct TypeDefinition; +} +namespace regenny::tdb71 { +struct PropertyImpl; +} +namespace regenny::tdb71 { +struct MethodImpl; +} +namespace regenny::tdb71 { +struct TypeImpl; +} +namespace regenny::tdb71 { +struct MethodDefinition; +} +namespace regenny::tdb71 { +struct FieldImpl; +} +namespace regenny::tdb71 { +struct Property; +} +namespace regenny::tdb71 { +struct ParameterDef; +} +namespace regenny::tdb71 { +struct AttributeDef; +} +namespace regenny::tdb71 { +#pragma pack(push, 1) +struct TDB { + struct test { + }; // Size: 0x0 + + uint32_t magic; // 0x0 + uint32_t version; // 0x4 + uint32_t initialized; // 0x8 + uint32_t numTypes; // 0xc + uint32_t numMethods; // 0x10 + uint32_t numFields; // 0x14 + uint32_t numTypeImpl; // 0x18 + uint32_t numFieldImpl; // 0x1c + uint32_t numMethodImpl; // 0x20 + uint32_t numPropertyImpl; // 0x24 + uint32_t numProperties; // 0x28 + uint32_t numEvents; // 0x2c + uint32_t numParams; // 0x30 + uint32_t numAttributes; // 0x34 + int32_t numInitData; // 0x38 + uint32_t numAttributes2; // 0x3c + uint32_t numInternStrings; // 0x40 + uint32_t numModules; // 0x44 + int32_t devEntry; // 0x48 + int32_t appEntry; // 0x4c + uint32_t numStringPool; // 0x50 + uint32_t numBytePool; // 0x54 + void* modules; // 0x58 + regenny::tdb71::TypeDefinition* types; // 0x60 + regenny::tdb71::TypeImpl* typesImpl; // 0x68 + regenny::tdb71::MethodDefinition* methods; // 0x70 + regenny::tdb71::MethodImpl* methodsImpl; // 0x78 + regenny::tdb71::Field* fields; // 0x80 + regenny::tdb71::FieldImpl* fieldsImpl; // 0x88 + regenny::tdb71::Property* properties; // 0x90 + regenny::tdb71::PropertyImpl* propertiesImpl; // 0x98 + void* events; // 0xa0 + regenny::tdb71::ParameterDef* params; // 0xa8 + regenny::tdb71::AttributeDef* attributes; // 0xb0 + int32_t* initData; // 0xb8 + void* unk; // 0xc0 + int32_t* attributes2; // 0xc8 + char* stringPool; // 0xd0 + uint8_t* bytePool; // 0xd8 + int32_t* internStrings; // 0xe0 +}; // Size: 0xe8 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/tdb71/TypeDefinition.hpp b/shared/sdk/regenny/dd2/tdb71/TypeDefinition.hpp new file mode 100644 index 000000000..bd690a147 --- /dev/null +++ b/shared/sdk/regenny/dd2/tdb71/TypeDefinition.hpp @@ -0,0 +1,38 @@ +#pragma once +namespace regenny::via::typeinfo { +struct TypeInfo; +} +namespace regenny::tdb71 { +#pragma pack(push, 1) +struct TypeDefinition { + uint64_t index : 19; // 0x0 + uint64_t parent_typeid : 19; // 0x0 + uint64_t declaring_typeid : 19; // 0x0 + uint64_t underlying_typeid : 7; // 0x0 + uint64_t array_typeid : 19; // 0x8 + uint64_t element_typeid : 19; // 0x8 + uint64_t impl_index : 18; // 0x8 + uint64_t system_typeid : 7; // 0x8 + private: uint64_t pad_bitfield_8_3f : 1; public: + uint32_t type_flags; // 0x10 + uint32_t size; // 0x14 + uint32_t fqn_hash; // 0x18 + uint32_t type_crc; // 0x1c + uint64_t default_ctor : 22; // 0x20 + uint64_t member_method : 22; // 0x20 + uint64_t member_field : 19; // 0x20 + private: uint64_t pad_bitfield_20_3f : 1; public: + uint32_t num_member_prop : 12; // 0x28 + uint32_t member_prop : 19; // 0x28 + private: uint32_t pad_bitfield_28_1f : 1; public: + uint32_t unk_data : 26; // 0x2c + uint32_t object_type : 3; // 0x2c + private: uint32_t pad_bitfield_2c_1d : 3; public: + int64_t unk_data_before_generics : 26; // 0x30 + int64_t generics : 26; // 0x30 + int64_t interfaces : 12; // 0x30 + regenny::via::typeinfo::TypeInfo* type; // 0x38 + void** managed_vt; // 0x40 +}; // Size: 0x48 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/tdb71/TypeImpl.hpp b/shared/sdk/regenny/dd2/tdb71/TypeImpl.hpp new file mode 100644 index 000000000..b12e51115 --- /dev/null +++ b/shared/sdk/regenny/dd2/tdb71/TypeImpl.hpp @@ -0,0 +1,18 @@ +#pragma once +namespace regenny::tdb71 { +#pragma pack(push, 1) +struct TypeImpl { + int32_t name_offset; // 0x0 + int32_t namespace_offset; // 0x4 + int32_t field_size; // 0x8 + int32_t static_field_size; // 0xc + uint64_t unk_pad : 33; // 0x10 + uint64_t num_member_fields : 24; // 0x10 + uint64_t unk_pad_2 : 7; // 0x10 + uint16_t num_member_methods; // 0x18 + int16_t num_native_vtable; // 0x1a + int16_t interface_id; // 0x1c + private: char pad_1e[0x12]; public: +}; // Size: 0x30 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/BasisPlane.hpp b/shared/sdk/regenny/dd2/via/BasisPlane.hpp new file mode 100644 index 000000000..345431a7a --- /dev/null +++ b/shared/sdk/regenny/dd2/via/BasisPlane.hpp @@ -0,0 +1,10 @@ +#pragma once +namespace regenny::via { +#pragma pack(push, 1) +enum class BasisPlane : uint32_t { + XZ = 0, + XY = 1, + YZ = 2, +}; +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/CameraType.hpp b/shared/sdk/regenny/dd2/via/CameraType.hpp new file mode 100644 index 000000000..202616d41 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/CameraType.hpp @@ -0,0 +1,14 @@ +#pragma once +namespace regenny::via { +#pragma pack(push, 1) +enum class CameraType : uint32_t { + Game = 0, + Debug = 1, + Scene = 2, + SceneXY = 3, + SceneYZ = 4, + SceneXZ = 5, + Preview = 6, +}; +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/Capsule.hpp b/shared/sdk/regenny/dd2/via/Capsule.hpp new file mode 100644 index 000000000..153e0c069 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/Capsule.hpp @@ -0,0 +1,12 @@ +#pragma once +#include "vec4.hpp" +namespace regenny::via { +#pragma pack(push, 1) +struct Capsule { + regenny::via::vec4 p0; // 0x0 + regenny::via::vec4 p1; // 0x10 + float r; // 0x20 + private: char pad_24[0xc]; public: +}; // Size: 0x30 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/Color.hpp b/shared/sdk/regenny/dd2/via/Color.hpp new file mode 100644 index 000000000..c07ea6d7e --- /dev/null +++ b/shared/sdk/regenny/dd2/via/Color.hpp @@ -0,0 +1,8 @@ +#pragma once +namespace regenny::via { +#pragma pack(push, 1) +struct Color { + uint32_t rgba; // 0x0 +}; // Size: 0x4 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/Component.hpp b/shared/sdk/regenny/dd2/via/Component.hpp new file mode 100644 index 000000000..dcb2e6ea5 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/Component.hpp @@ -0,0 +1,15 @@ +#pragma once +#include "clr\ManagedObject.hpp" +namespace regenny::via { +struct GameObject; +} +namespace regenny::via { +#pragma pack(push, 1) +struct Component : public clr::ManagedObject { + regenny::via::GameObject* GameObject; // 0x10 + regenny::via::Component* ChildComponent; // 0x18 + regenny::via::Component* PrevComponent; // 0x20 + regenny::via::Component* NextComponent; // 0x28 +}; // Size: 0x30 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/DeviceOrientation.hpp b/shared/sdk/regenny/dd2/via/DeviceOrientation.hpp new file mode 100644 index 000000000..490ab2890 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/DeviceOrientation.hpp @@ -0,0 +1,8 @@ +#pragma once +namespace regenny::via { +#pragma pack(push, 1) +enum class DeviceOrientation : uint32_t { + None = 0, +}; +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/DisplayType.hpp b/shared/sdk/regenny/dd2/via/DisplayType.hpp new file mode 100644 index 000000000..6d1f83a99 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/DisplayType.hpp @@ -0,0 +1,30 @@ +#pragma once +namespace regenny::via { +#pragma pack(push, 1) +enum class DisplayType : uint32_t { + Fit = 0, + Uniform4x3 = 1, + Uniform16x9 = 2, + Uniform16x10 = 3, + Uniform21x9 = 4, + Uniform32x9 = 5, + Uniform48x9 = 6, + Fix480p = 7, + Fix720p = 8, + Fix1080p = 9, + Fix4K = 10, + Fix8K = 11, + FixResolution = 12, + FixResolution16x9 = 13, + NintendoSwitch = 14, + Fix684x384 = 15, + Fix1368x768 = 16, + Nexus6P = 17, + GalaxyS9 = 18, + XperiaZ5Premium = 19, + iPhoneX = 20, + iPhone7 = 21, + ZenPadS8 = 22, +}; +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/Folder.hpp b/shared/sdk/regenny/dd2/via/Folder.hpp new file mode 100644 index 000000000..a5f9a1ac2 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/Folder.hpp @@ -0,0 +1,8 @@ +#pragma once +#include "clr\ManagedObject.hpp" +namespace regenny::via { +#pragma pack(push, 1) +struct Folder : public clr::ManagedObject { +}; // Size: 0x10 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/GameObject.hpp b/shared/sdk/regenny/dd2/via/GameObject.hpp new file mode 100644 index 000000000..e84b7eaa2 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/GameObject.hpp @@ -0,0 +1,24 @@ +#pragma once +#include "clr\ManagedObject.hpp" +namespace regenny::via { +struct Transform; +} +namespace regenny::via { +struct Folder; +} +namespace regenny::via { +#pragma pack(push, 1) +struct GameObject : public clr::ManagedObject { + private: char pad_10[0x2]; public: + bool Update; // 0x12 + bool Draw; // 0x13 + bool UpdateSelf; // 0x14 + bool DrawSelf; // 0x15 + private: char pad_16[0x2]; public: + regenny::via::Transform* Transform; // 0x18 + regenny::via::Folder* folder; // 0x20 + private: char pad_28[0x24]; public: + float timescale; // 0x4c +}; // Size: 0x50 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/IntArray.hpp b/shared/sdk/regenny/dd2/via/IntArray.hpp new file mode 100644 index 000000000..715d82327 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/IntArray.hpp @@ -0,0 +1,9 @@ +#pragma once +namespace regenny::via { +#pragma pack(push, 1) +struct IntArray { + int32_t* data; // 0x0 + uint64_t count; // 0x8 +}; // Size: 0x10 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/JobSet.hpp b/shared/sdk/regenny/dd2/via/JobSet.hpp new file mode 100644 index 000000000..6c02f4f7e --- /dev/null +++ b/shared/sdk/regenny/dd2/via/JobSet.hpp @@ -0,0 +1,28 @@ +#pragma once +namespace regenny::via { +struct Object; +} +namespace regenny::via { +#pragma pack(push, 1) +struct JobSet { + struct Job { + }; // Size: 0x0 + + struct JobThing { + void* func; // 0x0 + private: char pad_8[0xf8]; public: + }; // Size: 0x100 + + struct Unk { + void** vtable; // 0x0 + regenny::via::Object* owner; // 0x8 + void* func; // 0x10 + private: char pad_18[0x8]; public: + regenny::via::Object* owner2; // 0x20 + private: char pad_28[0xd8]; public: + }; // Size: 0x100 + + Unk* data; // 0x0 +}; // Size: 0x8 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/Joint.hpp b/shared/sdk/regenny/dd2/via/Joint.hpp new file mode 100644 index 000000000..a12dedb13 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/Joint.hpp @@ -0,0 +1,23 @@ +#pragma once +#include "clr\ManagedObject.hpp" +#include "vec4.hpp" +namespace regenny::via { +struct Transform; +} +namespace regenny::via { +struct JointDesc; +} +namespace regenny::via { +#pragma pack(push, 1) +struct Joint : public clr::ManagedObject { + regenny::via::Transform* Owner; // 0x10 + regenny::via::JointDesc* Desc; // 0x18 + regenny::via::vec4 LocalPosition; // 0x20 + regenny::via::vec4 LocalRotation; // 0x30 + regenny::via::vec4 LocalScale; // 0x40 + int32_t ConstraintJointIndex; // 0x50 + int32_t JointIndex; // 0x54 + private: char pad_58[0x8]; public: +}; // Size: 0x60 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/JointArray.hpp b/shared/sdk/regenny/dd2/via/JointArray.hpp new file mode 100644 index 000000000..a091c4eb5 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/JointArray.hpp @@ -0,0 +1,18 @@ +#pragma once +#include "clr\ManagedObject.hpp" +namespace regenny::via::typeinfo { +struct TypeInfo; +} +namespace regenny::via { +struct Joint; +} +namespace regenny::via { +#pragma pack(push, 1) +struct JointArray : public clr::ManagedObject { + regenny::via::typeinfo::TypeInfo* array_type; // 0x10 + int32_t count; // 0x18 + int32_t num_allocated; // 0x1c + regenny::via::Joint* joints[256]; // 0x20 +}; // Size: 0x820 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/JointData.hpp b/shared/sdk/regenny/dd2/via/JointData.hpp new file mode 100644 index 000000000..ce22e31eb --- /dev/null +++ b/shared/sdk/regenny/dd2/via/JointData.hpp @@ -0,0 +1,12 @@ +#pragma once +#include "vec4.hpp" +namespace regenny::via { +#pragma pack(push, 1) +struct JointData { + regenny::via::vec4 rotation; // 0x0 + regenny::via::vec4 translation; // 0x10 + regenny::via::vec4 scale; // 0x20 + regenny::via::vec4 blend; // 0x30 +}; // Size: 0x40 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/JointDesc.hpp b/shared/sdk/regenny/dd2/via/JointDesc.hpp new file mode 100644 index 000000000..965708c6a --- /dev/null +++ b/shared/sdk/regenny/dd2/via/JointDesc.hpp @@ -0,0 +1,16 @@ +#pragma once +#include "vec4.hpp" +namespace regenny::via { +#pragma pack(push, 1) +struct JointDesc { + // Metadata: utf16* + wchar_t* name; // 0x0 + uint32_t name_hash; // 0x8 + int16_t parent_index; // 0xc + int16_t symmetry_index; // 0xe + regenny::via::vec4 position; // 0x10 + regenny::via::vec4 rotation; // 0x20 + regenny::via::vec4 scale; // 0x30 +}; // Size: 0x40 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/JointMap.hpp b/shared/sdk/regenny/dd2/via/JointMap.hpp new file mode 100644 index 000000000..790c37c71 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/JointMap.hpp @@ -0,0 +1,13 @@ +#pragma once +namespace regenny::via { +struct JointData; +} +namespace regenny::via { +#pragma pack(push, 1) +struct JointMap { + regenny::via::JointData* joints; // 0x0 + private: char pad_8[0x4]; public: + int32_t num_joints; // 0xc +}; // Size: 0x10 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/ManagedObjectArray.hpp b/shared/sdk/regenny/dd2/via/ManagedObjectArray.hpp new file mode 100644 index 000000000..eef04f561 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/ManagedObjectArray.hpp @@ -0,0 +1,13 @@ +#pragma once +namespace regenny::via::clr { +struct ManagedObject; +} +namespace regenny::via { +#pragma pack(push, 1) +struct ManagedObjectArray { + regenny::via::clr::ManagedObject** objects; // 0x0 + uint32_t count; // 0x8 + uint32_t capacity; // 0xc +}; // Size: 0x10 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/MobileBarState.hpp b/shared/sdk/regenny/dd2/via/MobileBarState.hpp new file mode 100644 index 000000000..bbaa5c9e4 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/MobileBarState.hpp @@ -0,0 +1,8 @@ +#pragma once +namespace regenny::via { +#pragma pack(push, 1) +enum class MobileBarState : uint32_t { + None = 0, +}; +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/Motion.hpp b/shared/sdk/regenny/dd2/via/Motion.hpp new file mode 100644 index 000000000..c22e7f8a3 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/Motion.hpp @@ -0,0 +1,11 @@ +#pragma once +#include "JointMap.hpp" +namespace regenny::via { +#pragma pack(push, 1) +struct Motion { + private: char pad_0[0x200]; public: + regenny::via::JointMap jointmap; // 0x200 + private: char pad_210[0xdf0]; public: +}; // Size: 0x1000 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/Object.hpp b/shared/sdk/regenny/dd2/via/Object.hpp new file mode 100644 index 000000000..304509e15 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/Object.hpp @@ -0,0 +1,8 @@ +#pragma once +namespace regenny::via { +#pragma pack(push, 1) +struct Object { + void* vtable; // 0x0 +}; // Size: 0x8 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/Point.hpp b/shared/sdk/regenny/dd2/via/Point.hpp new file mode 100644 index 000000000..0de3ea1ab --- /dev/null +++ b/shared/sdk/regenny/dd2/via/Point.hpp @@ -0,0 +1,9 @@ +#pragma once +namespace regenny::via { +#pragma pack(push, 1) +struct Point { + float x; // 0x0 + float y; // 0x4 +}; // Size: 0x8 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/Range.hpp b/shared/sdk/regenny/dd2/via/Range.hpp new file mode 100644 index 000000000..400f93bf6 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/Range.hpp @@ -0,0 +1,9 @@ +#pragma once +namespace regenny::via { +#pragma pack(push, 1) +struct Range { + float s; // 0x0 + float r; // 0x4 +}; // Size: 0x8 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/RenderType.hpp b/shared/sdk/regenny/dd2/via/RenderType.hpp new file mode 100644 index 000000000..03e617b3e --- /dev/null +++ b/shared/sdk/regenny/dd2/via/RenderType.hpp @@ -0,0 +1,8 @@ +#pragma once +namespace regenny::via { +#pragma pack(push, 1) +enum class RenderType : uint32_t { + None = 0, +}; +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/Scene.hpp b/shared/sdk/regenny/dd2/via/Scene.hpp new file mode 100644 index 000000000..5328c0d0e --- /dev/null +++ b/shared/sdk/regenny/dd2/via/Scene.hpp @@ -0,0 +1,11 @@ +#pragma once +#include "clr\ManagedObject.hpp" +namespace regenny::via { +#pragma pack(push, 1) +struct Scene : public clr::ManagedObject { + char asdf; // 0x10 + private: char pad_11[0xf]; public: + float timescale; // 0x20 +}; // Size: 0x24 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/SceneArray.hpp b/shared/sdk/regenny/dd2/via/SceneArray.hpp new file mode 100644 index 000000000..cf6847ba4 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/SceneArray.hpp @@ -0,0 +1,13 @@ +#pragma once +namespace regenny::via { +struct Scene; +} +namespace regenny::via { +#pragma pack(push, 1) +struct SceneArray { + int32_t count; // 0x0 + private: char pad_4[0x4]; public: + regenny::via::Scene** elements; // 0x8 +}; // Size: 0x10 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/SceneManager.hpp b/shared/sdk/regenny/dd2/via/SceneManager.hpp new file mode 100644 index 000000000..a9339b68b --- /dev/null +++ b/shared/sdk/regenny/dd2/via/SceneManager.hpp @@ -0,0 +1,20 @@ +#pragma once +#include "SceneArray.hpp" +namespace regenny::via { +struct SceneView; +} +namespace regenny::via { +struct Scene; +} +namespace regenny::via { +#pragma pack(push, 1) +struct SceneManager { + private: char pad_0[0x48]; public: + regenny::via::SceneView* main_view; // 0x48 + regenny::via::Scene* main_scene; // 0x50 + private: char pad_58[0x20]; public: + regenny::via::SceneArray scenes; // 0x78 + private: char pad_88[0x150]; public: +}; // Size: 0x1d8 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/SceneView.hpp b/shared/sdk/regenny/dd2/via/SceneView.hpp new file mode 100644 index 000000000..984c22c90 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/SceneView.hpp @@ -0,0 +1,50 @@ +#pragma once +#include "BasisPlane.hpp" +#include "CameraType.hpp" +#include "Color.hpp" +#include "DeviceOrientation.hpp" +#include "DisplayType.hpp" +#include "MobileBarState.hpp" +#include "RenderType.hpp" +#include "Size.hpp" +#include "clr\ManagedObject.hpp" +namespace regenny::via { +struct Window; +} +namespace regenny::via { +struct Scene; +} +namespace regenny::via { +#pragma pack(push, 1) +struct SceneView : public clr::ManagedObject { + regenny::via::Window* window; // 0x10 + regenny::via::Scene* scene; // 0x18 + regenny::via::Color background_color; // 0x20 + private: char pad_24[0x4]; public: + // Metadata: utf16* + wchar_t* name; // 0x28 + regenny::via::Size size; // 0x30 + regenny::via::Size custom_display_size; // 0x38 + regenny::via::Size present_rect; // 0x40 + private: char pad_48[0x18]; public: + bool draw_develop; // 0x60 + bool tool_light; // 0x61 + bool show_icons; // 0x62 + bool outline_fadeout_enable; // 0x63 + regenny::via::DisplayType display_type; // 0x64 + regenny::via::BasisPlane basis_plane; // 0x68 + regenny::via::CameraType camera_type; // 0x6c + regenny::via::RenderType render_type; // 0x70 + int32_t icon_size; // 0x74 + float indicator_scale; // 0x78 + private: char pad_7c[0x14]; public: + void* message_function_handle; // 0x90 + private: char pad_98[0x4]; public: + regenny::via::DeviceOrientation orientation; // 0x9c + regenny::via::MobileBarState mobile_status_bar_state; // 0xa0 + regenny::via::MobileBarState mobile_nav_bar_state; // 0xa4 + bool fix_mobile_nav_bar_bottom; // 0xa8 + private: char pad_a9[0x7]; public: +}; // Size: 0xb0 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/Size.hpp b/shared/sdk/regenny/dd2/via/Size.hpp new file mode 100644 index 000000000..0ab4a53a0 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/Size.hpp @@ -0,0 +1,9 @@ +#pragma once +namespace regenny::via { +#pragma pack(push, 1) +struct Size { + float w; // 0x0 + float h; // 0x4 +}; // Size: 0x8 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/Sphere.hpp b/shared/sdk/regenny/dd2/via/Sphere.hpp new file mode 100644 index 000000000..4f3021552 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/Sphere.hpp @@ -0,0 +1,10 @@ +#pragma once +#include "vec3.hpp" +namespace regenny::via { +#pragma pack(push, 1) +struct Sphere { + regenny::via::vec3 pos; // 0x0 + float r; // 0xc +}; // Size: 0x10 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/Transform.hpp b/shared/sdk/regenny/dd2/via/Transform.hpp new file mode 100644 index 000000000..c49ca1c8b --- /dev/null +++ b/shared/sdk/regenny/dd2/via/Transform.hpp @@ -0,0 +1,35 @@ +#pragma once +#include "Component.hpp" +#include "mat4.hpp" +#include "vec4.hpp" +namespace regenny::via { +struct Scene; +} +namespace regenny::via { +struct JointArray; +} +namespace regenny::via { +#pragma pack(push, 1) +struct Transform : public Component { + regenny::via::vec4 Position; // 0x30 + regenny::via::vec4 Rotation; // 0x40 + regenny::via::vec4 Scale; // 0x50 + regenny::via::Scene* Scene; // 0x60 + regenny::via::Transform* Child; // 0x68 + regenny::via::Transform* Next; // 0x70 + regenny::via::Transform* Parent; // 0x78 + regenny::via::mat4 WorldTransform; // 0x80 + void* JointHashTbl; // 0xc0 + int32_t ParentJointIndex; // 0xc8 + int32_t UpdateFrame; // 0xcc + bool SameJointsConstraint; // 0xd0 + bool DirtySelf; // 0xd1 + bool DirtyUpwards; // 0xd2 + bool AbsoluteScaling; // 0xd3 + private: char pad_d4[0x4]; public: + regenny::via::JointArray* JointTbl; // 0xd8 + regenny::via::mat4* JointMatrixTbl; // 0xe0 + private: char pad_e8[0x28]; public: +}; // Size: 0x110 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/UInt8Array.hpp b/shared/sdk/regenny/dd2/via/UInt8Array.hpp new file mode 100644 index 000000000..6df5099d0 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/UInt8Array.hpp @@ -0,0 +1,9 @@ +#pragma once +namespace regenny::via { +#pragma pack(push, 1) +struct UInt8Array { + uint8_t* data; // 0x0 + uint64_t count; // 0x8 +}; // Size: 0x10 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/UIntArray.hpp b/shared/sdk/regenny/dd2/via/UIntArray.hpp new file mode 100644 index 000000000..5b04bcea7 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/UIntArray.hpp @@ -0,0 +1,9 @@ +#pragma once +namespace regenny::via { +#pragma pack(push, 1) +struct UIntArray { + uint32_t* data; // 0x0 + uint64_t count; // 0x8 +}; // Size: 0x10 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/UIntArrayArray.hpp b/shared/sdk/regenny/dd2/via/UIntArrayArray.hpp new file mode 100644 index 000000000..19bb3febb --- /dev/null +++ b/shared/sdk/regenny/dd2/via/UIntArrayArray.hpp @@ -0,0 +1,12 @@ +#pragma once +namespace regenny::via { +struct UIntArray; +} +namespace regenny::via { +#pragma pack(push, 1) +struct UIntArrayArray { + regenny::via::UIntArray* data; // 0x0 + uint64_t count; // 0x8 +}; // Size: 0x10 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/Window.hpp b/shared/sdk/regenny/dd2/via/Window.hpp new file mode 100644 index 000000000..23635e88c --- /dev/null +++ b/shared/sdk/regenny/dd2/via/Window.hpp @@ -0,0 +1,18 @@ +#pragma once +#include "Point.hpp" +#include "Size.hpp" +namespace regenny::via { +#pragma pack(push, 1) +struct Window { + void* vtable; // 0x0 + private: char pad_8[0x58]; public: + uint32_t width; // 0x60 + uint32_t height; // 0x64 + regenny::via::Point cursor_pos; // 0x68 + bool show_cursor; // 0x70 + private: char pad_71[0x47]; public: + regenny::via::Size borderless_size; // 0xb8 + private: char pad_c0[0x40]; public: +}; // Size: 0x100 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/array.hpp b/shared/sdk/regenny/dd2/via/array.hpp new file mode 100644 index 000000000..7a9f2785c --- /dev/null +++ b/shared/sdk/regenny/dd2/via/array.hpp @@ -0,0 +1,15 @@ +#pragma once +#include "clr\ManagedObject.hpp" +namespace regenny { +struct TypeDefinition; +} +namespace regenny::via { +#pragma pack(push, 1) +struct array : public clr::ManagedObject { + regenny::TypeDefinition* contained_type; // 0x10 + int32_t count; // 0x18 + int32_t allocated; // 0x1c + private: char pad_20[0xe0]; public: +}; // Size: 0x100 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/behaviortree/BehaviorTree.hpp b/shared/sdk/regenny/dd2/via/behaviortree/BehaviorTree.hpp new file mode 100644 index 000000000..8e45ebf7f --- /dev/null +++ b/shared/sdk/regenny/dd2/via/behaviortree/BehaviorTree.hpp @@ -0,0 +1,11 @@ +#pragma once +#include "..\Component.hpp" +#include "BehaviorTreeCoreHandleArray.hpp" +namespace regenny::via::behaviortree { +#pragma pack(push, 1) +struct BehaviorTree : public regenny::via::Component { + private: char pad_30[0x68]; public: + regenny::via::behaviortree::BehaviorTreeCoreHandleArray trees; // 0x98 +}; // Size: 0xa4 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeCoreHandleArray.hpp b/shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeCoreHandleArray.hpp new file mode 100644 index 000000000..3538abe43 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeCoreHandleArray.hpp @@ -0,0 +1,12 @@ +#pragma once +namespace regenny::via::behaviortree { +struct CoreHandle; +} +namespace regenny::via::behaviortree { +#pragma pack(push, 1) +struct BehaviorTreeCoreHandleArray { + regenny::via::behaviortree::CoreHandle** handles; // 0x0 + uint32_t count; // 0x8 +}; // Size: 0xc +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeData.hpp b/shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeData.hpp new file mode 100644 index 000000000..1675d854c --- /dev/null +++ b/shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeData.hpp @@ -0,0 +1,12 @@ +#pragma once +#include "TreeObjectData.hpp" +namespace regenny::via::behaviortree { +#pragma pack(push, 1) +struct BehaviorTreeData { + void* vftable; // 0x0 + bool unk_bool; // 0x8 + private: char pad_9[0x7]; public: + regenny::via::behaviortree::TreeObjectData data; // 0x10 +}; // Size: 0x310 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/behaviortree/Condition.hpp b/shared/sdk/regenny/dd2/via/behaviortree/Condition.hpp new file mode 100644 index 000000000..0fb3d26fa --- /dev/null +++ b/shared/sdk/regenny/dd2/via/behaviortree/Condition.hpp @@ -0,0 +1,8 @@ +#pragma once +#include "..\clr\ManagedObject.hpp" +namespace regenny::via::behaviortree { +#pragma pack(push, 1) +struct Condition : public regenny::via::clr::ManagedObject { +}; // Size: 0x10 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/behaviortree/Core.hpp b/shared/sdk/regenny/dd2/via/behaviortree/Core.hpp new file mode 100644 index 000000000..b58a90be3 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/behaviortree/Core.hpp @@ -0,0 +1,13 @@ +#pragma once +namespace regenny::via::behaviortree { +struct TreeObject; +} +namespace regenny::via::behaviortree { +#pragma pack(push, 1) +struct Core { + void** vftable; // 0x0 + regenny::via::behaviortree::TreeObject* tree_object; // 0x8 + private: char pad_10[0x1d0]; public: +}; // Size: 0x1e0 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/behaviortree/CoreHandle.hpp b/shared/sdk/regenny/dd2/via/behaviortree/CoreHandle.hpp new file mode 100644 index 000000000..a85e5081b --- /dev/null +++ b/shared/sdk/regenny/dd2/via/behaviortree/CoreHandle.hpp @@ -0,0 +1,12 @@ +#pragma once +#include "Core.hpp" +#include "..\clr\ManagedObject.hpp" +namespace regenny::via::behaviortree { +#pragma pack(push, 1) +struct CoreHandle : public regenny::via::clr::ManagedObject { + private: char pad_10[0x8]; public: + regenny::via::behaviortree::Core core; // 0x18 + private: char pad_1f8[0x28]; public: +}; // Size: 0x220 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/behaviortree/NodeArray.hpp b/shared/sdk/regenny/dd2/via/behaviortree/NodeArray.hpp new file mode 100644 index 000000000..e34c5379c --- /dev/null +++ b/shared/sdk/regenny/dd2/via/behaviortree/NodeArray.hpp @@ -0,0 +1,12 @@ +#pragma once +namespace regenny::via::behaviortree { +struct TreeNode; +} +namespace regenny::via::behaviortree { +#pragma pack(push, 1) +struct NodeArray { + regenny::via::behaviortree::TreeNode* nodes; // 0x0 + uint32_t count; // 0x8 +}; // Size: 0xc +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/behaviortree/NodeArray2.hpp b/shared/sdk/regenny/dd2/via/behaviortree/NodeArray2.hpp new file mode 100644 index 000000000..ab248950e --- /dev/null +++ b/shared/sdk/regenny/dd2/via/behaviortree/NodeArray2.hpp @@ -0,0 +1,13 @@ +#pragma once +namespace regenny::via::behaviortree { +struct TreeNode; +} +namespace regenny::via::behaviortree { +#pragma pack(push, 1) +struct NodeArray2 { + regenny::via::behaviortree::TreeNode** nodes; // 0x0 + uint32_t unk; // 0x8 + uint32_t count; // 0xc +}; // Size: 0x10 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/behaviortree/NodeStatus.hpp b/shared/sdk/regenny/dd2/via/behaviortree/NodeStatus.hpp new file mode 100644 index 000000000..897951418 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/behaviortree/NodeStatus.hpp @@ -0,0 +1,9 @@ +#pragma once +namespace regenny::via::behaviortree { +#pragma pack(push, 1) +enum NodeStatus : uint32_t { + Off = 0, + On = 2, +}; +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/behaviortree/Selector.hpp b/shared/sdk/regenny/dd2/via/behaviortree/Selector.hpp new file mode 100644 index 000000000..337af35ae --- /dev/null +++ b/shared/sdk/regenny/dd2/via/behaviortree/Selector.hpp @@ -0,0 +1,15 @@ +#pragma once +#include "..\clr\ManagedObject.hpp" +namespace regenny::via::behaviortree { +#pragma pack(push, 1) +struct Selector : public regenny::via::clr::ManagedObject { + bool late_select; // 0x10 + bool b2; // 0x11 + bool b3; // 0x12 + private: char pad_13[0x5]; public: + uint32_t* buf; // 0x18 + uint32_t bufsize; // 0x20 + private: char pad_24[0x4]; public: +}; // Size: 0x28 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/behaviortree/SelectorFSM.hpp b/shared/sdk/regenny/dd2/via/behaviortree/SelectorFSM.hpp new file mode 100644 index 000000000..cf6c15bc5 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/behaviortree/SelectorFSM.hpp @@ -0,0 +1,18 @@ +#pragma once +#include "NodeArray2.hpp" +#include "Selector.hpp" +namespace regenny::via::behaviortree { +struct TreeNode; +} +namespace regenny::via::behaviortree { +#pragma pack(push, 1) +struct SelectorFSM : public Selector { + regenny::via::behaviortree::TreeNode* owner_node; // 0x28 + regenny::via::behaviortree::TreeNode* active_node; // 0x30 + regenny::via::behaviortree::NodeArray2 next_nodes; // 0x38 + regenny::via::behaviortree::NodeArray2 node_choices; // 0x48 + bool illegal; // 0x58 + private: char pad_59[0x7]; public: +}; // Size: 0x60 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/behaviortree/TreeNode.hpp b/shared/sdk/regenny/dd2/via/behaviortree/TreeNode.hpp new file mode 100644 index 000000000..85deea7e6 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/behaviortree/TreeNode.hpp @@ -0,0 +1,50 @@ +#pragma once +#include "NodeStatus.hpp" +namespace regenny::via::behaviortree { +struct TreeNodeData; +} +namespace regenny::via::behaviortree { +struct TreeObject; +} +namespace regenny::via::behaviortree { +struct SelectorFSM; +} +namespace regenny::via::behaviortree { +struct Condition; +} +namespace regenny::via::behaviortree { +#pragma pack(push, 1) +struct TreeNode { + uint64_t id; // 0x0 + regenny::via::behaviortree::TreeNodeData* data; // 0x8 + regenny::via::behaviortree::TreeObject* owner; // 0x10 + uint16_t attr; // 0x18 + uint16_t unk_flags; // 0x1a + uint16_t pad[2]; // 0x1c + regenny::via::behaviortree::SelectorFSM* selector; // 0x20 + regenny::via::behaviortree::Condition* selector_condition; // 0x28 + int32_t selector_condition_index; // 0x30 + int32_t priority; // 0x34 + regenny::via::behaviortree::TreeNode* node_parent; // 0x38 + uint32_t num_children; // 0x40 + private: char pad_44[0xc]; public: + uint32_t num_actions; // 0x50 + uint32_t num_selector_callers; // 0x54 + regenny::via::behaviortree::Condition* parent_condition; // 0x58 + int32_t parent_condition_index; // 0x60 + regenny::via::behaviortree::NodeStatus status1; // 0x64 + regenny::via::behaviortree::NodeStatus status2; // 0x68 + private: char pad_6c[0x4]; public: + // Metadata: utf16* + wchar_t name[12]; // 0x70 + uint32_t name_len; // 0x88 + uint32_t name_capacity; // 0x8c + regenny::via::behaviortree::TreeNode* node_end; // 0x90 + regenny::via::behaviortree::TreeNode* node_restart; // 0x98 + regenny::via::behaviortree::TreeNode* node_end_notify; // 0xa0 + regenny::via::behaviortree::TreeNode* node_end_selector; // 0xa8 + regenny::via::behaviortree::TreeNode* node_active_child; // 0xb0 + private: char pad_b8[0x18]; public: +}; // Size: 0xd0 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/behaviortree/TreeNodeData.hpp b/shared/sdk/regenny/dd2/via/behaviortree/TreeNodeData.hpp new file mode 100644 index 000000000..34a477d8a --- /dev/null +++ b/shared/sdk/regenny/dd2/via/behaviortree/TreeNodeData.hpp @@ -0,0 +1,46 @@ +#pragma once +#include "..\IntArray.hpp" +#include "..\UIntArray.hpp" +#include "..\UIntArrayArray.hpp" +namespace regenny::via::behaviortree { +#pragma pack(push, 1) +struct TreeNodeData { + uint32_t id; // 0x0 + uint32_t id_2; // 0x4 + uint32_t attr; // 0x8 + bool is_branch; // 0xc + bool is_end; // 0xd + bool has_selector; // 0xe + private: char pad_f[0x25]; public: + uint32_t parent; // 0x34 + uint32_t parent_2; // 0x38 + private: char pad_3c[0x4]; public: + regenny::via::UIntArray children; // 0x40 + regenny::via::UIntArray children2; // 0x50 + regenny::via::IntArray conditions; // 0x60 + regenny::via::UIntArray states; // 0x70 + regenny::via::UIntArray states_2; // 0x80 + regenny::via::IntArray transition_conditions; // 0x90 + regenny::via::UIntArray transition_ids; // 0xa0 + regenny::via::UIntArray transition_attributes; // 0xb0 + regenny::via::UIntArray actions; // 0xc0 + regenny::via::UIntArray actions_2; // 0xd0 + private: char pad_e0[0x50]; public: + regenny::via::IntArray start_transitions; // 0x130 + regenny::via::UIntArray start_states; // 0x140 + regenny::via::UIntArray start_states_2; // 0x150 + regenny::via::UIntArrayArray transition_events; // 0x160 + regenny::via::UIntArrayArray start_transition_events; // 0x170 + regenny::via::UIntArrayArray unkarray3; // 0x180 + regenny::via::UIntArray tags; // 0x190 + // Metadata: utf16* + wchar_t name[12]; // 0x1a0 + uint32_t name_len; // 0x1b8 + uint32_t name_capacity; // 0x1bc + uint32_t name_offset; // 0x1c0 + uint32_t name_murmur_hash; // 0x1c4 + uint32_t full_name_murmur_hash; // 0x1c8 + uint32_t pad__; // 0x1cc +}; // Size: 0x1d0 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/behaviortree/TreeObject.hpp b/shared/sdk/regenny/dd2/via/behaviortree/TreeObject.hpp new file mode 100644 index 000000000..19f9d7977 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/behaviortree/TreeObject.hpp @@ -0,0 +1,32 @@ +#pragma once +#include "..\ManagedObjectArray.hpp" +#include "..\UIntArray.hpp" +#include "NodeArray.hpp" +namespace regenny::via::behaviortree { +struct TreeObjectData; +} +namespace regenny::via::behaviortree { +struct TreeNode; +} +namespace regenny::via::behaviortree { +#pragma pack(push, 1) +struct TreeObject { + void* vfptr; // 0x0 + regenny::via::behaviortree::TreeObjectData* data; // 0x8 + regenny::via::behaviortree::NodeArray nodes; // 0x10 + private: char pad_1c[0x4]; public: + regenny::via::ManagedObjectArray selectors; // 0x20 + private: char pad_30[0x10]; public: + regenny::via::ManagedObjectArray actions; // 0x40 + regenny::via::ManagedObjectArray conditions; // 0x50 + regenny::via::ManagedObjectArray transitions; // 0x60 + regenny::via::ManagedObjectArray expression_tree_conditions; // 0x70 + regenny::via::UIntArray selector_nodes; // 0x80 + regenny::via::ManagedObjectArray delayed_actions; // 0x90 + regenny::via::ManagedObjectArray delayed_conditions; // 0xa0 + regenny::via::ManagedObjectArray delayed_transitions; // 0xb0 + regenny::via::behaviortree::TreeNode* root_node; // 0xc0 + private: char pad_c8[0x10]; public: +}; // Size: 0xd8 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/behaviortree/TreeObjectData.hpp b/shared/sdk/regenny/dd2/via/behaviortree/TreeObjectData.hpp new file mode 100644 index 000000000..36aa0869a --- /dev/null +++ b/shared/sdk/regenny/dd2/via/behaviortree/TreeObjectData.hpp @@ -0,0 +1,28 @@ +#pragma once +#include "..\ManagedObjectArray.hpp" +#include "..\UInt8Array.hpp" +namespace regenny::via::behaviortree { +struct TreeNodeData; +} +namespace regenny::via::behaviortree { +#pragma pack(push, 1) +struct TreeObjectData { + void* vftable; // 0x0 + regenny::via::behaviortree::TreeNodeData* nodes; // 0x8 + uint32_t node_count; // 0x10 + private: char pad_14[0x4]; public: + regenny::via::ManagedObjectArray static_selector_callers; // 0x18 + regenny::via::ManagedObjectArray static_actions; // 0x28 + regenny::via::ManagedObjectArray static_conditions; // 0x38 + regenny::via::ManagedObjectArray static_transitions; // 0x48 + regenny::via::ManagedObjectArray expression_tree_conditions; // 0x58 + regenny::via::ManagedObjectArray actions; // 0x68 + regenny::via::ManagedObjectArray conditions; // 0x78 + regenny::via::ManagedObjectArray transitions; // 0x88 + private: char pad_98[0x60]; public: + regenny::via::UInt8Array action_methods; // 0xf8 + regenny::via::UInt8Array static_action_methods; // 0x108 + private: char pad_118[0x1e8]; public: +}; // Size: 0x300 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/clr/ManagedObject.hpp b/shared/sdk/regenny/dd2/via/clr/ManagedObject.hpp new file mode 100644 index 000000000..6b0d2b579 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/clr/ManagedObject.hpp @@ -0,0 +1,13 @@ +#pragma once +namespace regenny { +struct ManagedVtable; +} +namespace regenny::via::clr { +#pragma pack(push, 1) +struct ManagedObject { + regenny::ManagedVtable* info; // 0x0 + uint32_t reference_count; // 0x8 + uint32_t unk; // 0xc +}; // Size: 0x10 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/fixed_array_jobs.hpp b/shared/sdk/regenny/dd2/via/fixed_array_jobs.hpp new file mode 100644 index 000000000..a58fcb786 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/fixed_array_jobs.hpp @@ -0,0 +1,8 @@ +#pragma once +#include "JobSet.hpp" +namespace regenny::via { +#pragma pack(push, 1) +struct fixed_array_jobs { +}; // Size: 0x0 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/gui/Control.hpp b/shared/sdk/regenny/dd2/via/gui/Control.hpp new file mode 100644 index 000000000..311eb4d9c --- /dev/null +++ b/shared/sdk/regenny/dd2/via/gui/Control.hpp @@ -0,0 +1,19 @@ +#pragma once +#include "TransformObject.hpp" +#include "..\vec3.hpp" +#include "..\vec4.hpp" +namespace regenny::via::gui { +#pragma pack(push, 1) +struct Control : public TransformObject { + private: char pad_120[0x4]; public: + uint32_t StatePattern; // 0x124 + float PlayFrame; // 0x128 + regenny::via::vec4 ColorScale; // 0x12c + regenny::via::vec3 ColorOffset; // 0x13c + float Saturation; // 0x148 + private: char pad_14c[0x3c]; public: + bool UseGUISound; // 0x188 + private: char pad_189[0x27]; public: +}; // Size: 0x1b0 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/gui/GUI.hpp b/shared/sdk/regenny/dd2/via/gui/GUI.hpp new file mode 100644 index 000000000..0ed45e573 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/gui/GUI.hpp @@ -0,0 +1,32 @@ +#pragma once +#include "..\Component.hpp" +namespace regenny::via { +struct SceneView; +} +namespace regenny::via::gui { +struct View; +} +namespace regenny::via::gui { +#pragma pack(push, 1) +struct GUI : public regenny::via::Component { + regenny::via::SceneView* SceneView; // 0x30 + void* GUIResource; // 0x38 + void* RtTextureHandle; // 0x40 + void* GUISound; // 0x48 + bool Enabled; // 0x50 + bool FailedSetup; // 0x51 + uint8_t MaskLayerBits; // 0x52 + uint8_t MaskLayerBits2; // 0x53 + uint8_t MaskLayerBits3; // 0x54 + private: char pad_55[0x3]; public: + uint32_t RenderOutputID; // 0x58 + float PlaySpeed; // 0x5c + uint32_t Segment; // 0x60 + uint32_t SoftParticleDistType; // 0x64 + float SoftParticleDist; // 0x68 + private: char pad_6c[0x4]; public: + regenny::via::gui::View* View; // 0x70 + private: char pad_78[0x258]; public: +}; // Size: 0x2d0 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/gui/GUIManager.hpp b/shared/sdk/regenny/dd2/via/gui/GUIManager.hpp new file mode 100644 index 000000000..d3048d1fd --- /dev/null +++ b/shared/sdk/regenny/dd2/via/gui/GUIManager.hpp @@ -0,0 +1,13 @@ +#pragma once +#include "..\JobSet.hpp" +namespace regenny::via::gui { +#pragma pack(push, 1) +struct GUIManager { + private: char pad_0[0xe0]; public: + regenny::via::JobSet update_task; // 0xe0 + private: char pad_e8[0x38]; public: + regenny::via::JobSet draw_task; // 0x120 + private: char pad_128[0x78]; public: +}; // Size: 0x1a0 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/gui/GUIMeshRenderer.hpp b/shared/sdk/regenny/dd2/via/gui/GUIMeshRenderer.hpp new file mode 100644 index 000000000..33ab95e87 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/gui/GUIMeshRenderer.hpp @@ -0,0 +1,8 @@ +#pragma once +namespace regenny::via::gui { +#pragma pack(push, 1) +struct GUIMeshRenderer { + private: char pad_0[0x100]; public: +}; // Size: 0x100 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/gui/PlayObject.hpp b/shared/sdk/regenny/dd2/via/gui/PlayObject.hpp new file mode 100644 index 000000000..def291730 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/gui/PlayObject.hpp @@ -0,0 +1,61 @@ +#pragma once +#include "..\clr\ManagedObject.hpp" +namespace regenny::via::gui { +struct GUI; +} +namespace regenny::via::gui { +struct Control; +} +namespace regenny::via::gui { +#pragma pack(push, 1) +struct PlayObject : public regenny::via::clr::ManagedObject { + // Metadata: utf16* + wchar_t* Name; // 0x10 + regenny::via::gui::GUI* Component; // 0x18 + private: char pad_20[0x8]; public: + regenny::via::gui::Control* Parent; // 0x28 + regenny::via::gui::PlayObject* Next; // 0x30 + regenny::via::gui::PlayObject* Prev; // 0x38 + private: char pad_40[0x2]; public: + uint16_t Priority; // 0x42 + private: char pad_44[0x3]; public: + uint8_t pad; // 0x47 + uint64_t Visible : 1; // 0x48 + uint64_t Visible2 : 1; // 0x48 + uint64_t HitVisible : 1; // 0x48 + uint64_t ShouldPlay : 1; // 0x48 + uint64_t IsPlaying : 1; // 0x48 + uint64_t IsInteractive : 1; // 0x48 + uint64_t HasName : 1; // 0x48 + uint64_t HasTag : 1; // 0x48 + uint64_t SequenceAsset : 1; // 0x48 + uint64_t IsPNG : 1; // 0x48 + uint64_t IsJPG : 1; // 0x48 + uint64_t LinearAlphaBlend : 1; // 0x48 + uint64_t CompOwnership : 1; // 0x48 + uint64_t DuplicateRoot : 1; // 0x48 + uint64_t DataBind : 1; // 0x48 + uint64_t DataBinding : 1; // 0x48 + uint64_t AllocExData : 1; // 0x48 + uint64_t NextStateEnable : 1; // 0x48 + uint64_t _Unk : 1; // 0x48 + uint64_t _Unk2 : 1; // 0x48 + uint64_t ResolutionAdjust : 1; // 0x48 + uint64_t UniqueVisible : 1; // 0x48 + uint64_t EffectAlphaType : 1; // 0x48 + uint64_t HasOverrideProp : 1; // 0x48 + uint64_t IsCapturable : 1; // 0x48 + uint64_t ForceInvisible : 1; // 0x48 + uint64_t ClipPlaying : 1; // 0x48 + uint64_t BlendType : 2; // 0x48 + uint64_t MaskType : 3; // 0x48 + uint64_t MaskMode : 3; // 0x48 + uint64_t ColorType : 2; // 0x48 + uint64_t ControlPoint : 4; // 0x48 + uint64_t ResolutionCond : 2; // 0x48 + uint64_t ResolutionScale : 2; // 0x48 + uint64_t UVType : 2; // 0x48 + uint64_t UnkFlags : 17; // 0x48 +}; // Size: 0x50 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/gui/PrimitiveContext.hpp b/shared/sdk/regenny/dd2/via/gui/PrimitiveContext.hpp new file mode 100644 index 000000000..6301f0a4a --- /dev/null +++ b/shared/sdk/regenny/dd2/via/gui/PrimitiveContext.hpp @@ -0,0 +1,10 @@ +#pragma once +namespace regenny::via::gui { +#pragma pack(push, 1) +struct PrimitiveContext { + private: char pad_0[0xec]; public: + int32_t gui_camera; // 0xec + private: char pad_f0[0x210]; public: +}; // Size: 0x300 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/gui/TransformObject.hpp b/shared/sdk/regenny/dd2/via/gui/TransformObject.hpp new file mode 100644 index 000000000..f07752ef4 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/gui/TransformObject.hpp @@ -0,0 +1,9 @@ +#pragma once +#include "PlayObject.hpp" +namespace regenny::via::gui { +#pragma pack(push, 1) +struct TransformObject : public PlayObject { + private: char pad_50[0xd0]; public: +}; // Size: 0x120 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/gui/View.hpp b/shared/sdk/regenny/dd2/via/gui/View.hpp new file mode 100644 index 000000000..0a8d5ea4c --- /dev/null +++ b/shared/sdk/regenny/dd2/via/gui/View.hpp @@ -0,0 +1,20 @@ +#pragma once +#include "..\Size.hpp" +#include "Window.hpp" +namespace regenny::via::gui { +#pragma pack(push, 1) +struct View : public Window { + bool Overlay; // 0x1c0 + bool DepthTest; // 0x1c1 + bool DetoneMap; // 0x1c2 + bool CoordCorrection; // 0x1c3 + uint32_t ViewType; // 0x1c4 + private: char pad_1c8[0x4]; public: + uint32_t ReprojectionType; // 0x1cc + regenny::via::Size ScreenSize; // 0x1d0 + float BaseFps; // 0x1d8 + bool UseGUICamera; // 0x1dc + private: char pad_1dd[0x3]; public: +}; // Size: 0x1e0 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/gui/Window.hpp b/shared/sdk/regenny/dd2/via/gui/Window.hpp new file mode 100644 index 000000000..4a7922cb9 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/gui/Window.hpp @@ -0,0 +1,10 @@ +#pragma once +#include "Control.hpp" +namespace regenny::via::gui { +#pragma pack(push, 1) +struct Window : public Control { + bool Open; // 0x1b0 + private: char pad_1b1[0xf]; public: +}; // Size: 0x1c0 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/mat4.hpp b/shared/sdk/regenny/dd2/via/mat4.hpp new file mode 100644 index 000000000..e3e010629 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/mat4.hpp @@ -0,0 +1,8 @@ +#pragma once +namespace regenny::via { +#pragma pack(push, 1) +struct mat4 { + float m[4][4]; // 0x0 +}; // Size: 0x40 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/motion/AxisDirection.hpp b/shared/sdk/regenny/dd2/via/motion/AxisDirection.hpp new file mode 100644 index 000000000..7d7e8aff8 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/motion/AxisDirection.hpp @@ -0,0 +1,10 @@ +#pragma once +namespace regenny::via::motion { +#pragma pack(push, 1) +enum AxisDirection { + X = 1, + Y = 2, + NZ = 7, +}; +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/motion/Chain.hpp b/shared/sdk/regenny/dd2/via/motion/Chain.hpp new file mode 100644 index 000000000..fc0b3b865 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/motion/Chain.hpp @@ -0,0 +1,21 @@ +#pragma once +#include "ChainCollisionArray.hpp" +#include "SecondaryAnimation.hpp" +namespace regenny::via::motion { +#pragma pack(push, 1) +struct Chain : public SecondaryAnimation { + private: char pad_50[0xf0]; public: + regenny::via::motion::ChainCollisionArray CollisionData; // 0x140 + private: char pad_154[0xd8]; public: + float BlendRate; // 0x22c + float FreezeRate; // 0x230 + private: char pad_234[0x4c]; public: + float StepFrame; // 0x280 + private: char pad_284[0xf4]; public: + uint32_t CalculateMode; // 0x378 + private: char pad_37c[0x4]; public: + uint32_t GravityCoord; // 0x380 + private: char pad_384[0xc]; public: +}; // Size: 0x390 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/motion/ChainCollisionArray.hpp b/shared/sdk/regenny/dd2/via/motion/ChainCollisionArray.hpp new file mode 100644 index 000000000..627596133 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/motion/ChainCollisionArray.hpp @@ -0,0 +1,14 @@ +#pragma once +namespace regenny::via::motion { +struct ChainCollisionTop; +} +namespace regenny::via::motion { +#pragma pack(push, 1) +struct ChainCollisionArray { + regenny::via::motion::ChainCollisionTop* collisions; // 0x0 + int32_t num; // 0x8 + int32_t num_allocated; // 0xc + int32_t preset_id; // 0x10 +}; // Size: 0x14 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/motion/ChainCollisionData.hpp b/shared/sdk/regenny/dd2/via/motion/ChainCollisionData.hpp new file mode 100644 index 000000000..c2afa7231 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/motion/ChainCollisionData.hpp @@ -0,0 +1,21 @@ +#pragma once +#include "..\vec3.hpp" +namespace regenny::via::motion { +#pragma pack(push, 1) +struct ChainCollisionData { + void* sub_data; // 0x0 + regenny::via::vec3 pos; // 0x8 + regenny::via::vec3 pair_pos; // 0x14 + uint32_t joint_hash; // 0x20 + uint32_t pair_joint_hash; // 0x24 + float radius; // 0x28 + float lerp; // 0x2c + uint8_t shape_type; // 0x30 + uint8_t div; // 0x31 + uint8_t num_sub_data; // 0x32 + private: char pad_33[0x1]; public: + uint32_t flags; // 0x34 + uint32_t unk; // 0x38 +}; // Size: 0x3c +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/motion/ChainCollisionTop.hpp b/shared/sdk/regenny/dd2/via/motion/ChainCollisionTop.hpp new file mode 100644 index 000000000..8b285ba21 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/motion/ChainCollisionTop.hpp @@ -0,0 +1,18 @@ +#pragma once +namespace regenny::via::motion { +struct ChainCollisions; +} +namespace regenny::via::motion { +#pragma pack(push, 1) +struct ChainCollisionTop { + regenny::via::motion::ChainCollisions* collisions; // 0x0 + uint32_t num_collisions; // 0x8 + uint32_t allocated_collisions; // 0xc + void** owner_transform; // 0x10 + void* parent_transform; // 0x18 + float scale; // 0x20 + float parent_scale; // 0x24 + private: char pad_28[0xd8]; public: +}; // Size: 0x100 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/motion/ChainCollisions.hpp b/shared/sdk/regenny/dd2/via/motion/ChainCollisions.hpp new file mode 100644 index 000000000..647d7eacd --- /dev/null +++ b/shared/sdk/regenny/dd2/via/motion/ChainCollisions.hpp @@ -0,0 +1,40 @@ +#pragma once +#include "..\Capsule.hpp" +#include "..\Sphere.hpp" +#include "..\vec4.hpp" +namespace regenny::via { +struct Joint; +} +namespace regenny::via::motion { +struct ChainCollisionData; +} +namespace regenny::via::motion { +struct ChainCollisionTop; +} +namespace regenny::via::motion { +#pragma pack(push, 1) +struct ChainCollisions { + uint32_t order; // 0x0 + private: char pad_4[0xc]; public: + regenny::via::Sphere sphere; // 0x10 + regenny::via::Capsule capsule; // 0x20 + private: char pad_50[0x80]; public: + regenny::via::vec4 offset; // 0xd0 + regenny::via::vec4 pair_offset; // 0xe0 + private: char pad_f0[0x40]; public: + regenny::via::Joint* joint; // 0x130 + regenny::via::Joint* pair_joint; // 0x138 + regenny::via::motion::ChainCollisionData* data; // 0x140 + regenny::via::motion::ChainCollisionTop* owner; // 0x148 + float radius; // 0x150 + float radius2; // 0x154 + int32_t d; // 0x158 + float lerp; // 0x15c + int32_t pad2; // 0x160 + uint32_t flags; // 0x164 + float scale; // 0x168 + bool valid; // 0x16c + private: char pad_16d[0x13]; public: +}; // Size: 0x180 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/motion/Data.hpp b/shared/sdk/regenny/dd2/via/motion/Data.hpp new file mode 100644 index 000000000..69b927014 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/motion/Data.hpp @@ -0,0 +1,8 @@ +#pragma once +namespace regenny::via::motion { +#pragma pack(push, 1) +struct Data { + private: char pad_0[0x100]; public: +}; // Size: 0x100 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/motion/InterpolationMode.hpp b/shared/sdk/regenny/dd2/via/motion/InterpolationMode.hpp new file mode 100644 index 000000000..ff4c9da92 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/motion/InterpolationMode.hpp @@ -0,0 +1,8 @@ +#pragma once +namespace regenny::via::motion { +#pragma pack(push, 1) +enum InterpolationMode : uint32_t { + Fuck = 1, +}; +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/motion/MotionFsm2.hpp b/shared/sdk/regenny/dd2/via/motion/MotionFsm2.hpp new file mode 100644 index 000000000..74323a7aa --- /dev/null +++ b/shared/sdk/regenny/dd2/via/motion/MotionFsm2.hpp @@ -0,0 +1,9 @@ +#pragma once +#include "..\behaviortree\BehaviorTree.hpp" +namespace regenny::via::motion { +#pragma pack(push, 1) +struct MotionFsm2 : public regenny::via::behaviortree::BehaviorTree { + private: char pad_a4[0x5c]; public: +}; // Size: 0x100 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/motion/MotionFsm2Internal.hpp b/shared/sdk/regenny/dd2/via/motion/MotionFsm2Internal.hpp new file mode 100644 index 000000000..0ec138879 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/motion/MotionFsm2Internal.hpp @@ -0,0 +1,15 @@ +#pragma once +#include "..\behaviortree\BehaviorTreeData.hpp" +namespace regenny::via::motion { +struct MotionFsm2RawData; +} +namespace regenny::via::motion { +#pragma pack(push, 1) +struct MotionFsm2Internal { + void* vftable; // 0x0 + regenny::via::motion::MotionFsm2RawData* data; // 0x8 + private: char pad_10[0x8]; public: + regenny::via::behaviortree::BehaviorTreeData bhvt; // 0x18 +}; // Size: 0x328 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/motion/MotionFsm2Layer.hpp b/shared/sdk/regenny/dd2/via/motion/MotionFsm2Layer.hpp new file mode 100644 index 000000000..1ea388f44 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/motion/MotionFsm2Layer.hpp @@ -0,0 +1,8 @@ +#pragma once +#include "..\behaviortree\CoreHandle.hpp" +namespace regenny::via::motion { +#pragma pack(push, 1) +struct MotionFsm2Layer : public regenny::via::behaviortree::CoreHandle { +}; // Size: 0x220 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/motion/MotionFsm2RawData.hpp b/shared/sdk/regenny/dd2/via/motion/MotionFsm2RawData.hpp new file mode 100644 index 000000000..022e7450f --- /dev/null +++ b/shared/sdk/regenny/dd2/via/motion/MotionFsm2RawData.hpp @@ -0,0 +1,24 @@ +#pragma once +namespace regenny::via::motion { +struct TransitionMap; +} +namespace regenny::via::motion { +struct TransitionData; +} +namespace regenny::via::motion { +struct Data; +} +namespace regenny::via::motion { +#pragma pack(push, 1) +struct MotionFsm2RawData { + uint8_t hdr[16]; // 0x0 + uint8_t* file_data; // 0x10 + regenny::via::motion::TransitionMap* transition_map; // 0x18 + regenny::via::motion::TransitionData* transition_data; // 0x20 + regenny::via::motion::Data* data; // 0x28 + uint32_t transition_map_count; // 0x30 + uint32_t transition_data_count; // 0x34 + uint32_t transition_data_start; // 0x38 +}; // Size: 0x3c +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/motion/MotionFsm2Resource.hpp b/shared/sdk/regenny/dd2/via/motion/MotionFsm2Resource.hpp new file mode 100644 index 000000000..95e736dda --- /dev/null +++ b/shared/sdk/regenny/dd2/via/motion/MotionFsm2Resource.hpp @@ -0,0 +1,10 @@ +#pragma once +#include "MotionFsm2Internal.hpp" +namespace regenny::via::motion { +#pragma pack(push, 1) +struct MotionFsm2Resource { + private: char pad_0[0x50]; public: + regenny::via::motion::MotionFsm2Internal fsm2data; // 0x50 +}; // Size: 0x378 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/motion/SecondaryAnimation.hpp b/shared/sdk/regenny/dd2/via/motion/SecondaryAnimation.hpp new file mode 100644 index 000000000..0f7c5635b --- /dev/null +++ b/shared/sdk/regenny/dd2/via/motion/SecondaryAnimation.hpp @@ -0,0 +1,10 @@ +#pragma once +#include "..\Component.hpp" +namespace regenny::via::motion { +#pragma pack(push, 1) +struct SecondaryAnimation : public regenny::via::Component { + void* motion; // 0x30 + private: char pad_38[0x18]; public: +}; // Size: 0x50 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/motion/TransitionData.hpp b/shared/sdk/regenny/dd2/via/motion/TransitionData.hpp new file mode 100644 index 000000000..9b4b5531a --- /dev/null +++ b/shared/sdk/regenny/dd2/via/motion/TransitionData.hpp @@ -0,0 +1,23 @@ +#pragma once +namespace regenny::via::motion { +#pragma pack(push, 1) +struct TransitionData { + uint32_t id; // 0x0 + uint32_t end_type : 4; // 0x4 + uint32_t interpolation_mode : 4; // 0x4 + uint32_t prev_move_to_end : 1; // 0x4 + uint32_t start_type : 4; // 0x4 + uint32_t elapsed_time_zero : 1; // 0x4 + uint32_t cont_on_layer : 1; // 0x4 + uint32_t cont_on_layer_interp_curve : 4; // 0x4 + private: uint32_t pad_bitfield_4_13 : 13; public: + float exit_frame; // 0x8 + float start_frame; // 0xc + float interpolation_frame; // 0x10 + uint32_t pad; // 0x14 + uint32_t pad2; // 0x18 + uint32_t pad3; // 0x1c + uint32_t pad4; // 0x20 +}; // Size: 0x24 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/motion/TransitionMap.hpp b/shared/sdk/regenny/dd2/via/motion/TransitionMap.hpp new file mode 100644 index 000000000..00d0f0c6e --- /dev/null +++ b/shared/sdk/regenny/dd2/via/motion/TransitionMap.hpp @@ -0,0 +1,9 @@ +#pragma once +namespace regenny::via::motion { +#pragma pack(push, 1) +struct TransitionMap { + uint32_t id; // 0x0 + uint32_t index; // 0x4 +}; // Size: 0x8 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/typeinfo/TypeInfo.hpp b/shared/sdk/regenny/dd2/via/typeinfo/TypeInfo.hpp new file mode 100644 index 000000000..f5896a6cf --- /dev/null +++ b/shared/sdk/regenny/dd2/via/typeinfo/TypeInfo.hpp @@ -0,0 +1,27 @@ +#pragma once +namespace regenny { +struct TypeDefinition; +} +namespace regenny::via::typeinfo { +#pragma pack(push, 1) +struct TypeInfo { + void* vfptr; // 0x0 + uint32_t fqn_hash; // 0x8 + uint16_t attributes; // 0xc + uint16_t type; // 0xe + uint64_t fast_class_index; // 0x10 + uint64_t bsr_fast_class_index; // 0x18 + // Metadata: utf8* + char* name; // 0x20 + uint32_t parent_typeid; // 0x28 + uint32_t size; // 0x2c + uint32_t crc; // 0x30 + uint32_t mics_flags; // 0x34 + regenny::via::typeinfo::TypeInfo* parent; // 0x38 + regenny::via::typeinfo::TypeInfo* child; // 0x40 + regenny::via::typeinfo::TypeInfo* next; // 0x48 + void* reflection; // 0x50 + regenny::TypeDefinition* type_definition; // 0x58 +}; // Size: 0x60 +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/vec3.hpp b/shared/sdk/regenny/dd2/via/vec3.hpp new file mode 100644 index 000000000..7c2e9cbe0 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/vec3.hpp @@ -0,0 +1,10 @@ +#pragma once +namespace regenny::via { +#pragma pack(push, 1) +struct vec3 { + float x; // 0x0 + float y; // 0x4 + float z; // 0x8 +}; // Size: 0xc +#pragma pack(pop) +} diff --git a/shared/sdk/regenny/dd2/via/vec4.hpp b/shared/sdk/regenny/dd2/via/vec4.hpp new file mode 100644 index 000000000..686e03359 --- /dev/null +++ b/shared/sdk/regenny/dd2/via/vec4.hpp @@ -0,0 +1,9 @@ +#pragma once +#include "vec3.hpp" +namespace regenny::via { +#pragma pack(push, 1) +struct vec4 : public vec3 { + float w; // 0xc +}; // Size: 0x10 +#pragma pack(pop) +} diff --git a/src/mods/Graphics.cpp b/src/mods/Graphics.cpp index 3ac49bfa2..555df5263 100644 --- a/src/mods/Graphics.cpp +++ b/src/mods/Graphics.cpp @@ -22,6 +22,9 @@ #elif defined(RE4) #include "sdk/regenny/re4/via/Window.hpp" #include "sdk/regenny/re4/via/SceneView.hpp" +#elif defined(DD2) +#include "sdk/regenny/dd2/via/Window.hpp" +#include "sdk/regenny/dd2/via/SceneView.hpp" #else #include "sdk/regenny/mhrise_tdb71/via/Window.hpp" #include "sdk/regenny/mhrise_tdb71/via/SceneView.hpp" diff --git a/src/mods/VR.cpp b/src/mods/VR.cpp index 6cd0c95b3..fad2befb2 100644 --- a/src/mods/VR.cpp +++ b/src/mods/VR.cpp @@ -26,6 +26,9 @@ #elif defined(RE4) #include "sdk/regenny/re4/via/Window.hpp" #include "sdk/regenny/re4/via/SceneView.hpp" +#elif defined(DD2) +#include "sdk/regenny/dd2/via/Window.hpp" +#include "sdk/regenny/dd2/via/SceneView.hpp" #else #include "sdk/regenny/mhrise_tdb71/via/Window.hpp" #include "sdk/regenny/mhrise_tdb71/via/SceneView.hpp" From 44693ae176a9468880d10575a1f6797bd48bda94 Mon Sep 17 00:00:00 2001 From: praydog Date: Tue, 12 Mar 2024 13:40:36 -0700 Subject: [PATCH 04/13] Dragon's Dogma 2: Fix VR crashing --- src/mods/VR.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/mods/VR.cpp b/src/mods/VR.cpp index fad2befb2..4ed793189 100644 --- a/src/mods/VR.cpp +++ b/src/mods/VR.cpp @@ -1172,6 +1172,7 @@ std::optional VR::hijack_camera() { std::optional VR::hijack_wwise_listeners() { #ifndef RE4 #ifndef SF6 +#if TDB_VER < 73 spdlog::info("[VR] Hijacking WwiseListener"); const auto t = sdk::find_type_definition("via.wwise.WwiseListener"); @@ -1235,6 +1236,7 @@ std::optional VR::hijack_wwise_listeners() { return "VR init failed: via.wwise.WwiseListener update native function hook failed."; } #endif +#endif #endif return std::nullopt; From 0dc8219b6876130f59ab99f5a93dd6b323cb5d27 Mon Sep 17 00:00:00 2001 From: praydog Date: Tue, 12 Mar 2024 15:23:37 -0700 Subject: [PATCH 05/13] VR (D3D12): Clear backbuffer RTV before rendering to it to fix bugs --- src/mods/vr/D3D12Component.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mods/vr/D3D12Component.cpp b/src/mods/vr/D3D12Component.cpp index aa130dfe1..2bb4e8066 100644 --- a/src/mods/vr/D3D12Component.cpp +++ b/src/mods/vr/D3D12Component.cpp @@ -47,6 +47,9 @@ vr::EVRCompositorError D3D12Component::on_frame(VR* vr) { // Copy current backbuffer into our copy so we can use it as an SRV. m_backbuffer_copy.commands.copy(backbuffer.Get(), m_backbuffer_copy.texture.Get(), D3D12_RESOURCE_STATE_PRESENT, D3D12_RESOURCE_STATE_PRESENT); + float clear_color[4]{0.0f, 0.0f, 0.0f, 0.0f}; + m_backbuffer_copy.commands.clear_rtv(m_converted_eye_tex, clear_color, D3D12_RESOURCE_STATE_PRESENT); + // Convert the backbuffer to 8-bit. render_srv_to_rtv(command_list, m_backbuffer_copy, m_converted_eye_tex, D3D12_RESOURCE_STATE_PRESENT, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE); From 5a892777f72ebc4fd7f1ca7cf1cc6fd9157eda19 Mon Sep 17 00:00:00 2001 From: praydog Date: Tue, 12 Mar 2024 17:15:26 -0700 Subject: [PATCH 06/13] VR & Ultrawide (DD2): Fix window sizing behavior --- CMakeLists.txt | 1248 +++++++++++++++++++++++++ reversing/dd2.genny | 2 +- shared/sdk/regenny/dd2/via/Window.hpp | 6 +- src/mods/Graphics.cpp | 2 +- src/mods/VR.cpp | 2 +- 5 files changed, 1254 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index eb01f3e4b..a16542832 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -580,6 +580,7 @@ if(REF_BUILD_RE2_SDK OR REF_BUILD_FRAMEWORK) # build-re2-sdk "shared/sdk/REVariableDescriptor.hpp" "shared/sdk/ReClass.hpp" "shared/sdk/ReClass_Internal.hpp" + "shared/sdk/ReClass_Internal_DD2.hpp" "shared/sdk/ReClass_Internal_DMC5.hpp" "shared/sdk/ReClass_Internal_RE2_TDB70.hpp" "shared/sdk/ReClass_Internal_RE3.hpp" @@ -598,6 +599,109 @@ if(REF_BUILD_RE2_SDK OR REF_BUILD_FRAMEWORK) # build-re2-sdk "shared/sdk/TDBVer.hpp" "shared/sdk/helpers/NativeObject.hpp" "shared/sdk/intrusive_ptr.hpp" + "shared/sdk/regenny/dd2/BullShit.hpp" + "shared/sdk/regenny/dd2/DeserializeSequence.hpp" + "shared/sdk/regenny/dd2/ManagedVtable.hpp" + "shared/sdk/regenny/dd2/RTInternal.hpp" + "shared/sdk/regenny/dd2/RayTrace.hpp" + "shared/sdk/regenny/dd2/RenderEntity.hpp" + "shared/sdk/regenny/dd2/System/String.hpp" + "shared/sdk/regenny/dd2/TypeDefinition.hpp" + "shared/sdk/regenny/dd2/game/IkArmFit.hpp" + "shared/sdk/regenny/dd2/game/InputSystem.hpp" + "shared/sdk/regenny/dd2/tdb71/AttributeDef.hpp" + "shared/sdk/regenny/dd2/tdb71/Field.hpp" + "shared/sdk/regenny/dd2/tdb71/FieldImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/MethodDefinition.hpp" + "shared/sdk/regenny/dd2/tdb71/MethodImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/ParamList.hpp" + "shared/sdk/regenny/dd2/tdb71/ParameterDef.hpp" + "shared/sdk/regenny/dd2/tdb71/Property.hpp" + "shared/sdk/regenny/dd2/tdb71/PropertyImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/TDB.hpp" + "shared/sdk/regenny/dd2/tdb71/TypeDefinition.hpp" + "shared/sdk/regenny/dd2/tdb71/TypeImpl.hpp" + "shared/sdk/regenny/dd2/via/BasisPlane.hpp" + "shared/sdk/regenny/dd2/via/CameraType.hpp" + "shared/sdk/regenny/dd2/via/Capsule.hpp" + "shared/sdk/regenny/dd2/via/Color.hpp" + "shared/sdk/regenny/dd2/via/Component.hpp" + "shared/sdk/regenny/dd2/via/DeviceOrientation.hpp" + "shared/sdk/regenny/dd2/via/DisplayType.hpp" + "shared/sdk/regenny/dd2/via/Folder.hpp" + "shared/sdk/regenny/dd2/via/GameObject.hpp" + "shared/sdk/regenny/dd2/via/IntArray.hpp" + "shared/sdk/regenny/dd2/via/JobSet.hpp" + "shared/sdk/regenny/dd2/via/Joint.hpp" + "shared/sdk/regenny/dd2/via/JointArray.hpp" + "shared/sdk/regenny/dd2/via/JointData.hpp" + "shared/sdk/regenny/dd2/via/JointDesc.hpp" + "shared/sdk/regenny/dd2/via/JointMap.hpp" + "shared/sdk/regenny/dd2/via/ManagedObjectArray.hpp" + "shared/sdk/regenny/dd2/via/MobileBarState.hpp" + "shared/sdk/regenny/dd2/via/Motion.hpp" + "shared/sdk/regenny/dd2/via/Object.hpp" + "shared/sdk/regenny/dd2/via/Point.hpp" + "shared/sdk/regenny/dd2/via/Range.hpp" + "shared/sdk/regenny/dd2/via/RenderType.hpp" + "shared/sdk/regenny/dd2/via/Scene.hpp" + "shared/sdk/regenny/dd2/via/SceneArray.hpp" + "shared/sdk/regenny/dd2/via/SceneManager.hpp" + "shared/sdk/regenny/dd2/via/SceneView.hpp" + "shared/sdk/regenny/dd2/via/Size.hpp" + "shared/sdk/regenny/dd2/via/Sphere.hpp" + "shared/sdk/regenny/dd2/via/Transform.hpp" + "shared/sdk/regenny/dd2/via/UInt8Array.hpp" + "shared/sdk/regenny/dd2/via/UIntArray.hpp" + "shared/sdk/regenny/dd2/via/UIntArrayArray.hpp" + "shared/sdk/regenny/dd2/via/Window.hpp" + "shared/sdk/regenny/dd2/via/array.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTree.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeCoreHandleArray.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeData.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Condition.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Core.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/CoreHandle.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeArray.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeArray2.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeStatus.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Selector.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/SelectorFSM.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeNode.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeNodeData.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeObject.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeObjectData.hpp" + "shared/sdk/regenny/dd2/via/clr/ManagedObject.hpp" + "shared/sdk/regenny/dd2/via/fixed_array_jobs.hpp" + "shared/sdk/regenny/dd2/via/gui/Control.hpp" + "shared/sdk/regenny/dd2/via/gui/GUI.hpp" + "shared/sdk/regenny/dd2/via/gui/GUIManager.hpp" + "shared/sdk/regenny/dd2/via/gui/GUIMeshRenderer.hpp" + "shared/sdk/regenny/dd2/via/gui/PlayObject.hpp" + "shared/sdk/regenny/dd2/via/gui/PrimitiveContext.hpp" + "shared/sdk/regenny/dd2/via/gui/TransformObject.hpp" + "shared/sdk/regenny/dd2/via/gui/View.hpp" + "shared/sdk/regenny/dd2/via/gui/Window.hpp" + "shared/sdk/regenny/dd2/via/mat4.hpp" + "shared/sdk/regenny/dd2/via/motion/AxisDirection.hpp" + "shared/sdk/regenny/dd2/via/motion/Chain.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionArray.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionData.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionTop.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisions.hpp" + "shared/sdk/regenny/dd2/via/motion/Data.hpp" + "shared/sdk/regenny/dd2/via/motion/InterpolationMode.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Internal.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Layer.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2RawData.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Resource.hpp" + "shared/sdk/regenny/dd2/via/motion/SecondaryAnimation.hpp" + "shared/sdk/regenny/dd2/via/motion/TransitionData.hpp" + "shared/sdk/regenny/dd2/via/motion/TransitionMap.hpp" + "shared/sdk/regenny/dd2/via/typeinfo/TypeInfo.hpp" + "shared/sdk/regenny/dd2/via/vec3.hpp" + "shared/sdk/regenny/dd2/via/vec4.hpp" "shared/sdk/regenny/mhrise/via/Capsule.hpp" "shared/sdk/regenny/mhrise/via/OBB.hpp" "shared/sdk/regenny/mhrise/via/Sphere.hpp" @@ -1298,6 +1402,7 @@ if(REF_BUILD_RE2_TDB66SDK OR REF_BUILD_FRAMEWORK) # build-re2tdb66-sdk "shared/sdk/REVariableDescriptor.hpp" "shared/sdk/ReClass.hpp" "shared/sdk/ReClass_Internal.hpp" + "shared/sdk/ReClass_Internal_DD2.hpp" "shared/sdk/ReClass_Internal_DMC5.hpp" "shared/sdk/ReClass_Internal_RE2_TDB70.hpp" "shared/sdk/ReClass_Internal_RE3.hpp" @@ -1316,6 +1421,109 @@ if(REF_BUILD_RE2_TDB66SDK OR REF_BUILD_FRAMEWORK) # build-re2tdb66-sdk "shared/sdk/TDBVer.hpp" "shared/sdk/helpers/NativeObject.hpp" "shared/sdk/intrusive_ptr.hpp" + "shared/sdk/regenny/dd2/BullShit.hpp" + "shared/sdk/regenny/dd2/DeserializeSequence.hpp" + "shared/sdk/regenny/dd2/ManagedVtable.hpp" + "shared/sdk/regenny/dd2/RTInternal.hpp" + "shared/sdk/regenny/dd2/RayTrace.hpp" + "shared/sdk/regenny/dd2/RenderEntity.hpp" + "shared/sdk/regenny/dd2/System/String.hpp" + "shared/sdk/regenny/dd2/TypeDefinition.hpp" + "shared/sdk/regenny/dd2/game/IkArmFit.hpp" + "shared/sdk/regenny/dd2/game/InputSystem.hpp" + "shared/sdk/regenny/dd2/tdb71/AttributeDef.hpp" + "shared/sdk/regenny/dd2/tdb71/Field.hpp" + "shared/sdk/regenny/dd2/tdb71/FieldImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/MethodDefinition.hpp" + "shared/sdk/regenny/dd2/tdb71/MethodImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/ParamList.hpp" + "shared/sdk/regenny/dd2/tdb71/ParameterDef.hpp" + "shared/sdk/regenny/dd2/tdb71/Property.hpp" + "shared/sdk/regenny/dd2/tdb71/PropertyImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/TDB.hpp" + "shared/sdk/regenny/dd2/tdb71/TypeDefinition.hpp" + "shared/sdk/regenny/dd2/tdb71/TypeImpl.hpp" + "shared/sdk/regenny/dd2/via/BasisPlane.hpp" + "shared/sdk/regenny/dd2/via/CameraType.hpp" + "shared/sdk/regenny/dd2/via/Capsule.hpp" + "shared/sdk/regenny/dd2/via/Color.hpp" + "shared/sdk/regenny/dd2/via/Component.hpp" + "shared/sdk/regenny/dd2/via/DeviceOrientation.hpp" + "shared/sdk/regenny/dd2/via/DisplayType.hpp" + "shared/sdk/regenny/dd2/via/Folder.hpp" + "shared/sdk/regenny/dd2/via/GameObject.hpp" + "shared/sdk/regenny/dd2/via/IntArray.hpp" + "shared/sdk/regenny/dd2/via/JobSet.hpp" + "shared/sdk/regenny/dd2/via/Joint.hpp" + "shared/sdk/regenny/dd2/via/JointArray.hpp" + "shared/sdk/regenny/dd2/via/JointData.hpp" + "shared/sdk/regenny/dd2/via/JointDesc.hpp" + "shared/sdk/regenny/dd2/via/JointMap.hpp" + "shared/sdk/regenny/dd2/via/ManagedObjectArray.hpp" + "shared/sdk/regenny/dd2/via/MobileBarState.hpp" + "shared/sdk/regenny/dd2/via/Motion.hpp" + "shared/sdk/regenny/dd2/via/Object.hpp" + "shared/sdk/regenny/dd2/via/Point.hpp" + "shared/sdk/regenny/dd2/via/Range.hpp" + "shared/sdk/regenny/dd2/via/RenderType.hpp" + "shared/sdk/regenny/dd2/via/Scene.hpp" + "shared/sdk/regenny/dd2/via/SceneArray.hpp" + "shared/sdk/regenny/dd2/via/SceneManager.hpp" + "shared/sdk/regenny/dd2/via/SceneView.hpp" + "shared/sdk/regenny/dd2/via/Size.hpp" + "shared/sdk/regenny/dd2/via/Sphere.hpp" + "shared/sdk/regenny/dd2/via/Transform.hpp" + "shared/sdk/regenny/dd2/via/UInt8Array.hpp" + "shared/sdk/regenny/dd2/via/UIntArray.hpp" + "shared/sdk/regenny/dd2/via/UIntArrayArray.hpp" + "shared/sdk/regenny/dd2/via/Window.hpp" + "shared/sdk/regenny/dd2/via/array.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTree.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeCoreHandleArray.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeData.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Condition.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Core.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/CoreHandle.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeArray.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeArray2.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeStatus.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Selector.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/SelectorFSM.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeNode.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeNodeData.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeObject.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeObjectData.hpp" + "shared/sdk/regenny/dd2/via/clr/ManagedObject.hpp" + "shared/sdk/regenny/dd2/via/fixed_array_jobs.hpp" + "shared/sdk/regenny/dd2/via/gui/Control.hpp" + "shared/sdk/regenny/dd2/via/gui/GUI.hpp" + "shared/sdk/regenny/dd2/via/gui/GUIManager.hpp" + "shared/sdk/regenny/dd2/via/gui/GUIMeshRenderer.hpp" + "shared/sdk/regenny/dd2/via/gui/PlayObject.hpp" + "shared/sdk/regenny/dd2/via/gui/PrimitiveContext.hpp" + "shared/sdk/regenny/dd2/via/gui/TransformObject.hpp" + "shared/sdk/regenny/dd2/via/gui/View.hpp" + "shared/sdk/regenny/dd2/via/gui/Window.hpp" + "shared/sdk/regenny/dd2/via/mat4.hpp" + "shared/sdk/regenny/dd2/via/motion/AxisDirection.hpp" + "shared/sdk/regenny/dd2/via/motion/Chain.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionArray.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionData.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionTop.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisions.hpp" + "shared/sdk/regenny/dd2/via/motion/Data.hpp" + "shared/sdk/regenny/dd2/via/motion/InterpolationMode.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Internal.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Layer.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2RawData.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Resource.hpp" + "shared/sdk/regenny/dd2/via/motion/SecondaryAnimation.hpp" + "shared/sdk/regenny/dd2/via/motion/TransitionData.hpp" + "shared/sdk/regenny/dd2/via/motion/TransitionMap.hpp" + "shared/sdk/regenny/dd2/via/typeinfo/TypeInfo.hpp" + "shared/sdk/regenny/dd2/via/vec3.hpp" + "shared/sdk/regenny/dd2/via/vec4.hpp" "shared/sdk/regenny/mhrise/via/Capsule.hpp" "shared/sdk/regenny/mhrise/via/OBB.hpp" "shared/sdk/regenny/mhrise/via/Sphere.hpp" @@ -2411,6 +2619,7 @@ if(REF_BUILD_RE3_SDK OR REF_BUILD_FRAMEWORK) # build-re3-sdk "shared/sdk/REVariableDescriptor.hpp" "shared/sdk/ReClass.hpp" "shared/sdk/ReClass_Internal.hpp" + "shared/sdk/ReClass_Internal_DD2.hpp" "shared/sdk/ReClass_Internal_DMC5.hpp" "shared/sdk/ReClass_Internal_RE2_TDB70.hpp" "shared/sdk/ReClass_Internal_RE3.hpp" @@ -2429,6 +2638,109 @@ if(REF_BUILD_RE3_SDK OR REF_BUILD_FRAMEWORK) # build-re3-sdk "shared/sdk/TDBVer.hpp" "shared/sdk/helpers/NativeObject.hpp" "shared/sdk/intrusive_ptr.hpp" + "shared/sdk/regenny/dd2/BullShit.hpp" + "shared/sdk/regenny/dd2/DeserializeSequence.hpp" + "shared/sdk/regenny/dd2/ManagedVtable.hpp" + "shared/sdk/regenny/dd2/RTInternal.hpp" + "shared/sdk/regenny/dd2/RayTrace.hpp" + "shared/sdk/regenny/dd2/RenderEntity.hpp" + "shared/sdk/regenny/dd2/System/String.hpp" + "shared/sdk/regenny/dd2/TypeDefinition.hpp" + "shared/sdk/regenny/dd2/game/IkArmFit.hpp" + "shared/sdk/regenny/dd2/game/InputSystem.hpp" + "shared/sdk/regenny/dd2/tdb71/AttributeDef.hpp" + "shared/sdk/regenny/dd2/tdb71/Field.hpp" + "shared/sdk/regenny/dd2/tdb71/FieldImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/MethodDefinition.hpp" + "shared/sdk/regenny/dd2/tdb71/MethodImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/ParamList.hpp" + "shared/sdk/regenny/dd2/tdb71/ParameterDef.hpp" + "shared/sdk/regenny/dd2/tdb71/Property.hpp" + "shared/sdk/regenny/dd2/tdb71/PropertyImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/TDB.hpp" + "shared/sdk/regenny/dd2/tdb71/TypeDefinition.hpp" + "shared/sdk/regenny/dd2/tdb71/TypeImpl.hpp" + "shared/sdk/regenny/dd2/via/BasisPlane.hpp" + "shared/sdk/regenny/dd2/via/CameraType.hpp" + "shared/sdk/regenny/dd2/via/Capsule.hpp" + "shared/sdk/regenny/dd2/via/Color.hpp" + "shared/sdk/regenny/dd2/via/Component.hpp" + "shared/sdk/regenny/dd2/via/DeviceOrientation.hpp" + "shared/sdk/regenny/dd2/via/DisplayType.hpp" + "shared/sdk/regenny/dd2/via/Folder.hpp" + "shared/sdk/regenny/dd2/via/GameObject.hpp" + "shared/sdk/regenny/dd2/via/IntArray.hpp" + "shared/sdk/regenny/dd2/via/JobSet.hpp" + "shared/sdk/regenny/dd2/via/Joint.hpp" + "shared/sdk/regenny/dd2/via/JointArray.hpp" + "shared/sdk/regenny/dd2/via/JointData.hpp" + "shared/sdk/regenny/dd2/via/JointDesc.hpp" + "shared/sdk/regenny/dd2/via/JointMap.hpp" + "shared/sdk/regenny/dd2/via/ManagedObjectArray.hpp" + "shared/sdk/regenny/dd2/via/MobileBarState.hpp" + "shared/sdk/regenny/dd2/via/Motion.hpp" + "shared/sdk/regenny/dd2/via/Object.hpp" + "shared/sdk/regenny/dd2/via/Point.hpp" + "shared/sdk/regenny/dd2/via/Range.hpp" + "shared/sdk/regenny/dd2/via/RenderType.hpp" + "shared/sdk/regenny/dd2/via/Scene.hpp" + "shared/sdk/regenny/dd2/via/SceneArray.hpp" + "shared/sdk/regenny/dd2/via/SceneManager.hpp" + "shared/sdk/regenny/dd2/via/SceneView.hpp" + "shared/sdk/regenny/dd2/via/Size.hpp" + "shared/sdk/regenny/dd2/via/Sphere.hpp" + "shared/sdk/regenny/dd2/via/Transform.hpp" + "shared/sdk/regenny/dd2/via/UInt8Array.hpp" + "shared/sdk/regenny/dd2/via/UIntArray.hpp" + "shared/sdk/regenny/dd2/via/UIntArrayArray.hpp" + "shared/sdk/regenny/dd2/via/Window.hpp" + "shared/sdk/regenny/dd2/via/array.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTree.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeCoreHandleArray.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeData.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Condition.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Core.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/CoreHandle.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeArray.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeArray2.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeStatus.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Selector.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/SelectorFSM.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeNode.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeNodeData.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeObject.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeObjectData.hpp" + "shared/sdk/regenny/dd2/via/clr/ManagedObject.hpp" + "shared/sdk/regenny/dd2/via/fixed_array_jobs.hpp" + "shared/sdk/regenny/dd2/via/gui/Control.hpp" + "shared/sdk/regenny/dd2/via/gui/GUI.hpp" + "shared/sdk/regenny/dd2/via/gui/GUIManager.hpp" + "shared/sdk/regenny/dd2/via/gui/GUIMeshRenderer.hpp" + "shared/sdk/regenny/dd2/via/gui/PlayObject.hpp" + "shared/sdk/regenny/dd2/via/gui/PrimitiveContext.hpp" + "shared/sdk/regenny/dd2/via/gui/TransformObject.hpp" + "shared/sdk/regenny/dd2/via/gui/View.hpp" + "shared/sdk/regenny/dd2/via/gui/Window.hpp" + "shared/sdk/regenny/dd2/via/mat4.hpp" + "shared/sdk/regenny/dd2/via/motion/AxisDirection.hpp" + "shared/sdk/regenny/dd2/via/motion/Chain.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionArray.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionData.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionTop.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisions.hpp" + "shared/sdk/regenny/dd2/via/motion/Data.hpp" + "shared/sdk/regenny/dd2/via/motion/InterpolationMode.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Internal.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Layer.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2RawData.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Resource.hpp" + "shared/sdk/regenny/dd2/via/motion/SecondaryAnimation.hpp" + "shared/sdk/regenny/dd2/via/motion/TransitionData.hpp" + "shared/sdk/regenny/dd2/via/motion/TransitionMap.hpp" + "shared/sdk/regenny/dd2/via/typeinfo/TypeInfo.hpp" + "shared/sdk/regenny/dd2/via/vec3.hpp" + "shared/sdk/regenny/dd2/via/vec4.hpp" "shared/sdk/regenny/mhrise/via/Capsule.hpp" "shared/sdk/regenny/mhrise/via/OBB.hpp" "shared/sdk/regenny/mhrise/via/Sphere.hpp" @@ -3129,6 +3441,7 @@ if(REF_BUILD_RE3_TDB67SDK OR REF_BUILD_FRAMEWORK) # build-re3tdb67-sdk "shared/sdk/REVariableDescriptor.hpp" "shared/sdk/ReClass.hpp" "shared/sdk/ReClass_Internal.hpp" + "shared/sdk/ReClass_Internal_DD2.hpp" "shared/sdk/ReClass_Internal_DMC5.hpp" "shared/sdk/ReClass_Internal_RE2_TDB70.hpp" "shared/sdk/ReClass_Internal_RE3.hpp" @@ -3147,6 +3460,109 @@ if(REF_BUILD_RE3_TDB67SDK OR REF_BUILD_FRAMEWORK) # build-re3tdb67-sdk "shared/sdk/TDBVer.hpp" "shared/sdk/helpers/NativeObject.hpp" "shared/sdk/intrusive_ptr.hpp" + "shared/sdk/regenny/dd2/BullShit.hpp" + "shared/sdk/regenny/dd2/DeserializeSequence.hpp" + "shared/sdk/regenny/dd2/ManagedVtable.hpp" + "shared/sdk/regenny/dd2/RTInternal.hpp" + "shared/sdk/regenny/dd2/RayTrace.hpp" + "shared/sdk/regenny/dd2/RenderEntity.hpp" + "shared/sdk/regenny/dd2/System/String.hpp" + "shared/sdk/regenny/dd2/TypeDefinition.hpp" + "shared/sdk/regenny/dd2/game/IkArmFit.hpp" + "shared/sdk/regenny/dd2/game/InputSystem.hpp" + "shared/sdk/regenny/dd2/tdb71/AttributeDef.hpp" + "shared/sdk/regenny/dd2/tdb71/Field.hpp" + "shared/sdk/regenny/dd2/tdb71/FieldImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/MethodDefinition.hpp" + "shared/sdk/regenny/dd2/tdb71/MethodImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/ParamList.hpp" + "shared/sdk/regenny/dd2/tdb71/ParameterDef.hpp" + "shared/sdk/regenny/dd2/tdb71/Property.hpp" + "shared/sdk/regenny/dd2/tdb71/PropertyImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/TDB.hpp" + "shared/sdk/regenny/dd2/tdb71/TypeDefinition.hpp" + "shared/sdk/regenny/dd2/tdb71/TypeImpl.hpp" + "shared/sdk/regenny/dd2/via/BasisPlane.hpp" + "shared/sdk/regenny/dd2/via/CameraType.hpp" + "shared/sdk/regenny/dd2/via/Capsule.hpp" + "shared/sdk/regenny/dd2/via/Color.hpp" + "shared/sdk/regenny/dd2/via/Component.hpp" + "shared/sdk/regenny/dd2/via/DeviceOrientation.hpp" + "shared/sdk/regenny/dd2/via/DisplayType.hpp" + "shared/sdk/regenny/dd2/via/Folder.hpp" + "shared/sdk/regenny/dd2/via/GameObject.hpp" + "shared/sdk/regenny/dd2/via/IntArray.hpp" + "shared/sdk/regenny/dd2/via/JobSet.hpp" + "shared/sdk/regenny/dd2/via/Joint.hpp" + "shared/sdk/regenny/dd2/via/JointArray.hpp" + "shared/sdk/regenny/dd2/via/JointData.hpp" + "shared/sdk/regenny/dd2/via/JointDesc.hpp" + "shared/sdk/regenny/dd2/via/JointMap.hpp" + "shared/sdk/regenny/dd2/via/ManagedObjectArray.hpp" + "shared/sdk/regenny/dd2/via/MobileBarState.hpp" + "shared/sdk/regenny/dd2/via/Motion.hpp" + "shared/sdk/regenny/dd2/via/Object.hpp" + "shared/sdk/regenny/dd2/via/Point.hpp" + "shared/sdk/regenny/dd2/via/Range.hpp" + "shared/sdk/regenny/dd2/via/RenderType.hpp" + "shared/sdk/regenny/dd2/via/Scene.hpp" + "shared/sdk/regenny/dd2/via/SceneArray.hpp" + "shared/sdk/regenny/dd2/via/SceneManager.hpp" + "shared/sdk/regenny/dd2/via/SceneView.hpp" + "shared/sdk/regenny/dd2/via/Size.hpp" + "shared/sdk/regenny/dd2/via/Sphere.hpp" + "shared/sdk/regenny/dd2/via/Transform.hpp" + "shared/sdk/regenny/dd2/via/UInt8Array.hpp" + "shared/sdk/regenny/dd2/via/UIntArray.hpp" + "shared/sdk/regenny/dd2/via/UIntArrayArray.hpp" + "shared/sdk/regenny/dd2/via/Window.hpp" + "shared/sdk/regenny/dd2/via/array.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTree.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeCoreHandleArray.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeData.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Condition.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Core.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/CoreHandle.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeArray.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeArray2.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeStatus.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Selector.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/SelectorFSM.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeNode.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeNodeData.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeObject.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeObjectData.hpp" + "shared/sdk/regenny/dd2/via/clr/ManagedObject.hpp" + "shared/sdk/regenny/dd2/via/fixed_array_jobs.hpp" + "shared/sdk/regenny/dd2/via/gui/Control.hpp" + "shared/sdk/regenny/dd2/via/gui/GUI.hpp" + "shared/sdk/regenny/dd2/via/gui/GUIManager.hpp" + "shared/sdk/regenny/dd2/via/gui/GUIMeshRenderer.hpp" + "shared/sdk/regenny/dd2/via/gui/PlayObject.hpp" + "shared/sdk/regenny/dd2/via/gui/PrimitiveContext.hpp" + "shared/sdk/regenny/dd2/via/gui/TransformObject.hpp" + "shared/sdk/regenny/dd2/via/gui/View.hpp" + "shared/sdk/regenny/dd2/via/gui/Window.hpp" + "shared/sdk/regenny/dd2/via/mat4.hpp" + "shared/sdk/regenny/dd2/via/motion/AxisDirection.hpp" + "shared/sdk/regenny/dd2/via/motion/Chain.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionArray.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionData.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionTop.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisions.hpp" + "shared/sdk/regenny/dd2/via/motion/Data.hpp" + "shared/sdk/regenny/dd2/via/motion/InterpolationMode.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Internal.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Layer.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2RawData.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Resource.hpp" + "shared/sdk/regenny/dd2/via/motion/SecondaryAnimation.hpp" + "shared/sdk/regenny/dd2/via/motion/TransitionData.hpp" + "shared/sdk/regenny/dd2/via/motion/TransitionMap.hpp" + "shared/sdk/regenny/dd2/via/typeinfo/TypeInfo.hpp" + "shared/sdk/regenny/dd2/via/vec3.hpp" + "shared/sdk/regenny/dd2/via/vec4.hpp" "shared/sdk/regenny/mhrise/via/Capsule.hpp" "shared/sdk/regenny/mhrise/via/OBB.hpp" "shared/sdk/regenny/mhrise/via/Sphere.hpp" @@ -4439,6 +4855,7 @@ if(REF_BUILD_RE4_SDK OR REF_BUILD_FRAMEWORK) # build-re4-sdk "shared/sdk/REVariableDescriptor.hpp" "shared/sdk/ReClass.hpp" "shared/sdk/ReClass_Internal.hpp" + "shared/sdk/ReClass_Internal_DD2.hpp" "shared/sdk/ReClass_Internal_DMC5.hpp" "shared/sdk/ReClass_Internal_RE2_TDB70.hpp" "shared/sdk/ReClass_Internal_RE3.hpp" @@ -4457,6 +4874,109 @@ if(REF_BUILD_RE4_SDK OR REF_BUILD_FRAMEWORK) # build-re4-sdk "shared/sdk/TDBVer.hpp" "shared/sdk/helpers/NativeObject.hpp" "shared/sdk/intrusive_ptr.hpp" + "shared/sdk/regenny/dd2/BullShit.hpp" + "shared/sdk/regenny/dd2/DeserializeSequence.hpp" + "shared/sdk/regenny/dd2/ManagedVtable.hpp" + "shared/sdk/regenny/dd2/RTInternal.hpp" + "shared/sdk/regenny/dd2/RayTrace.hpp" + "shared/sdk/regenny/dd2/RenderEntity.hpp" + "shared/sdk/regenny/dd2/System/String.hpp" + "shared/sdk/regenny/dd2/TypeDefinition.hpp" + "shared/sdk/regenny/dd2/game/IkArmFit.hpp" + "shared/sdk/regenny/dd2/game/InputSystem.hpp" + "shared/sdk/regenny/dd2/tdb71/AttributeDef.hpp" + "shared/sdk/regenny/dd2/tdb71/Field.hpp" + "shared/sdk/regenny/dd2/tdb71/FieldImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/MethodDefinition.hpp" + "shared/sdk/regenny/dd2/tdb71/MethodImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/ParamList.hpp" + "shared/sdk/regenny/dd2/tdb71/ParameterDef.hpp" + "shared/sdk/regenny/dd2/tdb71/Property.hpp" + "shared/sdk/regenny/dd2/tdb71/PropertyImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/TDB.hpp" + "shared/sdk/regenny/dd2/tdb71/TypeDefinition.hpp" + "shared/sdk/regenny/dd2/tdb71/TypeImpl.hpp" + "shared/sdk/regenny/dd2/via/BasisPlane.hpp" + "shared/sdk/regenny/dd2/via/CameraType.hpp" + "shared/sdk/regenny/dd2/via/Capsule.hpp" + "shared/sdk/regenny/dd2/via/Color.hpp" + "shared/sdk/regenny/dd2/via/Component.hpp" + "shared/sdk/regenny/dd2/via/DeviceOrientation.hpp" + "shared/sdk/regenny/dd2/via/DisplayType.hpp" + "shared/sdk/regenny/dd2/via/Folder.hpp" + "shared/sdk/regenny/dd2/via/GameObject.hpp" + "shared/sdk/regenny/dd2/via/IntArray.hpp" + "shared/sdk/regenny/dd2/via/JobSet.hpp" + "shared/sdk/regenny/dd2/via/Joint.hpp" + "shared/sdk/regenny/dd2/via/JointArray.hpp" + "shared/sdk/regenny/dd2/via/JointData.hpp" + "shared/sdk/regenny/dd2/via/JointDesc.hpp" + "shared/sdk/regenny/dd2/via/JointMap.hpp" + "shared/sdk/regenny/dd2/via/ManagedObjectArray.hpp" + "shared/sdk/regenny/dd2/via/MobileBarState.hpp" + "shared/sdk/regenny/dd2/via/Motion.hpp" + "shared/sdk/regenny/dd2/via/Object.hpp" + "shared/sdk/regenny/dd2/via/Point.hpp" + "shared/sdk/regenny/dd2/via/Range.hpp" + "shared/sdk/regenny/dd2/via/RenderType.hpp" + "shared/sdk/regenny/dd2/via/Scene.hpp" + "shared/sdk/regenny/dd2/via/SceneArray.hpp" + "shared/sdk/regenny/dd2/via/SceneManager.hpp" + "shared/sdk/regenny/dd2/via/SceneView.hpp" + "shared/sdk/regenny/dd2/via/Size.hpp" + "shared/sdk/regenny/dd2/via/Sphere.hpp" + "shared/sdk/regenny/dd2/via/Transform.hpp" + "shared/sdk/regenny/dd2/via/UInt8Array.hpp" + "shared/sdk/regenny/dd2/via/UIntArray.hpp" + "shared/sdk/regenny/dd2/via/UIntArrayArray.hpp" + "shared/sdk/regenny/dd2/via/Window.hpp" + "shared/sdk/regenny/dd2/via/array.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTree.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeCoreHandleArray.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeData.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Condition.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Core.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/CoreHandle.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeArray.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeArray2.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeStatus.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Selector.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/SelectorFSM.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeNode.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeNodeData.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeObject.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeObjectData.hpp" + "shared/sdk/regenny/dd2/via/clr/ManagedObject.hpp" + "shared/sdk/regenny/dd2/via/fixed_array_jobs.hpp" + "shared/sdk/regenny/dd2/via/gui/Control.hpp" + "shared/sdk/regenny/dd2/via/gui/GUI.hpp" + "shared/sdk/regenny/dd2/via/gui/GUIManager.hpp" + "shared/sdk/regenny/dd2/via/gui/GUIMeshRenderer.hpp" + "shared/sdk/regenny/dd2/via/gui/PlayObject.hpp" + "shared/sdk/regenny/dd2/via/gui/PrimitiveContext.hpp" + "shared/sdk/regenny/dd2/via/gui/TransformObject.hpp" + "shared/sdk/regenny/dd2/via/gui/View.hpp" + "shared/sdk/regenny/dd2/via/gui/Window.hpp" + "shared/sdk/regenny/dd2/via/mat4.hpp" + "shared/sdk/regenny/dd2/via/motion/AxisDirection.hpp" + "shared/sdk/regenny/dd2/via/motion/Chain.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionArray.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionData.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionTop.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisions.hpp" + "shared/sdk/regenny/dd2/via/motion/Data.hpp" + "shared/sdk/regenny/dd2/via/motion/InterpolationMode.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Internal.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Layer.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2RawData.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Resource.hpp" + "shared/sdk/regenny/dd2/via/motion/SecondaryAnimation.hpp" + "shared/sdk/regenny/dd2/via/motion/TransitionData.hpp" + "shared/sdk/regenny/dd2/via/motion/TransitionMap.hpp" + "shared/sdk/regenny/dd2/via/typeinfo/TypeInfo.hpp" + "shared/sdk/regenny/dd2/via/vec3.hpp" + "shared/sdk/regenny/dd2/via/vec4.hpp" "shared/sdk/regenny/mhrise/via/Capsule.hpp" "shared/sdk/regenny/mhrise/via/OBB.hpp" "shared/sdk/regenny/mhrise/via/Sphere.hpp" @@ -5159,6 +5679,7 @@ if(REF_BUILD_RE7_SDK OR REF_BUILD_FRAMEWORK) # build-re7-sdk "shared/sdk/REVariableDescriptor.hpp" "shared/sdk/ReClass.hpp" "shared/sdk/ReClass_Internal.hpp" + "shared/sdk/ReClass_Internal_DD2.hpp" "shared/sdk/ReClass_Internal_DMC5.hpp" "shared/sdk/ReClass_Internal_RE2_TDB70.hpp" "shared/sdk/ReClass_Internal_RE3.hpp" @@ -5177,6 +5698,109 @@ if(REF_BUILD_RE7_SDK OR REF_BUILD_FRAMEWORK) # build-re7-sdk "shared/sdk/TDBVer.hpp" "shared/sdk/helpers/NativeObject.hpp" "shared/sdk/intrusive_ptr.hpp" + "shared/sdk/regenny/dd2/BullShit.hpp" + "shared/sdk/regenny/dd2/DeserializeSequence.hpp" + "shared/sdk/regenny/dd2/ManagedVtable.hpp" + "shared/sdk/regenny/dd2/RTInternal.hpp" + "shared/sdk/regenny/dd2/RayTrace.hpp" + "shared/sdk/regenny/dd2/RenderEntity.hpp" + "shared/sdk/regenny/dd2/System/String.hpp" + "shared/sdk/regenny/dd2/TypeDefinition.hpp" + "shared/sdk/regenny/dd2/game/IkArmFit.hpp" + "shared/sdk/regenny/dd2/game/InputSystem.hpp" + "shared/sdk/regenny/dd2/tdb71/AttributeDef.hpp" + "shared/sdk/regenny/dd2/tdb71/Field.hpp" + "shared/sdk/regenny/dd2/tdb71/FieldImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/MethodDefinition.hpp" + "shared/sdk/regenny/dd2/tdb71/MethodImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/ParamList.hpp" + "shared/sdk/regenny/dd2/tdb71/ParameterDef.hpp" + "shared/sdk/regenny/dd2/tdb71/Property.hpp" + "shared/sdk/regenny/dd2/tdb71/PropertyImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/TDB.hpp" + "shared/sdk/regenny/dd2/tdb71/TypeDefinition.hpp" + "shared/sdk/regenny/dd2/tdb71/TypeImpl.hpp" + "shared/sdk/regenny/dd2/via/BasisPlane.hpp" + "shared/sdk/regenny/dd2/via/CameraType.hpp" + "shared/sdk/regenny/dd2/via/Capsule.hpp" + "shared/sdk/regenny/dd2/via/Color.hpp" + "shared/sdk/regenny/dd2/via/Component.hpp" + "shared/sdk/regenny/dd2/via/DeviceOrientation.hpp" + "shared/sdk/regenny/dd2/via/DisplayType.hpp" + "shared/sdk/regenny/dd2/via/Folder.hpp" + "shared/sdk/regenny/dd2/via/GameObject.hpp" + "shared/sdk/regenny/dd2/via/IntArray.hpp" + "shared/sdk/regenny/dd2/via/JobSet.hpp" + "shared/sdk/regenny/dd2/via/Joint.hpp" + "shared/sdk/regenny/dd2/via/JointArray.hpp" + "shared/sdk/regenny/dd2/via/JointData.hpp" + "shared/sdk/regenny/dd2/via/JointDesc.hpp" + "shared/sdk/regenny/dd2/via/JointMap.hpp" + "shared/sdk/regenny/dd2/via/ManagedObjectArray.hpp" + "shared/sdk/regenny/dd2/via/MobileBarState.hpp" + "shared/sdk/regenny/dd2/via/Motion.hpp" + "shared/sdk/regenny/dd2/via/Object.hpp" + "shared/sdk/regenny/dd2/via/Point.hpp" + "shared/sdk/regenny/dd2/via/Range.hpp" + "shared/sdk/regenny/dd2/via/RenderType.hpp" + "shared/sdk/regenny/dd2/via/Scene.hpp" + "shared/sdk/regenny/dd2/via/SceneArray.hpp" + "shared/sdk/regenny/dd2/via/SceneManager.hpp" + "shared/sdk/regenny/dd2/via/SceneView.hpp" + "shared/sdk/regenny/dd2/via/Size.hpp" + "shared/sdk/regenny/dd2/via/Sphere.hpp" + "shared/sdk/regenny/dd2/via/Transform.hpp" + "shared/sdk/regenny/dd2/via/UInt8Array.hpp" + "shared/sdk/regenny/dd2/via/UIntArray.hpp" + "shared/sdk/regenny/dd2/via/UIntArrayArray.hpp" + "shared/sdk/regenny/dd2/via/Window.hpp" + "shared/sdk/regenny/dd2/via/array.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTree.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeCoreHandleArray.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeData.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Condition.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Core.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/CoreHandle.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeArray.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeArray2.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeStatus.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Selector.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/SelectorFSM.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeNode.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeNodeData.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeObject.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeObjectData.hpp" + "shared/sdk/regenny/dd2/via/clr/ManagedObject.hpp" + "shared/sdk/regenny/dd2/via/fixed_array_jobs.hpp" + "shared/sdk/regenny/dd2/via/gui/Control.hpp" + "shared/sdk/regenny/dd2/via/gui/GUI.hpp" + "shared/sdk/regenny/dd2/via/gui/GUIManager.hpp" + "shared/sdk/regenny/dd2/via/gui/GUIMeshRenderer.hpp" + "shared/sdk/regenny/dd2/via/gui/PlayObject.hpp" + "shared/sdk/regenny/dd2/via/gui/PrimitiveContext.hpp" + "shared/sdk/regenny/dd2/via/gui/TransformObject.hpp" + "shared/sdk/regenny/dd2/via/gui/View.hpp" + "shared/sdk/regenny/dd2/via/gui/Window.hpp" + "shared/sdk/regenny/dd2/via/mat4.hpp" + "shared/sdk/regenny/dd2/via/motion/AxisDirection.hpp" + "shared/sdk/regenny/dd2/via/motion/Chain.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionArray.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionData.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionTop.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisions.hpp" + "shared/sdk/regenny/dd2/via/motion/Data.hpp" + "shared/sdk/regenny/dd2/via/motion/InterpolationMode.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Internal.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Layer.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2RawData.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Resource.hpp" + "shared/sdk/regenny/dd2/via/motion/SecondaryAnimation.hpp" + "shared/sdk/regenny/dd2/via/motion/TransitionData.hpp" + "shared/sdk/regenny/dd2/via/motion/TransitionMap.hpp" + "shared/sdk/regenny/dd2/via/typeinfo/TypeInfo.hpp" + "shared/sdk/regenny/dd2/via/vec3.hpp" + "shared/sdk/regenny/dd2/via/vec4.hpp" "shared/sdk/regenny/mhrise/via/Capsule.hpp" "shared/sdk/regenny/mhrise/via/OBB.hpp" "shared/sdk/regenny/mhrise/via/Sphere.hpp" @@ -5877,6 +6501,7 @@ if(REF_BUILD_RE7_TDB49SDK OR REF_BUILD_FRAMEWORK) # build-re7tdb49-sdk "shared/sdk/REVariableDescriptor.hpp" "shared/sdk/ReClass.hpp" "shared/sdk/ReClass_Internal.hpp" + "shared/sdk/ReClass_Internal_DD2.hpp" "shared/sdk/ReClass_Internal_DMC5.hpp" "shared/sdk/ReClass_Internal_RE2_TDB70.hpp" "shared/sdk/ReClass_Internal_RE3.hpp" @@ -5895,6 +6520,109 @@ if(REF_BUILD_RE7_TDB49SDK OR REF_BUILD_FRAMEWORK) # build-re7tdb49-sdk "shared/sdk/TDBVer.hpp" "shared/sdk/helpers/NativeObject.hpp" "shared/sdk/intrusive_ptr.hpp" + "shared/sdk/regenny/dd2/BullShit.hpp" + "shared/sdk/regenny/dd2/DeserializeSequence.hpp" + "shared/sdk/regenny/dd2/ManagedVtable.hpp" + "shared/sdk/regenny/dd2/RTInternal.hpp" + "shared/sdk/regenny/dd2/RayTrace.hpp" + "shared/sdk/regenny/dd2/RenderEntity.hpp" + "shared/sdk/regenny/dd2/System/String.hpp" + "shared/sdk/regenny/dd2/TypeDefinition.hpp" + "shared/sdk/regenny/dd2/game/IkArmFit.hpp" + "shared/sdk/regenny/dd2/game/InputSystem.hpp" + "shared/sdk/regenny/dd2/tdb71/AttributeDef.hpp" + "shared/sdk/regenny/dd2/tdb71/Field.hpp" + "shared/sdk/regenny/dd2/tdb71/FieldImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/MethodDefinition.hpp" + "shared/sdk/regenny/dd2/tdb71/MethodImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/ParamList.hpp" + "shared/sdk/regenny/dd2/tdb71/ParameterDef.hpp" + "shared/sdk/regenny/dd2/tdb71/Property.hpp" + "shared/sdk/regenny/dd2/tdb71/PropertyImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/TDB.hpp" + "shared/sdk/regenny/dd2/tdb71/TypeDefinition.hpp" + "shared/sdk/regenny/dd2/tdb71/TypeImpl.hpp" + "shared/sdk/regenny/dd2/via/BasisPlane.hpp" + "shared/sdk/regenny/dd2/via/CameraType.hpp" + "shared/sdk/regenny/dd2/via/Capsule.hpp" + "shared/sdk/regenny/dd2/via/Color.hpp" + "shared/sdk/regenny/dd2/via/Component.hpp" + "shared/sdk/regenny/dd2/via/DeviceOrientation.hpp" + "shared/sdk/regenny/dd2/via/DisplayType.hpp" + "shared/sdk/regenny/dd2/via/Folder.hpp" + "shared/sdk/regenny/dd2/via/GameObject.hpp" + "shared/sdk/regenny/dd2/via/IntArray.hpp" + "shared/sdk/regenny/dd2/via/JobSet.hpp" + "shared/sdk/regenny/dd2/via/Joint.hpp" + "shared/sdk/regenny/dd2/via/JointArray.hpp" + "shared/sdk/regenny/dd2/via/JointData.hpp" + "shared/sdk/regenny/dd2/via/JointDesc.hpp" + "shared/sdk/regenny/dd2/via/JointMap.hpp" + "shared/sdk/regenny/dd2/via/ManagedObjectArray.hpp" + "shared/sdk/regenny/dd2/via/MobileBarState.hpp" + "shared/sdk/regenny/dd2/via/Motion.hpp" + "shared/sdk/regenny/dd2/via/Object.hpp" + "shared/sdk/regenny/dd2/via/Point.hpp" + "shared/sdk/regenny/dd2/via/Range.hpp" + "shared/sdk/regenny/dd2/via/RenderType.hpp" + "shared/sdk/regenny/dd2/via/Scene.hpp" + "shared/sdk/regenny/dd2/via/SceneArray.hpp" + "shared/sdk/regenny/dd2/via/SceneManager.hpp" + "shared/sdk/regenny/dd2/via/SceneView.hpp" + "shared/sdk/regenny/dd2/via/Size.hpp" + "shared/sdk/regenny/dd2/via/Sphere.hpp" + "shared/sdk/regenny/dd2/via/Transform.hpp" + "shared/sdk/regenny/dd2/via/UInt8Array.hpp" + "shared/sdk/regenny/dd2/via/UIntArray.hpp" + "shared/sdk/regenny/dd2/via/UIntArrayArray.hpp" + "shared/sdk/regenny/dd2/via/Window.hpp" + "shared/sdk/regenny/dd2/via/array.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTree.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeCoreHandleArray.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeData.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Condition.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Core.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/CoreHandle.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeArray.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeArray2.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeStatus.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Selector.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/SelectorFSM.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeNode.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeNodeData.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeObject.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeObjectData.hpp" + "shared/sdk/regenny/dd2/via/clr/ManagedObject.hpp" + "shared/sdk/regenny/dd2/via/fixed_array_jobs.hpp" + "shared/sdk/regenny/dd2/via/gui/Control.hpp" + "shared/sdk/regenny/dd2/via/gui/GUI.hpp" + "shared/sdk/regenny/dd2/via/gui/GUIManager.hpp" + "shared/sdk/regenny/dd2/via/gui/GUIMeshRenderer.hpp" + "shared/sdk/regenny/dd2/via/gui/PlayObject.hpp" + "shared/sdk/regenny/dd2/via/gui/PrimitiveContext.hpp" + "shared/sdk/regenny/dd2/via/gui/TransformObject.hpp" + "shared/sdk/regenny/dd2/via/gui/View.hpp" + "shared/sdk/regenny/dd2/via/gui/Window.hpp" + "shared/sdk/regenny/dd2/via/mat4.hpp" + "shared/sdk/regenny/dd2/via/motion/AxisDirection.hpp" + "shared/sdk/regenny/dd2/via/motion/Chain.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionArray.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionData.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionTop.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisions.hpp" + "shared/sdk/regenny/dd2/via/motion/Data.hpp" + "shared/sdk/regenny/dd2/via/motion/InterpolationMode.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Internal.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Layer.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2RawData.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Resource.hpp" + "shared/sdk/regenny/dd2/via/motion/SecondaryAnimation.hpp" + "shared/sdk/regenny/dd2/via/motion/TransitionData.hpp" + "shared/sdk/regenny/dd2/via/motion/TransitionMap.hpp" + "shared/sdk/regenny/dd2/via/typeinfo/TypeInfo.hpp" + "shared/sdk/regenny/dd2/via/vec3.hpp" + "shared/sdk/regenny/dd2/via/vec4.hpp" "shared/sdk/regenny/mhrise/via/Capsule.hpp" "shared/sdk/regenny/mhrise/via/OBB.hpp" "shared/sdk/regenny/mhrise/via/Sphere.hpp" @@ -6990,6 +7718,7 @@ if(REF_BUILD_RE8_SDK OR REF_BUILD_FRAMEWORK) # build-re8-sdk "shared/sdk/REVariableDescriptor.hpp" "shared/sdk/ReClass.hpp" "shared/sdk/ReClass_Internal.hpp" + "shared/sdk/ReClass_Internal_DD2.hpp" "shared/sdk/ReClass_Internal_DMC5.hpp" "shared/sdk/ReClass_Internal_RE2_TDB70.hpp" "shared/sdk/ReClass_Internal_RE3.hpp" @@ -7008,6 +7737,109 @@ if(REF_BUILD_RE8_SDK OR REF_BUILD_FRAMEWORK) # build-re8-sdk "shared/sdk/TDBVer.hpp" "shared/sdk/helpers/NativeObject.hpp" "shared/sdk/intrusive_ptr.hpp" + "shared/sdk/regenny/dd2/BullShit.hpp" + "shared/sdk/regenny/dd2/DeserializeSequence.hpp" + "shared/sdk/regenny/dd2/ManagedVtable.hpp" + "shared/sdk/regenny/dd2/RTInternal.hpp" + "shared/sdk/regenny/dd2/RayTrace.hpp" + "shared/sdk/regenny/dd2/RenderEntity.hpp" + "shared/sdk/regenny/dd2/System/String.hpp" + "shared/sdk/regenny/dd2/TypeDefinition.hpp" + "shared/sdk/regenny/dd2/game/IkArmFit.hpp" + "shared/sdk/regenny/dd2/game/InputSystem.hpp" + "shared/sdk/regenny/dd2/tdb71/AttributeDef.hpp" + "shared/sdk/regenny/dd2/tdb71/Field.hpp" + "shared/sdk/regenny/dd2/tdb71/FieldImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/MethodDefinition.hpp" + "shared/sdk/regenny/dd2/tdb71/MethodImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/ParamList.hpp" + "shared/sdk/regenny/dd2/tdb71/ParameterDef.hpp" + "shared/sdk/regenny/dd2/tdb71/Property.hpp" + "shared/sdk/regenny/dd2/tdb71/PropertyImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/TDB.hpp" + "shared/sdk/regenny/dd2/tdb71/TypeDefinition.hpp" + "shared/sdk/regenny/dd2/tdb71/TypeImpl.hpp" + "shared/sdk/regenny/dd2/via/BasisPlane.hpp" + "shared/sdk/regenny/dd2/via/CameraType.hpp" + "shared/sdk/regenny/dd2/via/Capsule.hpp" + "shared/sdk/regenny/dd2/via/Color.hpp" + "shared/sdk/regenny/dd2/via/Component.hpp" + "shared/sdk/regenny/dd2/via/DeviceOrientation.hpp" + "shared/sdk/regenny/dd2/via/DisplayType.hpp" + "shared/sdk/regenny/dd2/via/Folder.hpp" + "shared/sdk/regenny/dd2/via/GameObject.hpp" + "shared/sdk/regenny/dd2/via/IntArray.hpp" + "shared/sdk/regenny/dd2/via/JobSet.hpp" + "shared/sdk/regenny/dd2/via/Joint.hpp" + "shared/sdk/regenny/dd2/via/JointArray.hpp" + "shared/sdk/regenny/dd2/via/JointData.hpp" + "shared/sdk/regenny/dd2/via/JointDesc.hpp" + "shared/sdk/regenny/dd2/via/JointMap.hpp" + "shared/sdk/regenny/dd2/via/ManagedObjectArray.hpp" + "shared/sdk/regenny/dd2/via/MobileBarState.hpp" + "shared/sdk/regenny/dd2/via/Motion.hpp" + "shared/sdk/regenny/dd2/via/Object.hpp" + "shared/sdk/regenny/dd2/via/Point.hpp" + "shared/sdk/regenny/dd2/via/Range.hpp" + "shared/sdk/regenny/dd2/via/RenderType.hpp" + "shared/sdk/regenny/dd2/via/Scene.hpp" + "shared/sdk/regenny/dd2/via/SceneArray.hpp" + "shared/sdk/regenny/dd2/via/SceneManager.hpp" + "shared/sdk/regenny/dd2/via/SceneView.hpp" + "shared/sdk/regenny/dd2/via/Size.hpp" + "shared/sdk/regenny/dd2/via/Sphere.hpp" + "shared/sdk/regenny/dd2/via/Transform.hpp" + "shared/sdk/regenny/dd2/via/UInt8Array.hpp" + "shared/sdk/regenny/dd2/via/UIntArray.hpp" + "shared/sdk/regenny/dd2/via/UIntArrayArray.hpp" + "shared/sdk/regenny/dd2/via/Window.hpp" + "shared/sdk/regenny/dd2/via/array.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTree.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeCoreHandleArray.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeData.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Condition.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Core.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/CoreHandle.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeArray.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeArray2.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeStatus.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Selector.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/SelectorFSM.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeNode.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeNodeData.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeObject.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeObjectData.hpp" + "shared/sdk/regenny/dd2/via/clr/ManagedObject.hpp" + "shared/sdk/regenny/dd2/via/fixed_array_jobs.hpp" + "shared/sdk/regenny/dd2/via/gui/Control.hpp" + "shared/sdk/regenny/dd2/via/gui/GUI.hpp" + "shared/sdk/regenny/dd2/via/gui/GUIManager.hpp" + "shared/sdk/regenny/dd2/via/gui/GUIMeshRenderer.hpp" + "shared/sdk/regenny/dd2/via/gui/PlayObject.hpp" + "shared/sdk/regenny/dd2/via/gui/PrimitiveContext.hpp" + "shared/sdk/regenny/dd2/via/gui/TransformObject.hpp" + "shared/sdk/regenny/dd2/via/gui/View.hpp" + "shared/sdk/regenny/dd2/via/gui/Window.hpp" + "shared/sdk/regenny/dd2/via/mat4.hpp" + "shared/sdk/regenny/dd2/via/motion/AxisDirection.hpp" + "shared/sdk/regenny/dd2/via/motion/Chain.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionArray.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionData.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionTop.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisions.hpp" + "shared/sdk/regenny/dd2/via/motion/Data.hpp" + "shared/sdk/regenny/dd2/via/motion/InterpolationMode.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Internal.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Layer.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2RawData.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Resource.hpp" + "shared/sdk/regenny/dd2/via/motion/SecondaryAnimation.hpp" + "shared/sdk/regenny/dd2/via/motion/TransitionData.hpp" + "shared/sdk/regenny/dd2/via/motion/TransitionMap.hpp" + "shared/sdk/regenny/dd2/via/typeinfo/TypeInfo.hpp" + "shared/sdk/regenny/dd2/via/vec3.hpp" + "shared/sdk/regenny/dd2/via/vec4.hpp" "shared/sdk/regenny/mhrise/via/Capsule.hpp" "shared/sdk/regenny/mhrise/via/OBB.hpp" "shared/sdk/regenny/mhrise/via/Sphere.hpp" @@ -7907,6 +8739,7 @@ if(REF_BUILD_DMC5_SDK OR REF_BUILD_FRAMEWORK) # build-dmc5-sdk "shared/sdk/REVariableDescriptor.hpp" "shared/sdk/ReClass.hpp" "shared/sdk/ReClass_Internal.hpp" + "shared/sdk/ReClass_Internal_DD2.hpp" "shared/sdk/ReClass_Internal_DMC5.hpp" "shared/sdk/ReClass_Internal_RE2_TDB70.hpp" "shared/sdk/ReClass_Internal_RE3.hpp" @@ -7925,6 +8758,109 @@ if(REF_BUILD_DMC5_SDK OR REF_BUILD_FRAMEWORK) # build-dmc5-sdk "shared/sdk/TDBVer.hpp" "shared/sdk/helpers/NativeObject.hpp" "shared/sdk/intrusive_ptr.hpp" + "shared/sdk/regenny/dd2/BullShit.hpp" + "shared/sdk/regenny/dd2/DeserializeSequence.hpp" + "shared/sdk/regenny/dd2/ManagedVtable.hpp" + "shared/sdk/regenny/dd2/RTInternal.hpp" + "shared/sdk/regenny/dd2/RayTrace.hpp" + "shared/sdk/regenny/dd2/RenderEntity.hpp" + "shared/sdk/regenny/dd2/System/String.hpp" + "shared/sdk/regenny/dd2/TypeDefinition.hpp" + "shared/sdk/regenny/dd2/game/IkArmFit.hpp" + "shared/sdk/regenny/dd2/game/InputSystem.hpp" + "shared/sdk/regenny/dd2/tdb71/AttributeDef.hpp" + "shared/sdk/regenny/dd2/tdb71/Field.hpp" + "shared/sdk/regenny/dd2/tdb71/FieldImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/MethodDefinition.hpp" + "shared/sdk/regenny/dd2/tdb71/MethodImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/ParamList.hpp" + "shared/sdk/regenny/dd2/tdb71/ParameterDef.hpp" + "shared/sdk/regenny/dd2/tdb71/Property.hpp" + "shared/sdk/regenny/dd2/tdb71/PropertyImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/TDB.hpp" + "shared/sdk/regenny/dd2/tdb71/TypeDefinition.hpp" + "shared/sdk/regenny/dd2/tdb71/TypeImpl.hpp" + "shared/sdk/regenny/dd2/via/BasisPlane.hpp" + "shared/sdk/regenny/dd2/via/CameraType.hpp" + "shared/sdk/regenny/dd2/via/Capsule.hpp" + "shared/sdk/regenny/dd2/via/Color.hpp" + "shared/sdk/regenny/dd2/via/Component.hpp" + "shared/sdk/regenny/dd2/via/DeviceOrientation.hpp" + "shared/sdk/regenny/dd2/via/DisplayType.hpp" + "shared/sdk/regenny/dd2/via/Folder.hpp" + "shared/sdk/regenny/dd2/via/GameObject.hpp" + "shared/sdk/regenny/dd2/via/IntArray.hpp" + "shared/sdk/regenny/dd2/via/JobSet.hpp" + "shared/sdk/regenny/dd2/via/Joint.hpp" + "shared/sdk/regenny/dd2/via/JointArray.hpp" + "shared/sdk/regenny/dd2/via/JointData.hpp" + "shared/sdk/regenny/dd2/via/JointDesc.hpp" + "shared/sdk/regenny/dd2/via/JointMap.hpp" + "shared/sdk/regenny/dd2/via/ManagedObjectArray.hpp" + "shared/sdk/regenny/dd2/via/MobileBarState.hpp" + "shared/sdk/regenny/dd2/via/Motion.hpp" + "shared/sdk/regenny/dd2/via/Object.hpp" + "shared/sdk/regenny/dd2/via/Point.hpp" + "shared/sdk/regenny/dd2/via/Range.hpp" + "shared/sdk/regenny/dd2/via/RenderType.hpp" + "shared/sdk/regenny/dd2/via/Scene.hpp" + "shared/sdk/regenny/dd2/via/SceneArray.hpp" + "shared/sdk/regenny/dd2/via/SceneManager.hpp" + "shared/sdk/regenny/dd2/via/SceneView.hpp" + "shared/sdk/regenny/dd2/via/Size.hpp" + "shared/sdk/regenny/dd2/via/Sphere.hpp" + "shared/sdk/regenny/dd2/via/Transform.hpp" + "shared/sdk/regenny/dd2/via/UInt8Array.hpp" + "shared/sdk/regenny/dd2/via/UIntArray.hpp" + "shared/sdk/regenny/dd2/via/UIntArrayArray.hpp" + "shared/sdk/regenny/dd2/via/Window.hpp" + "shared/sdk/regenny/dd2/via/array.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTree.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeCoreHandleArray.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeData.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Condition.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Core.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/CoreHandle.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeArray.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeArray2.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeStatus.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Selector.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/SelectorFSM.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeNode.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeNodeData.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeObject.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeObjectData.hpp" + "shared/sdk/regenny/dd2/via/clr/ManagedObject.hpp" + "shared/sdk/regenny/dd2/via/fixed_array_jobs.hpp" + "shared/sdk/regenny/dd2/via/gui/Control.hpp" + "shared/sdk/regenny/dd2/via/gui/GUI.hpp" + "shared/sdk/regenny/dd2/via/gui/GUIManager.hpp" + "shared/sdk/regenny/dd2/via/gui/GUIMeshRenderer.hpp" + "shared/sdk/regenny/dd2/via/gui/PlayObject.hpp" + "shared/sdk/regenny/dd2/via/gui/PrimitiveContext.hpp" + "shared/sdk/regenny/dd2/via/gui/TransformObject.hpp" + "shared/sdk/regenny/dd2/via/gui/View.hpp" + "shared/sdk/regenny/dd2/via/gui/Window.hpp" + "shared/sdk/regenny/dd2/via/mat4.hpp" + "shared/sdk/regenny/dd2/via/motion/AxisDirection.hpp" + "shared/sdk/regenny/dd2/via/motion/Chain.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionArray.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionData.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionTop.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisions.hpp" + "shared/sdk/regenny/dd2/via/motion/Data.hpp" + "shared/sdk/regenny/dd2/via/motion/InterpolationMode.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Internal.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Layer.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2RawData.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Resource.hpp" + "shared/sdk/regenny/dd2/via/motion/SecondaryAnimation.hpp" + "shared/sdk/regenny/dd2/via/motion/TransitionData.hpp" + "shared/sdk/regenny/dd2/via/motion/TransitionMap.hpp" + "shared/sdk/regenny/dd2/via/typeinfo/TypeInfo.hpp" + "shared/sdk/regenny/dd2/via/vec3.hpp" + "shared/sdk/regenny/dd2/via/vec4.hpp" "shared/sdk/regenny/mhrise/via/Capsule.hpp" "shared/sdk/regenny/mhrise/via/OBB.hpp" "shared/sdk/regenny/mhrise/via/Sphere.hpp" @@ -8822,6 +9758,7 @@ if(REF_BUILD_MHRISE_SDK OR REF_BUILD_FRAMEWORK) # build-mhrise-sdk "shared/sdk/REVariableDescriptor.hpp" "shared/sdk/ReClass.hpp" "shared/sdk/ReClass_Internal.hpp" + "shared/sdk/ReClass_Internal_DD2.hpp" "shared/sdk/ReClass_Internal_DMC5.hpp" "shared/sdk/ReClass_Internal_RE2_TDB70.hpp" "shared/sdk/ReClass_Internal_RE3.hpp" @@ -8840,6 +9777,109 @@ if(REF_BUILD_MHRISE_SDK OR REF_BUILD_FRAMEWORK) # build-mhrise-sdk "shared/sdk/TDBVer.hpp" "shared/sdk/helpers/NativeObject.hpp" "shared/sdk/intrusive_ptr.hpp" + "shared/sdk/regenny/dd2/BullShit.hpp" + "shared/sdk/regenny/dd2/DeserializeSequence.hpp" + "shared/sdk/regenny/dd2/ManagedVtable.hpp" + "shared/sdk/regenny/dd2/RTInternal.hpp" + "shared/sdk/regenny/dd2/RayTrace.hpp" + "shared/sdk/regenny/dd2/RenderEntity.hpp" + "shared/sdk/regenny/dd2/System/String.hpp" + "shared/sdk/regenny/dd2/TypeDefinition.hpp" + "shared/sdk/regenny/dd2/game/IkArmFit.hpp" + "shared/sdk/regenny/dd2/game/InputSystem.hpp" + "shared/sdk/regenny/dd2/tdb71/AttributeDef.hpp" + "shared/sdk/regenny/dd2/tdb71/Field.hpp" + "shared/sdk/regenny/dd2/tdb71/FieldImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/MethodDefinition.hpp" + "shared/sdk/regenny/dd2/tdb71/MethodImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/ParamList.hpp" + "shared/sdk/regenny/dd2/tdb71/ParameterDef.hpp" + "shared/sdk/regenny/dd2/tdb71/Property.hpp" + "shared/sdk/regenny/dd2/tdb71/PropertyImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/TDB.hpp" + "shared/sdk/regenny/dd2/tdb71/TypeDefinition.hpp" + "shared/sdk/regenny/dd2/tdb71/TypeImpl.hpp" + "shared/sdk/regenny/dd2/via/BasisPlane.hpp" + "shared/sdk/regenny/dd2/via/CameraType.hpp" + "shared/sdk/regenny/dd2/via/Capsule.hpp" + "shared/sdk/regenny/dd2/via/Color.hpp" + "shared/sdk/regenny/dd2/via/Component.hpp" + "shared/sdk/regenny/dd2/via/DeviceOrientation.hpp" + "shared/sdk/regenny/dd2/via/DisplayType.hpp" + "shared/sdk/regenny/dd2/via/Folder.hpp" + "shared/sdk/regenny/dd2/via/GameObject.hpp" + "shared/sdk/regenny/dd2/via/IntArray.hpp" + "shared/sdk/regenny/dd2/via/JobSet.hpp" + "shared/sdk/regenny/dd2/via/Joint.hpp" + "shared/sdk/regenny/dd2/via/JointArray.hpp" + "shared/sdk/regenny/dd2/via/JointData.hpp" + "shared/sdk/regenny/dd2/via/JointDesc.hpp" + "shared/sdk/regenny/dd2/via/JointMap.hpp" + "shared/sdk/regenny/dd2/via/ManagedObjectArray.hpp" + "shared/sdk/regenny/dd2/via/MobileBarState.hpp" + "shared/sdk/regenny/dd2/via/Motion.hpp" + "shared/sdk/regenny/dd2/via/Object.hpp" + "shared/sdk/regenny/dd2/via/Point.hpp" + "shared/sdk/regenny/dd2/via/Range.hpp" + "shared/sdk/regenny/dd2/via/RenderType.hpp" + "shared/sdk/regenny/dd2/via/Scene.hpp" + "shared/sdk/regenny/dd2/via/SceneArray.hpp" + "shared/sdk/regenny/dd2/via/SceneManager.hpp" + "shared/sdk/regenny/dd2/via/SceneView.hpp" + "shared/sdk/regenny/dd2/via/Size.hpp" + "shared/sdk/regenny/dd2/via/Sphere.hpp" + "shared/sdk/regenny/dd2/via/Transform.hpp" + "shared/sdk/regenny/dd2/via/UInt8Array.hpp" + "shared/sdk/regenny/dd2/via/UIntArray.hpp" + "shared/sdk/regenny/dd2/via/UIntArrayArray.hpp" + "shared/sdk/regenny/dd2/via/Window.hpp" + "shared/sdk/regenny/dd2/via/array.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTree.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeCoreHandleArray.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeData.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Condition.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Core.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/CoreHandle.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeArray.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeArray2.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeStatus.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Selector.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/SelectorFSM.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeNode.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeNodeData.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeObject.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeObjectData.hpp" + "shared/sdk/regenny/dd2/via/clr/ManagedObject.hpp" + "shared/sdk/regenny/dd2/via/fixed_array_jobs.hpp" + "shared/sdk/regenny/dd2/via/gui/Control.hpp" + "shared/sdk/regenny/dd2/via/gui/GUI.hpp" + "shared/sdk/regenny/dd2/via/gui/GUIManager.hpp" + "shared/sdk/regenny/dd2/via/gui/GUIMeshRenderer.hpp" + "shared/sdk/regenny/dd2/via/gui/PlayObject.hpp" + "shared/sdk/regenny/dd2/via/gui/PrimitiveContext.hpp" + "shared/sdk/regenny/dd2/via/gui/TransformObject.hpp" + "shared/sdk/regenny/dd2/via/gui/View.hpp" + "shared/sdk/regenny/dd2/via/gui/Window.hpp" + "shared/sdk/regenny/dd2/via/mat4.hpp" + "shared/sdk/regenny/dd2/via/motion/AxisDirection.hpp" + "shared/sdk/regenny/dd2/via/motion/Chain.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionArray.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionData.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionTop.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisions.hpp" + "shared/sdk/regenny/dd2/via/motion/Data.hpp" + "shared/sdk/regenny/dd2/via/motion/InterpolationMode.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Internal.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Layer.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2RawData.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Resource.hpp" + "shared/sdk/regenny/dd2/via/motion/SecondaryAnimation.hpp" + "shared/sdk/regenny/dd2/via/motion/TransitionData.hpp" + "shared/sdk/regenny/dd2/via/motion/TransitionMap.hpp" + "shared/sdk/regenny/dd2/via/typeinfo/TypeInfo.hpp" + "shared/sdk/regenny/dd2/via/vec3.hpp" + "shared/sdk/regenny/dd2/via/vec4.hpp" "shared/sdk/regenny/mhrise/via/Capsule.hpp" "shared/sdk/regenny/mhrise/via/OBB.hpp" "shared/sdk/regenny/mhrise/via/Sphere.hpp" @@ -9739,6 +10779,7 @@ if(REF_BUILD_SF6_SDK OR REF_BUILD_FRAMEWORK) # build-sf6-sdk "shared/sdk/REVariableDescriptor.hpp" "shared/sdk/ReClass.hpp" "shared/sdk/ReClass_Internal.hpp" + "shared/sdk/ReClass_Internal_DD2.hpp" "shared/sdk/ReClass_Internal_DMC5.hpp" "shared/sdk/ReClass_Internal_RE2_TDB70.hpp" "shared/sdk/ReClass_Internal_RE3.hpp" @@ -9757,6 +10798,109 @@ if(REF_BUILD_SF6_SDK OR REF_BUILD_FRAMEWORK) # build-sf6-sdk "shared/sdk/TDBVer.hpp" "shared/sdk/helpers/NativeObject.hpp" "shared/sdk/intrusive_ptr.hpp" + "shared/sdk/regenny/dd2/BullShit.hpp" + "shared/sdk/regenny/dd2/DeserializeSequence.hpp" + "shared/sdk/regenny/dd2/ManagedVtable.hpp" + "shared/sdk/regenny/dd2/RTInternal.hpp" + "shared/sdk/regenny/dd2/RayTrace.hpp" + "shared/sdk/regenny/dd2/RenderEntity.hpp" + "shared/sdk/regenny/dd2/System/String.hpp" + "shared/sdk/regenny/dd2/TypeDefinition.hpp" + "shared/sdk/regenny/dd2/game/IkArmFit.hpp" + "shared/sdk/regenny/dd2/game/InputSystem.hpp" + "shared/sdk/regenny/dd2/tdb71/AttributeDef.hpp" + "shared/sdk/regenny/dd2/tdb71/Field.hpp" + "shared/sdk/regenny/dd2/tdb71/FieldImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/MethodDefinition.hpp" + "shared/sdk/regenny/dd2/tdb71/MethodImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/ParamList.hpp" + "shared/sdk/regenny/dd2/tdb71/ParameterDef.hpp" + "shared/sdk/regenny/dd2/tdb71/Property.hpp" + "shared/sdk/regenny/dd2/tdb71/PropertyImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/TDB.hpp" + "shared/sdk/regenny/dd2/tdb71/TypeDefinition.hpp" + "shared/sdk/regenny/dd2/tdb71/TypeImpl.hpp" + "shared/sdk/regenny/dd2/via/BasisPlane.hpp" + "shared/sdk/regenny/dd2/via/CameraType.hpp" + "shared/sdk/regenny/dd2/via/Capsule.hpp" + "shared/sdk/regenny/dd2/via/Color.hpp" + "shared/sdk/regenny/dd2/via/Component.hpp" + "shared/sdk/regenny/dd2/via/DeviceOrientation.hpp" + "shared/sdk/regenny/dd2/via/DisplayType.hpp" + "shared/sdk/regenny/dd2/via/Folder.hpp" + "shared/sdk/regenny/dd2/via/GameObject.hpp" + "shared/sdk/regenny/dd2/via/IntArray.hpp" + "shared/sdk/regenny/dd2/via/JobSet.hpp" + "shared/sdk/regenny/dd2/via/Joint.hpp" + "shared/sdk/regenny/dd2/via/JointArray.hpp" + "shared/sdk/regenny/dd2/via/JointData.hpp" + "shared/sdk/regenny/dd2/via/JointDesc.hpp" + "shared/sdk/regenny/dd2/via/JointMap.hpp" + "shared/sdk/regenny/dd2/via/ManagedObjectArray.hpp" + "shared/sdk/regenny/dd2/via/MobileBarState.hpp" + "shared/sdk/regenny/dd2/via/Motion.hpp" + "shared/sdk/regenny/dd2/via/Object.hpp" + "shared/sdk/regenny/dd2/via/Point.hpp" + "shared/sdk/regenny/dd2/via/Range.hpp" + "shared/sdk/regenny/dd2/via/RenderType.hpp" + "shared/sdk/regenny/dd2/via/Scene.hpp" + "shared/sdk/regenny/dd2/via/SceneArray.hpp" + "shared/sdk/regenny/dd2/via/SceneManager.hpp" + "shared/sdk/regenny/dd2/via/SceneView.hpp" + "shared/sdk/regenny/dd2/via/Size.hpp" + "shared/sdk/regenny/dd2/via/Sphere.hpp" + "shared/sdk/regenny/dd2/via/Transform.hpp" + "shared/sdk/regenny/dd2/via/UInt8Array.hpp" + "shared/sdk/regenny/dd2/via/UIntArray.hpp" + "shared/sdk/regenny/dd2/via/UIntArrayArray.hpp" + "shared/sdk/regenny/dd2/via/Window.hpp" + "shared/sdk/regenny/dd2/via/array.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTree.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeCoreHandleArray.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeData.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Condition.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Core.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/CoreHandle.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeArray.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeArray2.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeStatus.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Selector.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/SelectorFSM.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeNode.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeNodeData.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeObject.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeObjectData.hpp" + "shared/sdk/regenny/dd2/via/clr/ManagedObject.hpp" + "shared/sdk/regenny/dd2/via/fixed_array_jobs.hpp" + "shared/sdk/regenny/dd2/via/gui/Control.hpp" + "shared/sdk/regenny/dd2/via/gui/GUI.hpp" + "shared/sdk/regenny/dd2/via/gui/GUIManager.hpp" + "shared/sdk/regenny/dd2/via/gui/GUIMeshRenderer.hpp" + "shared/sdk/regenny/dd2/via/gui/PlayObject.hpp" + "shared/sdk/regenny/dd2/via/gui/PrimitiveContext.hpp" + "shared/sdk/regenny/dd2/via/gui/TransformObject.hpp" + "shared/sdk/regenny/dd2/via/gui/View.hpp" + "shared/sdk/regenny/dd2/via/gui/Window.hpp" + "shared/sdk/regenny/dd2/via/mat4.hpp" + "shared/sdk/regenny/dd2/via/motion/AxisDirection.hpp" + "shared/sdk/regenny/dd2/via/motion/Chain.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionArray.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionData.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionTop.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisions.hpp" + "shared/sdk/regenny/dd2/via/motion/Data.hpp" + "shared/sdk/regenny/dd2/via/motion/InterpolationMode.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Internal.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Layer.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2RawData.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Resource.hpp" + "shared/sdk/regenny/dd2/via/motion/SecondaryAnimation.hpp" + "shared/sdk/regenny/dd2/via/motion/TransitionData.hpp" + "shared/sdk/regenny/dd2/via/motion/TransitionMap.hpp" + "shared/sdk/regenny/dd2/via/typeinfo/TypeInfo.hpp" + "shared/sdk/regenny/dd2/via/vec3.hpp" + "shared/sdk/regenny/dd2/via/vec4.hpp" "shared/sdk/regenny/mhrise/via/Capsule.hpp" "shared/sdk/regenny/mhrise/via/OBB.hpp" "shared/sdk/regenny/mhrise/via/Sphere.hpp" @@ -10656,6 +11800,7 @@ if(REF_BUILD_DD2_SDK OR REF_BUILD_FRAMEWORK) # build-dd2-sdk "shared/sdk/REVariableDescriptor.hpp" "shared/sdk/ReClass.hpp" "shared/sdk/ReClass_Internal.hpp" + "shared/sdk/ReClass_Internal_DD2.hpp" "shared/sdk/ReClass_Internal_DMC5.hpp" "shared/sdk/ReClass_Internal_RE2_TDB70.hpp" "shared/sdk/ReClass_Internal_RE3.hpp" @@ -10674,6 +11819,109 @@ if(REF_BUILD_DD2_SDK OR REF_BUILD_FRAMEWORK) # build-dd2-sdk "shared/sdk/TDBVer.hpp" "shared/sdk/helpers/NativeObject.hpp" "shared/sdk/intrusive_ptr.hpp" + "shared/sdk/regenny/dd2/BullShit.hpp" + "shared/sdk/regenny/dd2/DeserializeSequence.hpp" + "shared/sdk/regenny/dd2/ManagedVtable.hpp" + "shared/sdk/regenny/dd2/RTInternal.hpp" + "shared/sdk/regenny/dd2/RayTrace.hpp" + "shared/sdk/regenny/dd2/RenderEntity.hpp" + "shared/sdk/regenny/dd2/System/String.hpp" + "shared/sdk/regenny/dd2/TypeDefinition.hpp" + "shared/sdk/regenny/dd2/game/IkArmFit.hpp" + "shared/sdk/regenny/dd2/game/InputSystem.hpp" + "shared/sdk/regenny/dd2/tdb71/AttributeDef.hpp" + "shared/sdk/regenny/dd2/tdb71/Field.hpp" + "shared/sdk/regenny/dd2/tdb71/FieldImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/MethodDefinition.hpp" + "shared/sdk/regenny/dd2/tdb71/MethodImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/ParamList.hpp" + "shared/sdk/regenny/dd2/tdb71/ParameterDef.hpp" + "shared/sdk/regenny/dd2/tdb71/Property.hpp" + "shared/sdk/regenny/dd2/tdb71/PropertyImpl.hpp" + "shared/sdk/regenny/dd2/tdb71/TDB.hpp" + "shared/sdk/regenny/dd2/tdb71/TypeDefinition.hpp" + "shared/sdk/regenny/dd2/tdb71/TypeImpl.hpp" + "shared/sdk/regenny/dd2/via/BasisPlane.hpp" + "shared/sdk/regenny/dd2/via/CameraType.hpp" + "shared/sdk/regenny/dd2/via/Capsule.hpp" + "shared/sdk/regenny/dd2/via/Color.hpp" + "shared/sdk/regenny/dd2/via/Component.hpp" + "shared/sdk/regenny/dd2/via/DeviceOrientation.hpp" + "shared/sdk/regenny/dd2/via/DisplayType.hpp" + "shared/sdk/regenny/dd2/via/Folder.hpp" + "shared/sdk/regenny/dd2/via/GameObject.hpp" + "shared/sdk/regenny/dd2/via/IntArray.hpp" + "shared/sdk/regenny/dd2/via/JobSet.hpp" + "shared/sdk/regenny/dd2/via/Joint.hpp" + "shared/sdk/regenny/dd2/via/JointArray.hpp" + "shared/sdk/regenny/dd2/via/JointData.hpp" + "shared/sdk/regenny/dd2/via/JointDesc.hpp" + "shared/sdk/regenny/dd2/via/JointMap.hpp" + "shared/sdk/regenny/dd2/via/ManagedObjectArray.hpp" + "shared/sdk/regenny/dd2/via/MobileBarState.hpp" + "shared/sdk/regenny/dd2/via/Motion.hpp" + "shared/sdk/regenny/dd2/via/Object.hpp" + "shared/sdk/regenny/dd2/via/Point.hpp" + "shared/sdk/regenny/dd2/via/Range.hpp" + "shared/sdk/regenny/dd2/via/RenderType.hpp" + "shared/sdk/regenny/dd2/via/Scene.hpp" + "shared/sdk/regenny/dd2/via/SceneArray.hpp" + "shared/sdk/regenny/dd2/via/SceneManager.hpp" + "shared/sdk/regenny/dd2/via/SceneView.hpp" + "shared/sdk/regenny/dd2/via/Size.hpp" + "shared/sdk/regenny/dd2/via/Sphere.hpp" + "shared/sdk/regenny/dd2/via/Transform.hpp" + "shared/sdk/regenny/dd2/via/UInt8Array.hpp" + "shared/sdk/regenny/dd2/via/UIntArray.hpp" + "shared/sdk/regenny/dd2/via/UIntArrayArray.hpp" + "shared/sdk/regenny/dd2/via/Window.hpp" + "shared/sdk/regenny/dd2/via/array.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTree.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeCoreHandleArray.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/BehaviorTreeData.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Condition.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Core.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/CoreHandle.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeArray.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeArray2.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/NodeStatus.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/Selector.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/SelectorFSM.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeNode.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeNodeData.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeObject.hpp" + "shared/sdk/regenny/dd2/via/behaviortree/TreeObjectData.hpp" + "shared/sdk/regenny/dd2/via/clr/ManagedObject.hpp" + "shared/sdk/regenny/dd2/via/fixed_array_jobs.hpp" + "shared/sdk/regenny/dd2/via/gui/Control.hpp" + "shared/sdk/regenny/dd2/via/gui/GUI.hpp" + "shared/sdk/regenny/dd2/via/gui/GUIManager.hpp" + "shared/sdk/regenny/dd2/via/gui/GUIMeshRenderer.hpp" + "shared/sdk/regenny/dd2/via/gui/PlayObject.hpp" + "shared/sdk/regenny/dd2/via/gui/PrimitiveContext.hpp" + "shared/sdk/regenny/dd2/via/gui/TransformObject.hpp" + "shared/sdk/regenny/dd2/via/gui/View.hpp" + "shared/sdk/regenny/dd2/via/gui/Window.hpp" + "shared/sdk/regenny/dd2/via/mat4.hpp" + "shared/sdk/regenny/dd2/via/motion/AxisDirection.hpp" + "shared/sdk/regenny/dd2/via/motion/Chain.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionArray.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionData.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisionTop.hpp" + "shared/sdk/regenny/dd2/via/motion/ChainCollisions.hpp" + "shared/sdk/regenny/dd2/via/motion/Data.hpp" + "shared/sdk/regenny/dd2/via/motion/InterpolationMode.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Internal.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Layer.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2RawData.hpp" + "shared/sdk/regenny/dd2/via/motion/MotionFsm2Resource.hpp" + "shared/sdk/regenny/dd2/via/motion/SecondaryAnimation.hpp" + "shared/sdk/regenny/dd2/via/motion/TransitionData.hpp" + "shared/sdk/regenny/dd2/via/motion/TransitionMap.hpp" + "shared/sdk/regenny/dd2/via/typeinfo/TypeInfo.hpp" + "shared/sdk/regenny/dd2/via/vec3.hpp" + "shared/sdk/regenny/dd2/via/vec4.hpp" "shared/sdk/regenny/mhrise/via/Capsule.hpp" "shared/sdk/regenny/mhrise/via/OBB.hpp" "shared/sdk/regenny/mhrise/via/Sphere.hpp" diff --git a/reversing/dd2.genny b/reversing/dd2.genny index ab400c060..182fe1137 100644 --- a/reversing/dd2.genny +++ b/reversing/dd2.genny @@ -119,7 +119,7 @@ namespace via { uint32_t height via.Point cursor_pos; bool show_cursor; - via.Size borderless_size @ 0xB8 + via.Size borderless_size + 0x2F }; struct SceneView : via.clr.ManagedObject 0xb0 { diff --git a/shared/sdk/regenny/dd2/via/Window.hpp b/shared/sdk/regenny/dd2/via/Window.hpp index 23635e88c..9d661cedb 100644 --- a/shared/sdk/regenny/dd2/via/Window.hpp +++ b/shared/sdk/regenny/dd2/via/Window.hpp @@ -10,9 +10,9 @@ struct Window { uint32_t height; // 0x64 regenny::via::Point cursor_pos; // 0x68 bool show_cursor; // 0x70 - private: char pad_71[0x47]; public: - regenny::via::Size borderless_size; // 0xb8 - private: char pad_c0[0x40]; public: + private: char pad_71[0x2f]; public: + regenny::via::Size borderless_size; // 0xa0 + private: char pad_a8[0x58]; public: }; // Size: 0x100 #pragma pack(pop) } diff --git a/src/mods/Graphics.cpp b/src/mods/Graphics.cpp index 555df5263..ff6770941 100644 --- a/src/mods/Graphics.cpp +++ b/src/mods/Graphics.cpp @@ -281,7 +281,7 @@ bool Graphics::on_pre_gui_draw_element(REComponent* gui_element, void* primitive } void Graphics::on_view_get_size(REManagedObject* scene_view, float* result) { -#if defined(SF6) || defined(DMC5) +#if defined(SF6) || defined(DMC5) || TDB_VER >= 73 if (m_ultrawide_fix->value()) { auto regenny_view = (regenny::via::SceneView*)scene_view; auto window = regenny_view->window; diff --git a/src/mods/VR.cpp b/src/mods/VR.cpp index 4ed793189..5115861d2 100644 --- a/src/mods/VR.cpp +++ b/src/mods/VR.cpp @@ -179,7 +179,7 @@ void VR::on_view_get_size(REManagedObject* scene_view, float* result) { wanted_height = (float)window_height; // Might be usable in other games too -#if defined(SF6) +#if defined(SF6) || TDB_VER >= 73 if (!is_gng) { window->borderless_size.w = (float)window_width; window->borderless_size.h = (float)window_height; From 9f0109c4c9c215c6aa97f91b20b569180e6c2c38 Mon Sep 17 00:00:00 2001 From: praydog Date: Wed, 13 Mar 2024 04:48:17 -0700 Subject: [PATCH 07/13] Lua: Add imgui.progress_bar --- src/mods/bindings/ImGui.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/mods/bindings/ImGui.cpp b/src/mods/bindings/ImGui.cpp index 9bf86fa8f..e86c42620 100644 --- a/src/mods/bindings/ImGui.cpp +++ b/src/mods/bindings/ImGui.cpp @@ -1282,6 +1282,14 @@ void table_set_bg_color_vec4(ImGuiTableBgTarget target, Vector4f color, sol::obj ImGuiTableSortSpecs* table_get_sort_specs() { return ImGui::TableGetSortSpecs(); } + +void progress_bar(float progress, sol::object size, const char* overlay ){ + if (overlay == nullptr) { + overlay = ""; + } + + ImGui::ProgressBar(progress, create_imvec2(size), overlay); +} } // namespace api::imgui namespace api::draw { @@ -1980,6 +1988,7 @@ void bindings::open_imgui(ScriptState* s) { imgui["set_item_default_focus"] = api::imgui::set_item_default_focus; imgui["set_clipboard"] = api::imgui::set_clipboard; imgui["get_clipboard"] = api::imgui::get_clipboard; + imgui["progress_bar"] = api::imgui::progress_bar; // TABLE APIS imgui["begin_table"] = api::imgui::begin_table; From 1a551cc2fbd73f882a0c27be6bad87e52b38f845 Mon Sep 17 00:00:00 2001 From: praydog Date: Wed, 13 Mar 2024 06:54:22 -0700 Subject: [PATCH 08/13] Lua: Add more imgui functions --- src/mods/bindings/ImGui.cpp | 62 ++++++++++++++++++++++++++++++++++--- 1 file changed, 58 insertions(+), 4 deletions(-) diff --git a/src/mods/bindings/ImGui.cpp b/src/mods/bindings/ImGui.cpp index e86c42620..85d83a96a 100644 --- a/src/mods/bindings/ImGui.cpp +++ b/src/mods/bindings/ImGui.cpp @@ -1,4 +1,5 @@ #include +#include #include #include "../ScriptRunner.hpp" @@ -1104,6 +1105,28 @@ float calc_item_width() { return ImGui::CalcItemWidth(); } +void item_size(sol::object pos, sol::object size, sol::object text_baseline_y) { + if (text_baseline_y.is()) { + ImGui::ItemSize(ImRect{create_imvec2(pos), create_imvec2(size)}, text_baseline_y.as()); + } else { + ImGui::ItemSize(ImRect{create_imvec2(pos), create_imvec2(size)}); + } +} + +bool item_add(const char* label, sol::object pos, sol::object size) { + if (label == nullptr) { + label = ""; + } + + const auto window = ImGui::GetCurrentWindow(); + + if (window == nullptr) { + return false; + } + + return ImGui::ItemAdd(ImRect{create_imvec2(pos), create_imvec2(size)}, window->GetID(label)); +} + void push_style_color(int style_color, sol::object color_obj) { if (color_obj.is()) { ImGui::PushStyleColor((ImGuiCol)style_color, (ImU32)color_obj.as()); @@ -1187,6 +1210,14 @@ const char* get_clipboard() { return ImGui::GetClipboardText(); } +void progress_bar(float progress, sol::object size, const char* overlay ){ + if (overlay == nullptr) { + overlay = ""; + } + + ImGui::ProgressBar(progress, create_imvec2(size), overlay); +} + bool begin_table(const char* str_id, int column, sol::object flags_obj, sol::object outer_size_obj, sol::object inner_width_obj) { if (str_id == nullptr) { str_id = ""; @@ -1283,12 +1314,24 @@ ImGuiTableSortSpecs* table_get_sort_specs() { return ImGui::TableGetSortSpecs(); } -void progress_bar(float progress, sol::object size, const char* overlay ){ - if (overlay == nullptr) { - overlay = ""; +// Window Drawlist +void draw_list_path_clear() { + if (auto dl = ImGui::GetWindowDrawList(); dl != nullptr) { + dl->PathClear(); } +} - ImGui::ProgressBar(progress, create_imvec2(size), overlay); +void draw_list_path_line_to(sol::object pos_obj) { + auto pos = create_imvec2(pos_obj); + if (auto dl = ImGui::GetWindowDrawList(); dl != nullptr) { + dl->PathLineTo(pos); + } +} + +void draw_list_path_stroke(ImU32 color, bool closed, float thickness) { + if (auto dl = ImGui::GetWindowDrawList(); dl != nullptr) { + dl->PathStroke(color, closed, thickness); + } } } // namespace api::imgui @@ -1972,10 +2015,15 @@ void bindings::open_imgui(ScriptState* s) { imgui["end_menu"] = api::imgui::end_menu; imgui["menu_item"] = api::imgui::menu_item; imgui["get_display_size"] = api::imgui::get_display_size; + + // Item imgui["push_item_width"] = api::imgui::push_item_width; imgui["pop_item_width"] = api::imgui::pop_item_width; imgui["set_next_item_width"] = api::imgui::set_next_item_width; imgui["calc_item_width"] = api::imgui::calc_item_width; + imgui["item_add"] = api::imgui::item_add; + imgui["item_size"] = api::imgui::item_size; + imgui["push_style_color"] = api::imgui::push_style_color; imgui["pop_style_color"] = api::imgui::pop_style_color; imgui["push_style_var"] = api::imgui::push_style_var; @@ -1990,6 +2038,12 @@ void bindings::open_imgui(ScriptState* s) { imgui["get_clipboard"] = api::imgui::get_clipboard; imgui["progress_bar"] = api::imgui::progress_bar; + // Draw list + imgui["draw_list_path_clear"] = api::imgui::draw_list_path_clear; + imgui["draw_list_path_line_to"] = api::imgui::draw_list_path_line_to; + imgui["draw_list_path_stroke"] = api::imgui::draw_list_path_stroke; + + // TABLE APIS imgui["begin_table"] = api::imgui::begin_table; imgui["end_table"] = api::imgui::end_table; From 9c1d957e8479bc599ab88a17b43b3e98ef17d798 Mon Sep 17 00:00:00 2001 From: praydog Date: Wed, 13 Mar 2024 09:54:45 -0700 Subject: [PATCH 09/13] D3D12: Possible fix for menu rendering issues --- src/REFramework.cpp | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/REFramework.cpp b/src/REFramework.cpp index 181dc2a1a..5fb85ddf2 100644 --- a/src/REFramework.cpp +++ b/src/REFramework.cpp @@ -662,6 +662,19 @@ void REFramework::on_frame_d3d12() { return; } + auto swapchain = m_d3d12_hook->get_swap_chain(); + const auto bb_index = swapchain->GetCurrentBackBufferIndex(); + + // Test if our RT for this index is valid. + if (m_d3d12.get_rt((D3D12::RTV)bb_index) == nullptr) { + spdlog::error("RTV for index {} is null, reinitializing...", bb_index); + deinit_d3d12(); + m_has_frame = false; + m_first_initialize = false; + m_initialized = false; + return; + } + cmd_ctx->wait(INFINITE); { std::scoped_lock _{ cmd_ctx->mtx }; @@ -692,8 +705,6 @@ void REFramework::on_frame_d3d12() { cmd_ctx->cmd_list->ResourceBarrier(1, &barrier); // Draw to the back buffer. - auto swapchain = m_d3d12_hook->get_swap_chain(); - auto bb_index = swapchain->GetCurrentBackBufferIndex(); barrier.Transition.pResource = m_d3d12.rts[bb_index].Get(); barrier.Transition.StateBefore = D3D12_RESOURCE_STATE_PRESENT; barrier.Transition.StateAfter = D3D12_RESOURCE_STATE_RENDER_TARGET; @@ -1845,12 +1856,20 @@ bool REFramework::init_d3d12() { if (SUCCEEDED(swapchain->GetBuffer(i, IID_PPV_ARGS(&m_d3d12.rts[i])))) { device->CreateRenderTargetView(m_d3d12.rts[i].Get(), nullptr, m_d3d12.get_cpu_rtv(device, (D3D12::RTV)i)); } else { - spdlog::error("[D3D12] Failed to get back buffer for rtv."); + spdlog::error("[D3D12] Failed to get back buffer for rtv {}", i); + m_d3d12.rts[i].Reset(); // just in case } } // Create our imgui and blank rts. auto& backbuffer = m_d3d12.get_rt(D3D12::RTV::BACKBUFFER_0); + + if (backbuffer == nullptr) { + spdlog::error("[D3D12] Failed to get first back buffer RTV."); + deinit_d3d12(); + return false; + } + auto desc = backbuffer->GetDesc(); spdlog::info("[D3D12] Back buffer format is {}", desc.Format); From 0c271d07318d7fbfbc01a0473368a3e890afeb4d Mon Sep 17 00:00:00 2001 From: praydog Date: Wed, 13 Mar 2024 11:07:43 -0700 Subject: [PATCH 10/13] Pin kananlib to commit hash --- CMakeLists.txt | 4 ++-- cmake.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a16542832..b423f91e6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -123,13 +123,13 @@ FetchContent_Declare( ) FetchContent_MakeAvailable(bddisasm) -message(STATUS "Fetching kananlib (main)...") +message(STATUS "Fetching kananlib (b0323a0b005fc9e3944e0ea36dcc98eda4b84eea)...") FetchContent_Declare( kananlib GIT_REPOSITORY https://github.com/cursey/kananlib GIT_TAG - main + b0323a0b005fc9e3944e0ea36dcc98eda4b84eea ) FetchContent_MakeAvailable(kananlib) diff --git a/cmake.toml b/cmake.toml index 06fd0407c..c6d34a4af 100644 --- a/cmake.toml +++ b/cmake.toml @@ -171,7 +171,7 @@ tag = "v1.34.10" [fetch-content.kananlib] git = "https://github.com/cursey/kananlib" -tag = "main" +tag = "b0323a0b005fc9e3944e0ea36dcc98eda4b84eea" [target.utility] type = "static" From 0acce8d838d36c0685732d81194d71dc212acdfe Mon Sep 17 00:00:00 2001 From: praydog Date: Wed, 13 Mar 2024 11:07:51 -0700 Subject: [PATCH 11/13] Troubleshooting: Log loaded modules and encountered windows --- src/REFramework.cpp | 15 +++++++++++++++ src/WindowFilter.cpp | 7 +++++++ 2 files changed, 22 insertions(+) diff --git a/src/REFramework.cpp b/src/REFramework.cpp index 5fb85ddf2..b6f4049e4 100644 --- a/src/REFramework.cpp +++ b/src/REFramework.cpp @@ -1683,6 +1683,21 @@ bool REFramework::first_frame_initialize() { m_mods_fully_initialized = true; } + // Troubleshooting by logging loaded modules + // helps us figure out if someone has conflicting software running + try { + spdlog::info("Logging loaded modules..."); + + const auto loaded_modules = utility::get_loaded_module_names(); + + for (const auto& name : loaded_modules) { + spdlog::info("Loaded module: {}", utility::narrow(name)); + } + } catch(...) { + spdlog::error("Failed to get loaded modules."); + } + + return true; } diff --git a/src/WindowFilter.cpp b/src/WindowFilter.cpp index d32d3a8bc..38c4af6fb 100644 --- a/src/WindowFilter.cpp +++ b/src/WindowFilter.cpp @@ -1,3 +1,5 @@ +#include + #include "WindowFilter.hpp" // To prevent usage of statics (TLS breaks the present thread...?) @@ -27,6 +29,11 @@ WindowFilter::WindowFilter() { std::scoped_lock _{m_mutex}; for (const auto hwnd : m_window_jobs) { + char window_name[256]{}; + if (GetWindowTextA(hwnd, window_name, sizeof(window_name)) != 0) { + spdlog::info("[WindowFilter] Encountered new window: {}", window_name); + } + if (is_filtered_nocache(hwnd)) { filter_window(hwnd); } From 8bbe3eb526968ab55f71401a193f88978cd0c4c1 Mon Sep 17 00:00:00 2001 From: praydog Date: Wed, 13 Mar 2024 11:30:22 -0700 Subject: [PATCH 12/13] Troubleshooting: Log callstack of ResizeBuffers/Target --- src/D3D12Hook.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/D3D12Hook.cpp b/src/D3D12Hook.cpp index 0dc6d0f10..753473c26 100644 --- a/src/D3D12Hook.cpp +++ b/src/D3D12Hook.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include #include @@ -475,6 +476,21 @@ HRESULT WINAPI D3D12Hook::resize_buffers(IDXGISwapChain3* swap_chain, UINT buffe spdlog::info("D3D12 resize buffers called"); spdlog::info(" Parameters: buffer_count {} width {} height {} new_format {} swap_chain_flags {}", buffer_count, width, height, new_format, swap_chain_flags); + // Walk the callstack and print out module names + try { + std::string callstack_str{}; + for (const auto& entry : std::stacktrace::current()) { + //spdlog::info(" {}", entry.description()); + callstack_str += entry.description() + "\n"; + } + + spdlog::info("callstack: \n{}", callstack_str); // because this can be running on a different thread and get garbled in the middle of the log + } catch (const std::exception& e) { + spdlog::error("Failed to print callstack: {}", e.what()); + } catch(...) { + spdlog::error("Failed to print callstack: unknown exception"); + } + auto d3d12 = g_d3d12_hook; //auto& hook = d3d12->m_resize_buffers_hook; //auto resize_buffers_fn = hook->get_original(); @@ -545,6 +561,21 @@ HRESULT WINAPI D3D12Hook::resize_target(IDXGISwapChain3* swap_chain, const DXGI_ spdlog::info("D3D12 resize target called"); spdlog::info(" Parameters: new_target_parameters {:x}", (uintptr_t)new_target_parameters); + // Walk the callstack and print out module names + try { + std::string callstack_str{}; + for (const auto& entry : std::stacktrace::current()) { + //spdlog::info(" {}", entry.description()); + callstack_str += entry.description() + "\n"; + } + + spdlog::info("callstack: \n{}", callstack_str); // because this can be running on a different thread and get garbled in the middle of the log + } catch (const std::exception& e) { + spdlog::error("Failed to print callstack: {}", e.what()); + } catch(...) { + spdlog::error("Failed to print callstack: unknown exception"); + } + auto d3d12 = g_d3d12_hook; //auto resize_target_fn = d3d12->m_resize_target_hook->get_original(); From e206942355177d0c7a6ca0f294acd55c8e26169e Mon Sep 17 00:00:00 2001 From: praydog Date: Fri, 15 Mar 2024 11:58:04 -0700 Subject: [PATCH 13/13] D3D12Hook: Add hook support for Streamline(DLSS3)/FSR3 based swapchains --- src/D3D12Hook.cpp | 43 ++++++++++++++++++++++++++++++++++++++++--- src/D3D12Hook.hpp | 5 +++++ 2 files changed, 45 insertions(+), 3 deletions(-) diff --git a/src/D3D12Hook.cpp b/src/D3D12Hook.cpp index 753473c26..baea8a8ac 100644 --- a/src/D3D12Hook.cpp +++ b/src/D3D12Hook.cpp @@ -6,6 +6,8 @@ #include #include #include +#include +#include #include "REFramework.hpp" @@ -225,6 +227,25 @@ bool D3D12Hook::hook() { return false; } + const auto ti = utility::rtti::get_type_info(swap_chain1); + + try { + const auto swapchain_classname = ti != nullptr ? std::string_view{ti->name()} : "unknown"; + + if (swapchain_classname.contains("interposer::DXGISwapChain")) { // DLSS3 + spdlog::info("Found Streamline (DLSSFG) swapchain during dummy initialization: {:x}", (uintptr_t)swap_chain1); + m_using_frame_generation_swapchain = true; + } else if (swapchain_classname.contains("FrameInterpolationSwapChain")) { // FSR3 + spdlog::info("Found FSR3 swapchain during dummy initialization: {:x}", (uintptr_t)swap_chain1); + m_using_frame_generation_swapchain = true; + } + } catch (const std::exception& e) { + spdlog::error("Failed to get type info: {}", e.what()); + } catch (...) { + spdlog::error("Failed to get type info: unknown exception"); + } + + spdlog::info("Finding command queue offset"); // Find the command queue offset in the swapchain @@ -245,9 +266,13 @@ bool D3D12Hook::hook() { } } + auto target_swapchain = swap_chain; + // Scan throughout the swapchain for a valid pointer to scan through // this is usually only necessary for Proton if (m_command_queue_offset == 0) { + bool should_break = false; + for (auto base = 0; base < 512 * sizeof(void*); base += sizeof(void*)) { const auto pre_scan_base = (uintptr_t)swap_chain1 + base; @@ -272,9 +297,21 @@ bool D3D12Hook::hook() { auto data = *(ID3D12CommandQueue**)pre_data; if (data == command_queue) { - m_using_proton_swapchain = true; + // If we hook Streamline's Swapchain, the menu fails to render correctly/flickers + // So we switch out the swapchain with the internal one owned by Streamline + // Side note: Even though we are scanning for Proton here, + // this doubles as an offset scanner for the real swapchain inside Streamline (or FSR3) + if (m_using_frame_generation_swapchain) { + target_swapchain = (IDXGISwapChain3*)scan_base; + } + + if (!m_using_frame_generation_swapchain) { + m_using_proton_swapchain = true; + } + m_command_queue_offset = i; m_proton_swapchain_offset = base; + should_break = true; spdlog::info("Proton potentially detected"); spdlog::info("Found command queue offset: {:x}", i); @@ -282,7 +319,7 @@ bool D3D12Hook::hook() { } } - if (m_using_proton_swapchain) { + if (m_using_proton_swapchain || should_break) { break; } } @@ -303,7 +340,7 @@ bool D3D12Hook::hook() { m_is_phase_1 = true; - auto& present_fn = (*(void***)swap_chain)[8]; // Present + auto& present_fn = (*(void***)target_swapchain)[8]; // Present m_present_hook = std::make_unique(&present_fn, (void*)&D3D12Hook::present); m_hooked = true; } catch (const std::exception& e) { diff --git a/src/D3D12Hook.hpp b/src/D3D12Hook.hpp index f4da0782b..1a3315ac8 100644 --- a/src/D3D12Hook.hpp +++ b/src/D3D12Hook.hpp @@ -89,6 +89,10 @@ class D3D12Hook return m_using_proton_swapchain; } + bool is_framegen_swapchain() const { + return m_using_frame_generation_swapchain; + } + void ignore_next_present() { m_ignore_next_present = true; } @@ -108,6 +112,7 @@ class D3D12Hook uint32_t m_proton_swapchain_offset{}; bool m_using_proton_swapchain{ false }; + bool m_using_frame_generation_swapchain{ false }; bool m_hooked{ false }; bool m_is_phase_1{ true }; bool m_inside_present{false};